After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 793265 - vaapipostproc: NV12->I420 produces green lines
vaapipostproc: NV12->I420 produces green lines
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gstreamer-vaapi
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-02-07 16:41 UTC by VaL Doroshchuk
Modified: 2018-02-08 15:54 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description VaL Doroshchuk 2018-02-07 16:41:44 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.
Comment 1 Víctor Manuel Jáquez Leal 2018-02-07 17:36:49 UTC
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.
Comment 2 VaL Doroshchuk 2018-02-08 07:38:37 UTC
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
Comment 3 VaL Doroshchuk 2018-02-08 07:54:05 UTC
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
Comment 4 Víctor Manuel Jáquez Leal 2018-02-08 09:20:44 UTC
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.
Comment 5 VaL Doroshchuk 2018-02-08 11:52:19 UTC
Confirmed, on latest libva and intel-vaapi-driver it works. Thanks