GNOME Bugzilla – Bug 793886
vaapisink: White is rendered pink with AMD card, wrong hue everywhere in RGBA and BGRA formats
Last modified: 2018-11-03 15:53:21 UTC
Testcase: $ gst-launch-1.0 multifilesrc location="frame_01.png" caps="image/png,framerate=\(fraction\)3/1" ! pngdec ! videoconvert ! vaapisink Works fine with xvimagesink: $ gst-launch-1.0 multifilesrc location="frame_01.png" caps="image/png,framerate=\(fraction\)3/1" ! pngdec ! videoconvert ! xvimagesink
Created attachment 369037 [details] frame_01.png (test vector)
Created attachment 369038 [details] frame_01.png (wrong output)
Created attachment 369039 [details] Color_Wheel.png (test vector)
Created attachment 369040 [details] Color_Wheel.png (wrong output)
Created attachment 369041 [details] river.png (test vector)
Created attachment 369042 [details] river.png (wrong output)
This problem does not reproduce when the image is encoded to h264. $ gst-launch-1.0 multifilesrc location="frame_01.png" caps="image/png,framerate=\(fraction\)3/1" ! pngdec ! videoconvert ! x264enc ! vaapih264dec ! vaapisink
Turns out the problem is RGBA and BGRA pixel formats being misread. This can be reproduced even more easily with a capsfilter: These two reproduce the problem: gst-launch-1.0 -v videotestsrc ! video/x-raw, format=RGBA ! vaapisink gst-launch-1.0 -v videotestsrc ! video/x-raw, format=BGRA ! vaapisink For comparison, YUV based formats like these work without problems: gst-launch-1.0 -v videotestsrc ! video/x-raw, format=I420 ! vaapisink gst-launch-1.0 -v videotestsrc ! video/x-raw, format=NV12 ! vaapisink (In the pipeline of the previous message, vaapih264dec decoded the h264 frames to NV12, therefore the problem did not reproduce.)
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/85.