Bug 97116 - mpv needs VAAPI_DISABLE_INTERLACE=1 for swdecode -vo vaapi since st/va: add conversion for yv12 to nv12in putimage v2
Summary: mpv needs VAAPI_DISABLE_INTERLACE=1 for swdecode -vo vaapi since st/va: add ...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-07-28 17:02 UTC by Andy Furniss
Modified: 2017-11-18 20:37 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Andy Furniss 2016-07-28 17:02:33 UTC
since 

mesa commit	34f46348438b29e20d06cca312616cfba8ee05f6

For putimage call, if image format is yv12 (or IYUV with U V field swap) and
surface format is nv12, then we need to convert yv12 to nv12 and then copy the
converted data from image to surface. We can't use the existing logic where
surface is destroyed and re-created with yv12 format.
 
v2 (chk): fix some compiler warnings and commit message 

mpv --vo=vaapi will produce corrupted output without the new env
VAAPI_DISABLE_INTERLACE=1

This only applies to s/w decode as hwdec uses nv12 and avoids the conversion.

Gstreamer vaapisink is not affected as (from what little debugging I did) it doesn't seem to use interlaced buffers doing putimage.
Comment 1 Andy Furniss 2017-01-07 12:40:04 UTC
Old bug - mpv --vo=vaapi is unstable with or without the env on current head and may well have only lucked into apparently working with VAAPI_DISABLE_INTERLACE=1
all along.

Will open new bug soon(ish).

Reverting this commit from head and running with VAAPI_DISABLE_INTERLACE=0
seems stable.
Comment 2 Andy Furniss 2017-11-18 20:37:08 UTC
env doesn't exist any more.


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.