Hello,
I’m trying to receive and display more than one mjpeg encoded stream to the DRA7xx. With one stream, this is working fine, using the ducatijpegdec and following pipeline:
gst-launch-1.0 -e tcpclientsrc host=192.168.1.220 port=5001 do-timestamp=true ! jpegparse ! ducatijpegdec ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)720, height=(int)480' ! kmssink scale=false
But I would like to receive more than one stream, at least two would be nice, displayed next to each other. Therefore I was experimenting with videomixer plugin, but didn’t succeed with it when using the ducatijpegdec, due to missing timestamp information. So I switched to compositor plugin, which is working when using the software jpeg decoder.
Pipeline that is working, but slow:
gst-launch-1.0 \
videotestsrc pattern=0 ! \
video/x-raw,format=AYUV,framerate=\(fraction\)20/1,width=1920,height=1080 ! \
compositor name=comp sink_0::alpha=0.5 sink_1::alpha=1 ! \
videoconvert ! vpe ! kmssink scale=false \
tcpclientsrc host=192.168.1.220 port=5001 ! jpegparse ! jpegdec ! videoconvert ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)720, height=(int)480' ! \
comp.
Not working with ducatijpegdec:
gst-launch-1.0 \
videotestsrc pattern=0 ! \
video/x-raw,format=AYUV,framerate=\(fraction\)20/1,width=1920,height=1080 ! \
compositor name=comp sink_0::alpha=0.5 sink_1::alpha=1 ! \
videoconvert ! vpe ! kmssink scale=false \
tcpclientsrc host=192.168.1.220 port=5001 ! jpegparse ! ducatijpegdec ! videoconvert ! vpe ! 'video/x-raw, format=(string)NV12, width=(int)720, height=(int)480' ! \
comp.
This one is crashing with following output:
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming task paused, reason error (-5)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Caught SIGSEGV
Do you have any suggestions how to display two streams? Is this even possible using the hardware decoder or can it be instantiated only once? Can the output of the hardware decoder be routed to videomixer or compositor somehow?
Thank you very much.
Best regards,
Steffen