[Mesa-dev] [PATCH] st/va: add mpeg4 startcode workaround

Christian König deathsimple at vodafone.de
Fri Nov 6 11:15:59 PST 2015


On 06.11.2015 20:10, Ilia Mirkin wrote:
> On Fri, Nov 6, 2015 at 1:48 PM, Zhang, Boyuan <Boyuan.Zhang at amd.com> wrote:
>> Hi Emil,
>>
>> Please see the following information about this patch.
>>
>> - Issue: For Mpeg4, the VOP and GOV headers were truncated. With the existing workaround in st/va, playback shows massive corruptions.
>> - This Patch: Provide another way to get the truncated headers back. Massive corruptions are gone with this patch. At the same time, add an environmental variable to allow user to decide whether to use this patch.
> Why would the user not want to use this? Sounds like a correctness
> fix, no? Or is it some thing that a hypothetical gallium driver might
> not need but the radeon uvd-based ones do? In that case it should be
> behind a PIPE_VIDEO_CAP_bla (sorry, I'm still not too clear on what
> "bla" is here...)

The problem is that this is a rather extreme hack.

As you probably knew VA-API didn't correctly specify which start code 
should be included and which shouldn't for MPEG-4. This is an issue for 
AMD as well as NVidia hardware and pretty much everybody which sticks 
close to an elementary stream.

What we do in this hack is just searching the bytes *before* the pointer 
and size we got from the application for the stuff that's missing. E.g. 
we access memory the application didn't told us to access.

This is rather speculative, but works surprisingly well with a lot of 
applications.

Regards,
Christian.

>
>    -ilia
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list