GNOME Bugzilla – Bug 759302
vaapidecode causes distorted video in Qt for some files
Last modified: 2017-03-07 16:16:14 UTC
Created attachment 317115 [details] screenshot of the output After installing gstreamer-vaapi, some video files that worked with avdec_h264 are no longer properly displayed. A sample file can be found at: https://dl.dropboxusercontent.com/u/6818680/distorted.avi Tested with: gstreamer-1.6.1 gstreamer-vaapi-0.6.1 and gstreamer-vaapi-0.7.0 Qt-5.5.1 Hardware: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display
Created attachment 317116 [details] sample qml file run with: qmlscene video.qml
Thanks for reporting this. I tested the file in my laptop with Haswell chipset, and the playback looks correct with gstreamer-vaapi. Could you send the log of gst-play-1.0 distorted.avi --gst-debug="vaapi*:4" ?? I want to know with chipset is used in those Atoms, and which version of the libva are you using.
Created attachment 317128 [details] gst-play-1.0 output
The file does play ok with gst-play. Only the combination of vaapidecode and Qt shows the distorted output. I'm using libva-1.6.1. The processor is "Intel(R) Atom(TM) CPU E3827 @ 1.74GHz", but the graphics says "To Be Filled By O.E.M." :)
So it is problem with the negotiation with the video sink used by Qt. Do you know which sink is used? Can you run the application with the environment variable GST_DEBUG="*:3,vaapi*:5,*sink:4" set and upload the output?
Created attachment 317155 [details] qmlscene output
Qt uses an internal sink called QGstVideoRendererSink. I can attach dot files of the generated pipelines with vaapidecode and avdec_h264?
(In reply to Pieterjan Camerlynck from comment #6) > Created attachment 317155 [details] > qmlscene output This log is from the normal pipeline, since it shows messages from vaapisink. (In reply to Pieterjan Camerlynck from comment #7) > I can attach dot files of the generated pipelines with vaapidecode and > avdec_h264? I guess they are not needed. Have you saw this? http://lists.qt-project.org/pipermail/development/2015-July/022270.html From the output looks like the sink can't understand what's the vaapidecode delivering.
(In reply to Víctor Manuel Jáquez Leal from comment #8) > (In reply to Pieterjan Camerlynck from comment #6) > > Created attachment 317155 [details] > > qmlscene output > > This log is from the normal pipeline, since it shows messages from > vaapisink. Strange, this is the output when the video is rendered in Qt. I don't know why vaapisink appears in these logs. > (In reply to Pieterjan Camerlynck from comment #7) > > I can attach dot files of the generated pipelines with vaapidecode and > > avdec_h264? > > I guess they are not needed. > > Have you saw this? > > http://lists.qt-project.org/pipermail/development/2015-July/022270.html Oh, I was not aware of this. It does work for some video's, though not as optimal as it would using GstVideoGLTextureUploadMeta. I've also tried with the qt sink from gst-plugins-bad, but then I run into this bug: https://bugs.freedesktop.org/show_bug.cgi?id=71759 > From the output looks like the sink can't understand what's the vaapidecode > delivering. Is there a way to force the format that is delivered to the Qt sink?
Moving to Product:GStreamer, Component:gstreamer-vaapi
This issue should be fixed with bug 753914. Though I see a problem with vaapipostroc negotiating the caps size.
(In reply to Víctor Manuel Jáquez Leal from comment #11) > This issue should be fixed with bug 753914. Though I see a problem with > vaapipostroc negotiating the caps size. False alarm. Is part of the calculation for DAR. This issue should be solved since release 1.10. Closing. *** This bug has been marked as a duplicate of bug 753914 ***