Summary: | VA-API implementation reports support for unsupported endpoints | ||
---|---|---|---|
Product: | Mesa | Reporter: | Kurt Kartaltepe <notkurufu> |
Component: | Drivers/Gallium/radeonsi | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED MOVED | QA Contact: | Default DRI bug account <dri-devel> |
Severity: | normal | ||
Priority: | medium | ||
Version: | 18.2 | ||
Hardware: | Other | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Kurt Kartaltepe
2018-09-24 03:05:09 UTC
The problem is neither the driver nor the application, but rather the design of VA-API. The hardware supports some high profile features (like CABAC), but unfortunately not all of them (like B-frames or MBAFF). Now the profile selects what the decoder needs to be able to do to handle a certain video, but doesn't tells you anything about the encoder except for selecting the encoding of the headers. We should support the encoding of the headers, so if an application selects high profile it actually gets better compression because of CABAC support. But if the application also tries to use B-frames it will get an invalid stream. Additional to that we currently have a firmware problem which corrupts all streams != baseline. Could be that you are running into that one. Boyuang is already investigating it and you could try to downgrade your firmware version to test that. The VA-API implementation correctly reports b-frames are unavailable and in this test they were not used. The implemention also provided a decodable stream on main profile. So if the the firmware issue you describe affects main profile streams than this system is unaffected. And this is a separate issue.
> The hardware supports some high profile features (like CABAC), but
> unfortunately not all of them (like B-frames or MBAFF).
>
> Now the profile selects what the decoder needs to be able to do to handle a
> certain video, but doesn't tells you anything about the encoder except for
> selecting the encoding of the headers.
>
> We should support the encoding of the headers, so if an application selects
> high profile it actually gets better compression because of CABAC support.
>
> But if the application also tries to use B-frames it will get an invalid
> stream.
Yes, the issue is that valid settings produce a stream that is invalid. Personally I would be more than ok if the resultant stream on high was within constrained baseline specs as long as it returned a valid stream.
Because hardware encoders are such black boxes I care very little for the settings i cannot control (such as exact compression techniques) and expect the ones i can to work.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1329. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.