I am running a raspbian setup on my RPI4 which invokes a gstreamer pipeline upon startup. Part of this gstreamer pipeline is output to HDMI which I want to achieve without using X.
Gstreamers fbdev sink is too slow, so I wanted to use the glimagesink. Unfortunately this sink does produce strange results when I run it outside of X - the colors seem to be completely distorted using a simple pipe like so:
gst-launch-1.0 videotestsrc ! glimagesink
This pipeline produces what you would expect in X but not when invoked from outside of X.
Pipelines involving a videomixer element will produce a background with a solid color:
gst-launch-1.0 videotestsrc ! videomixer ! glimagesink
Both pipelines work with the fbdevsink without any issues and they also work perfectly when running them out of an X environment.
How can I make glimagesink to produce the same results no matter if I use it from X or without X?
EDIT: Even after manually compiling, the results stay the same. I opened a ticket in the gstreamer repo.
Turns out kmssink is also an option - no X needed, and performs way better than fbdevsink.