Comments (10)
Looking at the decoded frames with YUView, it is clear that there is some scaling applied by the hardware.
from cros-codecs.
Thinking about it, this is possibly happening through the VAImage
rather than decoding itself?
from cros-codecs.
@Gnurou on it
from cros-codecs.
vp80-00-comprehensive-014
also appears to be failing for the same reason.
from cros-codecs.
@Gnurou So when we said that GStreamer/ffmpeg-VAAPI are passing these tests, there's one detail left out.
both GStreamer and ffmpeg ask for NV12 during VAImage creation. They then convert the data into I420 themselves, at a later point.
It may be that decoding to I420 is broken specifically for odd resolutions at the VA-API driver level, I am not sure. For these 175x143 videos, the output seems almost the same, but it has a minor shift, as if some minor scaling took place at some point.
I420 VAImage works fine when the width and height are powers of 2, however.
What do you want to do here? From past experience, diving into intel-media-driver is a massive time sink for little gain..
from cros-codecs.
maybe @ndufresne may have some insight if he's not too busy, I will attach the YUV output.
Unfortunately, there's nothing different at the VA_TRACE level. We are sending the driver the exact same inputs..
from cros-codecs.
from cros-codecs.
The wrong output is scale up in a way that isn't just a scaling / postproc artifact, and is blurred too. Its proprietary code, so its hard to tell what going on, as you notice, in GStreamer we force NV12 as anything else straight from the decoder is massively broken and Intel have not care fixing, perhaps its better now, but to me its not really worth it.
In gst we have code to calculat I420 MD5 from NV12 source, I'm sure you could do that same, or simply add a hand written converter.
from cros-codecs.
Thanks - I'll try to render a NV12 frame and convert it to I420 to see if the problem is indeed in the driver. If it is, I guess we should report the bug instead of diving into it ourselves.
from cros-codecs.
This is now passing on Intel thanks to #25
from cros-codecs.
Related Issues (20)
- Can't iterate over ReadyFramesQueue<T> without consuming it
- Remove unwraps and other runtime panics that result from invalid input HOT 1
- Limit use of anyhow HOT 2
- av1: max for secondary strength looks incorrect HOT 2
- encoder: Enable zero copy
- decoder/h264: support streams for which num_slice_groups_minus1 > 0
- Feature: V4L2 stateless decoder support
- Feature: device discovery
- Feature: stateful decoder interface
- Consider moving codec parsers to separate crate HOT 3
- `StatelessVideoDecoder` implementations for `StatelessDecoder` can be factorized?
- `codec` module should never panic under any condition
- Possible typo in AV1 synthetizer HOT 1
- H.264/5: confirm `visible_rectangle`'s semantics
- Get reference to decoded frame from `StatelessVideoDecoder`
- decoder/stateless: backends should check the number of available output buffers, if needed.
- decoder/stateless: `parser` should be moved outside of the decoder state struct
- decoder/stateless/h265: output buffers computation does not look correct
- decoder/stateless/h265: VPSes are apparently never used
- Releasing a new version with encoders HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cros-codecs.