egl/gbm glimagesink: video picture has color is not correct, color is reddish
Development platform: rtd1295/1296 soc aarch64 core A53x4 Mali-T820 Linux Kernel: 4.4.18 Mali: Wayland Mode and Egl/GBM/DRM Mode test GST GL: gst-1.10.4 release, GstGL Wayland Mode Playback is normal.(need weston 3.0) gst-1.14.4 release, GstGL EGL/GBM/DRM Mode: The picture is fragmented and the data is misplaced. gst-1.15.0 git last, GstGL EGL/GBM/DRM Mode: The video shows normal. The color is abnormal and the color is reddish.
I don't have any other development boards. I want to know if MESA's GBM driver display is normal?
I noticed a color anomaly in the color space of all GST outputs. For example RGBA, YUY2, I420, NV12. Is this related to GBM's YUV format setting?
play log:
root@rtd1295:~# gst-launch-1.0 -vv videotestsrc ! glupload ! glcolorconvert ! gl
imagesinkelement
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'glimagesink0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayGBM\)\ gldisplaygbm0";
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstGLUploadElement:gluploadelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLImageSink:glimagesink0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, texture-target=(string)2D
/GstPipeline:pipeline0/GstGLUploadElement:gluploadelement0.GstPad:sink: caps = video/x-raw, format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
handling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:05:45.555294980
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
0:05:45.676991312 2873 0x86980a0 ERROR glwindow gstglwindow_gbm_egl.c:123:gst_gl_window_gbm_egl_close:<glwindowgbmegl0> Failed to restore previous CRTC mode: No such file or directory
Freeing pipeline ...
root@rtd1295:~#