We are trying to encode the incoming CSI video and stream it over network while the module is outputing a test video on its display interface. For this purpose, we are using the following pipelines:
(#1) gst-launch-1.0 -v imxv4l2videosrc capture-mode=0 ! queue2 ! imxvpuenc_h264 bitrate=6000 idr-interval=100 ! queue2 ! mpegtsmux alignment=7 ! rndbuffersize max=1316 min=1316 ! udpsink host=10.1.1.52 port=6666
(#2) gst-launch-1.0 videotestsrc ! imxg2dvideosink
Running these two piplelines works as expected. However, if we set the v-sync parameter of imxg2dvideosink to EITHER true or false in pipleline (#2), it causes distortions in the of pipeline (#1)!
The actual problem we are facing is that instead of pipeline (#2), we have an Qt EGLFS application which distorts the output whenever there is some change in its display output. For instance, if the Qt application change the display every 5 seconds, the distortion happens at 5 five second intervals.
Our setup is the iMX6DL module, running Freescale kernel 3.14.28 and latest GStreamer 1.0 plugins on Yocto Fido.
We also have tried this on iMX6Q and got the same results.
did you communicate from two different imx board? you can capture the correct video, but has issue when display ?
did you try to use other plugins to instead of imxg2dvideosink? like