[FFmpeg-devel] [PATCH] lavc/vc1dec: add multi-slice decoding support for hwaccel.
Hendrik Leppkes
h.leppkes at gmail.com
Tue Nov 15 15:46:23 EET 2016
On Tue, Nov 15, 2016 at 2:21 PM, James Almer <jamrial at gmail.com> wrote:
> On 11/15/2016 9:07 AM, Hendrik Leppkes wrote:
>> On Tue, Nov 15, 2016 at 1:39 AM, Hendrik Leppkes <h.leppkes at gmail.com> wrote:
>>> On Tue, Nov 15, 2016 at 1:19 AM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>>>> 2016-11-14 23:47 GMT+01:00 James Almer <jamrial at gmail.com>:
>>>>
>>>>> but vc1_sa10143 fails using DXVA2 and a recent driver.
>>>>
>>>> I suspect it actually passes with DXVA2: FFmpeg is not
>>>> bit-exact for vc1.
>>>
>>> Looks like you are right, thats the hashes I get as well.
>>>
>>> In any case, I have a working WIP patch that fixes sa10091 and sa20021
>>> with DXVA2, which were broken before.
>>> I'll clean it up tomorrow and send it for testing.
>>>
>>> Unfortunately I don't have a sample for field mode with slices, so
>>> that remains un-implemented. If someone comes across such a thing,
>>> that would be nice to have.
>>>
>>
>> Here is my current work in progress:
>> https://github.com/Nevcairiel/FFmpeg/commits/vc1slices
>>
>> It fixes sa10091 and sa20021 on NVIDIA with DXVA2 for me. Note that
>> sa10143 breakage is from the software decoder not being bitexact, and
>> not a hwaccel failure (it doesn't even use slices).
>>
>> Appreciate any testing on other hardware or on VAAPI/VDPAU.
>>
>> - Hendrik
>
> On the same setup i mentioned yesterday, with your patch i get the same
> results as without it.
> All pass except sa10143 (Where i get the hashes Carl mentioned are the
> actually bitexact ones) and vc1_ilaced_twomv, where i get the following
>
> -0, 0, 0, 1, 3110400, 0x764f8856
> -0, 2, 2, 1, 3110400, 0x3b615b79
> -0, 3, 3, 1, 3110400, 0x4fbb6f84
> -0, 4, 4, 1, 3110400, 0xc1ca8532
> -0, 5, 5, 1, 3110400, 0xb6e7d363
> -0, 6, 6, 1, 3110400, 0x1beb5c34
> -0, 7, 7, 1, 3110400, 0xcb8cb061
> -0, 8, 8, 1, 3110400, 0x13ddbd61
> -0, 9, 9, 1, 3110400, 0xde8f052f
> -0, 10, 10, 1, 3110400, 0x4d4072db
> -0, 11, 11, 1, 3110400, 0x4e5d29e3
> -0, 12, 12, 1, 3110400, 0x75300531
> -0, 13, 13, 1, 3110400, 0x1114285a
> +0, 0, 0, 1, 3110400, 0xc95e8861
> +0, 2, 2, 1, 3110400, 0xf58b5cbf
> +0, 3, 3, 1, 3110400, 0x2f866f33
> +0, 4, 4, 1, 3110400, 0x05c18415
> +0, 5, 5, 1, 3110400, 0x4077ca93
> +0, 6, 6, 1, 3110400, 0x44d105fc
> +0, 7, 7, 1, 3110400, 0xa0608374
> +0, 8, 8, 1, 3110400, 0x407689dc
> +0, 9, 9, 1, 3110400, 0x4707d00a
> +0, 10, 10, 1, 3110400, 0x74986831
> +0, 11, 11, 1, 3110400, 0xa5912619
> +0, 12, 12, 1, 3110400, 0x44aa5565
> +0, 13, 13, 1, 3110400, 0xb9752774
>
> Maybe this one is the same situation as with sa10143?
>
Yes, that one also uses field coding, which is not bitexact in our
decoder, so a mismatch is expected.
Thanks for confirming I didn't break anything on other setups - or
more precise fixed the breakage again from last night :)
- Hendrik
More information about the ffmpeg-devel
mailing list