Bug 71719

Summary: vaPutSurface ignores VA_SRC_BT709 flag and uses BT.601 coefficients
Product: libva Reporter: Lauri Mylläri <lauri.myllari>
Component: intelAssignee: ykzhao <yakui.zhao>
Status: RESOLVED FIXED QA Contact: Sean V Kelley <seanvk>
Severity: normal    
Priority: medium CC: m3rocket
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Lauri Mylläri 2013-11-18 05:38:51 UTC
Colors are inaccurate when using VA-API decoding in XBMC, mplayer and gstreamer. This is easy to reproduce using AVS HD 709 calibration tests available at w6rz.net (download the MP4 version, try Misc Patterns/A - Additional/4-Color Clipping.mp4). If BT.601 colorspace is used, green channel is clipped and red extends far beyond 235. Correct decoding shows all channels reaching maximum at 235.

It looks like the flags parameter is not checked for VA_SRC_{BT601,BT709,SMPTE_240} and src/shaders/render/exa_wm_yuv_rgb.g7a has bt.601 coefficients hardcoded.

This issue was also mentioned at https://bugs.freedesktop.org/show_bug.cgi?id=46800#c16
Comment 1 ykzhao 2013-11-25 07:02:15 UTC
Hi, Lauri
    Will you please try the latest staging branch and see whether it works for you? Now I already add the support of BT709/SMPTE240, which is passed by the flag of vaPutSurface.

Thanks.
Comment 2 Lauri Mylläri 2013-11-25 16:37:52 UTC
Thank you for the fixes. I can confirm BT.709 works now - I don't have test patterns for the others.
Comment 3 ykzhao 2013-11-26 02:34:28 UTC
Thanks for the test.

Since it can work well, this bug will be marked as resolved.

Thanks.

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.