[FFmpeg-devel] [PATCH 1/2] avcodec/vaapi: slice_vertical_position starts from zero for the second field

Mark Thompson sw at jkqxz.net
Sun Jun 17 18:34:13 EEST 2018

On 15/06/18 06:44, Xiang, Haihao wrote:
> I may confirm that the error is returned from the old version of libva and vaapi
> driver w/wo this patch, the command below works well for me if using the new
> version of libva and vaapi driver.  

Trying others:

* The Mesa driver running on an AMD Polaris returns success but the output data is wrong for interlaced input.  I think it just isn't supported.

* The iHD driver running on Skylake GT3 always falls over when given an interlaced stream - the decode issue succeeds, but it returns "Failed to sync surface 0x5: 23 (internal decoding error)." when trying to get the result.

I tested on different machines with the current i965 driver and this looks good, so I will apply it.

However, since it only works on recent i965 I think that means something should be added to VAAPI indicate that support so that we can check it here.  The other cases (including old i965) all say they support the profile and therefore pass the point where we commit to hardware decode, but then they all fail later in different ways.  Maybe that should be a new config attribute, kindof like VAConfigAttribEncInterlaced for decode?


- Mark

>> Is your VAAPI library and VAAPI driver new enough? You need at least
>> libva-2.1.0 (VA-API version 1.1.0) and intel-vaapi-driver-2.1.0 for
>> interlaced VC-1 decoding. From the output, I think you are using an
>> older version and the error is just the libva library bailing out for
>> not supporting interlaced VC-1.
>> Regards,
>> Jerome
>>> are these 2 patches enough or something else ?
>>> It feels like iam missing something but
>>> i tried
>>> ./ffmpeg -hwaccel vaapi -i SA10180.vc1 -pix_fmt yuv420p -f framecrc
>>> crcpatch12
>>> but ffmpeg spews errors at me:
>>> ibva info: VA-API version 0.39.0
>>> libva info: va_getDriverName() returns 0
>>> libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
>>> libva info: Found init function __vaDriverInit_0_39
>>> libva info: va_openDriver() returns 0
>>> Stream mapping:
>>>   Stream #0:0 -> #0:0 (vc1 (native) -> rawvideo (native))
>>> Press [q] to stop, [?] for help
>>> Output #0, framecrc, to 'crcpatch12':
>>>   Metadata:
>>>     encoder         : Lavf58.17.100
>>>     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480 [SAR
>>> 1:1 DAR 3:2], q=2-31, 103680 kb/s, 25 fps, 25 tbn, 25 tbc
>>>     Metadata:
>>>       encoder         : Lavc58.20.102 rawvideo
>>> [vc1 @ 0x3d430c0] Failed to end picture decode issue: 23 (unknown libva
>>> error / description missing).
>>> Error while decoding stream #0:0: Input/output error

More information about the ffmpeg-devel mailing list