GNOME Bugzilla – Bug 740614
gstqtglvideosink: Color matrix possibly wrong on larger videos (BT 709)
Last modified: 2016-06-03 22:16:39 UTC
Hi, Using qtgstreamer 1.2.0 I was seeing video that was very 'red'. This only happended on larger videos, e.g. 1600x640. Smaller videos, e.g. 720x480 were working fine. I am not an OpenGL expert by any means, so I had some trouble finding what the cause was. What I found using apitrace, was that the color matrix for the smaller videos was different than the one for the bigger videos. This came down to the the choice of color matrix in elements/gstqtvideosink/painters/openglsurfacepainter.cpp, from line 136. If I remove the special color matrix for GST_VIDEO_COLOR_MATRIX_BT709, so basically make that case fall through to GST_VIDEO_COLOR_MATRIX_BT601, the colors in the videos, both larger and smaller, are correct. By the way, playing the videos using gst-launch (both 0.10 and 1.0) works perfectly fine. If I need to be more specific, please let me know. By the way, I'm really pleased with qt-gstreamer. I was using ffmpeg and doing my own opengl stuff for displaying video, but this works a lot nicer, with a lot less code on my side. cheers, Ilja
The same issue appears in the "videoplayer2" example which uses QtQuick2 (Using Qt 5.4). The same decision is made in elements/gstqtvideosink/painters/videomaterial.cpp line 383, which is fixed by the same GST_VIDEO_COLOR_MATRIX_BT709 fallthrough and using the GST_VIDEO_COLOR_MATRIX_BT601 configuration
*** This bug has been marked as a duplicate of bug 743716 ***