GNOME Bugzilla – Bug 793265
vaapipostproc: NV12->I420 produces green lines
Last modified: 2018-02-08 15:54:36 UTC
Command to reproduce: gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! vaapipostproc ! video/x-raw, format=I420 ! vaapisink Output video produces ugly green lines.
Hi, Can you post the output of vainfo command? To know what backend and chipset are you using, because I cannot reproduce it in my skylake board.
Hi, also reproducible by: gst-launch-1.0 souphttpsrc location=http://techslides.com/demos/sample-videos/small.mp4 ! qtdemux ! h264parse ! vaapih264dec ! vaapipostproc ! video/x-raw, format=I420 ! xvimagesink val@qt:/$ vainfo libva 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 vainfo: VA-API version: 0.39 (libva 1.7.0) vainfo: Driver version: Intel i965 driver for Intel(R) Kabylake - 1.7.0 vainfo: Supported profile and entrypoints VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Simple : VAEntrypointEncSlice VAProfileMPEG2Main : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointEncSlice VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSlice VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSlice VAProfileH264MultiviewHigh : VAEntrypointVLD VAProfileH264MultiviewHigh : VAEntrypointEncSlice VAProfileH264StereoHigh : VAEntrypointVLD VAProfileH264StereoHigh : VAEntrypointEncSlice VAProfileVC1Simple : VAEntrypointVLD VAProfileVC1Main : VAEntrypointVLD VAProfileVC1Advanced : VAEntrypointVLD VAProfileNone : VAEntrypointVideoProc VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileVP8Version0_3 : VAEntrypointEncSlice VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSlice VAProfileHEVCMain10 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointVLD
Original command gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! vaapipostproc ! video/x-raw, format=I420 ! autovideosink reproduces the issue on 1.8.3 ver and latest build from git 1.13.0. May be it is related to gst_vaapipostproc_transform() where it calls ret = gst_vaapipostproc_process_vpp (trans, buf, outbuf); (and gst_vaapi_surface_create_full() is called where fourcc for I420 is set. attrib->value.value.i = va_format->fourcc; // if NV12 no green lines occur) On 1.8.3 is not reproducible by gst-launch-1.0 souphttpsrc location=http://techslides.com/demos/sample-videos/small.mp4 ! qtdemux ! h264parse ! vaapidecode ! vaapipostproc ! video/x-raw, format=I420 ! xvimagesink
Can you upgrade to the latest release of libva and intel-vaapi-driver? Because I cannot reproduce that, and there has been a lot of work there related with skylake.
Confirmed, on latest libva and intel-vaapi-driver it works. Thanks