QtQuick VideoItem qtgstreamer preview color problem
-
Absolutely completely unrelated. Typical two windows wrong answer situation. Sorry for that.
Can you use the YUV422 format ?
-
When you want me to use YUV422 format?
In pileline caps?m_filter->setProperty("caps", QGst::Caps::fromString("video/x-raw, width=1920, height=1080, format=I420, framerate=30/1"));
Available format in videotestsrc
Capabilities: video/x-raw format: { I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE } width: [ 1, 2147483647 ] height: [ 1, 2147483647 ] framerate: [ 0/1, 2147483647/1 ] video/x-bayer format: { bggr, rggb, grbg, gbrg } width: [ 1, 2147483647 ] height: [ 1, 2147483647 ] framerate: [ 0/1, 2147483647/1 ]
I have tried I422_10LE and I422_10BE but result in "Internal data flow error.".
-
Either UYVY or YUYV is YUV422.
By the way which version of Qt are you using ?
Support for YUV422 has been added for QML in 5.8 IIRC.
-
I am using QT 5.2.1.
I think in QT 5.8, direct YUV422 capture supported by QtMutlimedia package. But qt gstreamer supports YUV422 for previous versions also.In this case, i am just using videotestsrc plugin as camera source. And that is not UYVY or YUYV.
If i add caps to pipeline the color conversion issue occur.I think, the problem is that video surface shows a wrong color conversion as it considers video frame in BGR not in RGB.
Any idea or suggestions about how to fix? -
http://gstreamer-devel.966125.n4.nabble.com/QGst-Quick-VideoSurface-Green-Hue-td4664931.html
other person having same problem but his getting green instead of red.
But i am unable to find any solution.
Perhaps you can help. -
What is your image source ?
-
gstreamer "videotestsrc" is image source
-
I meant the one that is not working correctly. Also the test source ?
-
Ya videotestsrc is also not working with I420 format. giving Red hue preview on Videosurface.
m_filter->setProperty("caps", QGst::Caps::fromString("video/x-raw, width=1920, height=1080, format=I420, framerate=30/1"));
But if i changed I420 with RGB its showing proper color.
But if i use RGB for my camera (UYVY) input with videoconvert. I got proper color but its too slow.
But with I420 preview renders smoothly but Reddish preview.In my AMD64 linux pc i tried same with qt 5.5 the preview is with Green Hue.
-
Can you create a small sample application that shows that behavior ?
-
Please find sample app in below link
https://drive.google.com/open?id=0B8d7zQv-G71oM1JONzlpR2t1OWcThere are 4 different cases for videosourece as videotestsrc. For my camera i just replace videotestsrc by v4l2src. But the behavior are same for both sources.
I am using QT 5.2.1 with qtgstreamer 1.2.0 and gstreamer 1.2.4.
Please suggest some solution of videosurface color conversion issue or any other videosink element that i can use in qml.
-
can you get any clue whats wrong in my code?