I honestly don’t know. Here are the outputs for the different IO-modes. I am using a gst-1.6.0 i compiled from source as shown here:
Factory Details:
Rank primary (256)
Long-name Video (video4linux2) Source
Klass Source/Video
Description Reads frames from a Video4Linux2 device
Author Edgard Lima <edgard.lima@indt.org.br>, Stefan Kost <ensonic@users.sf.net>
Plugin Details:
Name video4linux2
Description elements for Video 4 Linux
Filename /home/root/gst_1.6.0/out/lib/gstreamer-1.0/libgstvideo4linux2.so
Version 1.6.0
License LGPL
Source module gst-plugins-good
Source release date 2015-09-25
Binary package GStreamer Good Plug-ins source release
Origin URL Unknown package origin
RW - Works fine and I CTRL-C-ed after 8 seconds to stop.
gst-launch-1.0 v4l2src device=/dev/video0 do-timestamp=true io-mode=1 ! "video/x-raw, width=1920, height=1080, format=(string)UYVY, framerate=(fraction)30/1" ! queue ! nvvidconv ! 'video/x-raw(memory:NVMM), width=1920, height=1080,format=I420, framerate=30/1' ! omxh265enc bitrate=500000 control-rate=2 ! h265parse ! avmux_mpegts ! udpsink host=224.0.0.3 port=5057
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
===== NVENC blits (mode: 1) into block linear surfaces =====
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:08.711559003
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
MMAP
gst-launch-1.0 v4l2src device=/dev/video0 do-timestamp=true io-mode=2 ! "video/x-raw, width=1920, height=1080, format=(string)UYVY, framerate=(fraction)30/1" ! queue ! nvvidconv ! 'video/x-raw(memory:NVMM), width=1920, height=1080,format=I420, framerate=30/1' ! omxh265enc bitrate=500000 control-rate=2 ! h265parse ! avmux_mpegts ! udpsink host=224.0.0.3 port=5057 --gst-debug=3
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:02.181019754 4953 0x14bc90 FIXME videoencoder gstvideoencoder.c:657:gst_video_encoder_setcaps:<omxh265enc-omxh265enc0> GstVideoEncoder::reset() is deprecated
Framerate set to : 30 at NvxVideoEncoderSetParameter0:00:02.181165168 4953 0x14bc90 WARN omxh265enc gstomxh265enc.c:114:gst_omx_h265_enc_set_format:<omxh265enc-omxh265enc0> Setting profile/level not supported by component
NvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
0:00:02.204898917 4953 0x14b6c0 WARN v4l2bufferpool gstv4l2bufferpool.c:748:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:02.368595052 4953 0x14b6c0 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:<v4l2src0> error: Internal data flow error.
0:00:02.369372068 4953 0x14b6c0 WARN basesrc gstbasesrc.c:2943:gst_base_src_loop:<v4l2src0> error: streaming task paused, reason error (-5)
0:00:02.370948131 4953 0x14b6c0 WARN queue gstqueue.c:968:gst_queue_handle_sink_event:<queue0> error: Internal data flow error.
0:00:02.371548119 4953 0x14b6c0 WARN queue gstqueue.c:968:gst_queue_handle_sink_event:<queue0> error: streaming task paused, reason error (-5)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2943): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming task paused, reason error (-5)
Execution ended after 0:00:01.981959786
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
USERPTR
gst-launch-1.0 v4l2src device=/dev/video0 do-timestamp=true io-mode=3 ! "video/x-raw, width=1920, height=1080, format=(string)UYVY, framerate=(fraction)30/1" ! queue ! nvvidconv ! 'video/x-raw(memory:NVMM), width=1920, height=1080,format=I420, framerate=30/1' ! omxh265enc bitrate=500000 control-rate=2 ! h265parse ! avmux_mpegts ! udpsink host=224.0.0.3 port=5057
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: No downstream pool to import from.
Additional debug info:
gstv4l2object.c(3846): gst_v4l2_object_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
When importing DMABUF or USERPTR, we need a pool to import from
Execution ended after 0:00:01.792497733
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
Using MMAP w/o nvidconv (using videoconvert) works as shown:
gst-launch-1.0 v4l2src device=/dev/video0 do-timestamp=true io-mode=2 ! "video/x-raw, width=1920, height=1080, format=(string)UYVY, framerate=(fraction)30/1" ! queue ! videoconvert ! 'video/x-raw, width=1920, height=1080,format=I420, framerate=30/1' ! omxh265enc bitrate=500000 control-rate=2 ! h265parse ! avmux_mpegts ! udpsink host=224.0.0.3 port=5057
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:02.135440279 5029 0x14b950 FIXME videoencoder gstvideoencoder.c:657:gst_video_encoder_setcaps:<omxh265enc-omxh265enc0> GstVideoEncoder::reset() is deprecated
Framerate set to : 30 at NvxVideoEncoderSetParameter0:00:02.135576110 5029 0x14b950 WARN omxh265enc gstomxh265enc.c:114:gst_omx_h265_enc_set_format:<omxh265enc-omxh265enc0> Setting profile/level not supported by component
NvMMLiteOpen : Block : BlockType = 8
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 8
===== NVENC blits (mode: 1) into block linear surfaces =====
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:08.120022804
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...