Multiple pipeline in single application
- Camera 1 :- UYVY 16-bit format
gst-launch-1.0 v4l2src name=outward_camera device=/dev/video0 ! 'video/x-raw, format=UYVY, width=3840, height=2160, framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=I420, width=3840, height=2160' ! queue name=queue_nrt leaky=2 max-size-buffers=0 max-size-bytes=0 max-size-time=4000000000 ! nvv4l2h265enc name=h265enc control-rate=0 bitrate=6000000 preset-level=3 maxperf-enable=1 iframeinterval=30 ! h265parse ! splitmuxsink name=muxsink muxer=matroskamux max-size-time=60000000000 sync=0 location=/home/ubuntu/out_nf2_%02d.mp4 &
- Camera 2 : - UYVY 16-bit format
gst-launch-1.0 v4l2src name=inward_camera device=/dev/video1 ! 'video/x-raw, format=UYVY, width=1920, height=1280, framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=I420, width=1920, height=1280' ! queue name=queue_nrt leaky=2 max-size-buffers=0 max-size-bytes=0 max-size-time=4000000000 ! nvv4l2h265enc name=h265enc control-rate=0 bitrate=6000000 preset-level=3 maxperf-enable=1 iframeinterval=30 ! h265parse ! splitmuxsink name=muxsink muxer=matroskamux max-size-time=60000000000 location=/home/ubuntu/in_rgb_ir_test_%02d.mp4 &
- Camera 3 : - RAW 8-bit format
gst-launch-1.0 v4l2src name=inward_camerair device=/dev/video2 blocksize=2457600 ! 'video/x-bayer, width=(int)1920, height=(int)1280, format=(string)rggb, framerate=30/1' ! capssetter join=0 replace=1 caps='video/x-raw,width=1920,height=1280,format=GRAY8,framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=I420, width=1920, height=1280' ! queue name=queue_nrt leaky=2 max-size-buffers=0 max-size-bytes=0 max-size-time=4000000000 ! videorate name=vrconv_nrt max-rate=30 ! nvv4l2h265enc name=h265enc control-rate=0 bitrate=5000000 peak-bitrate=5000000 preset-level=3 maxperf-enable=1 idrinterval=0 iframeinterval=30 ! h265parse ! splitmuxsink name=muxsink muxer=matroskamux max-size-time=60000000000 location=/home/ubuntu/IRRAW_video%02d.mp4 &
We can successfully record using above commands from command line, but we are facing issue when we run these pipelines from gst test application. Please find the attached gst_test source code.
Issue :- if Camera3 pipeline parsed after camera1 & camera2 pipeline then we are getting "internal data error". but if we parsed camera3 pipeline at first in test app then there is no issue.
After debugging we found in failure case application is negotiating wrong caps.
Please let us know if running multiple streams from single process is forcing same frame setting for all pipelines or Is there any issue from driver side.