Filesources seem to work great (apart from the stream of errors, as reported above), but I’m having trouble with RTSP sources. They are 25fps streams but the Capture() method now takes about 85ms on average to return. Maybe the console output might give you a clue whats going on?
[gstreamer] gstDecoder -- creating decoder for IPADDRESS
Opening in BLOCKING MODE
Opening in BLOCKING MODE
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
[gstreamer] gstDecoder -- discovered video resolution: 1920x1080 (framerate 25.000000 Hz)
[gstreamer] gstDecoder -- discovered video caps: video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)main, pixel-aspect-ratio=(fraction)189/190, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
[gstreamer] gstDecoder -- pipeline string:
[gstreamer] rtspsrc location=rtsp://IPADDRESS:9554/camera2 latency=2000 ! queue ! rtph264depay ! h264parse ! omxh264dec ! video/x-raw(memory:NVMM) ! appsink name=mysink
[video] created gstDecoder from rtsp://IPADDRESS:9554/camera2
------------------------------------------------
gstDecoder video options:
------------------------------------------------
-- URI: rtsp://IPADDRESS:9554/camera2
- protocol: rtsp
- location: IPADDRESS
- port: 9554
-- deviceType: ip
-- ioType: input
-- codec: h264
-- width: 1920
-- height: 1080
-- frameRate: 25.000000
-- bitRate: 0
-- numBuffers: 4
-- zeroCopy: true
-- flipMethod: none
-- loop: 0
-- rtspLatency 2000
------------------------------------------------
[gstreamer] opening gstDecoder for streaming, transitioning pipeline to GST_STATE_PLAYING
[gstreamer] gstreamer changed state from NULL to READY ==> mysink
[gstreamer] gstreamer changed state from NULL to READY ==> capsfilter1
[gstreamer] gstreamer changed state from NULL to READY ==> omxh264dec-omxh264dec0
[gstreamer] gstreamer changed state from NULL to READY ==> h264parse1
[gstreamer] gstreamer changed state from NULL to READY ==> rtph264depay1
[gstreamer] gstreamer changed state from NULL to READY ==> queue0
[gstreamer] gstreamer changed state from NULL to READY ==> rtspsrc0
[gstreamer] gstreamer changed state from NULL to READY ==> pipeline0
[gstreamer] gstreamer changed state from READY to PAUSED ==> capsfilter1
[gstreamer] gstreamer changed state from READY to PAUSED ==> omxh264dec-omxh264dec0
[gstreamer] gstreamer changed state from READY to PAUSED ==> h264parse1
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtph264depay1
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> queue0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtspsrc0
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> pipeline0
[gstreamer] gstreamer message new-clock ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> omxh264dec-omxh264dec0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> h264parse1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtph264depay1
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> queue0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtspsrc0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer message progress ==> rtspsrc0
(python3:18199): GStreamer-CRITICAL **: 11:51:26.919: gst_caps_is_empty: assertion 'GST_IS_CAPS (caps)' failed
(python3:18199): GStreamer-CRITICAL **: 11:51:26.919: gst_caps_truncate: assertion 'GST_IS_CAPS (caps)' failed
(python3:18199): GStreamer-CRITICAL **: 11:51:26.919: gst_caps_fixate: assertion 'GST_IS_CAPS (caps)' failed
(python3:18199): GStreamer-CRITICAL **: 11:51:26.919: gst_caps_get_structure: assertion 'GST_IS_CAPS (caps)' failed
(python3:18199): GStreamer-CRITICAL **: 11:51:26.919: gst_structure_get_string: assertion 'structure != NULL' failed
(python3:18199): GStreamer-CRITICAL **: 11:51:26.919: gst_mini_object_unref: assertion 'mini_object != NULL' failed
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
Allocating new output: 1920x1088 (x 11), ThumbnailMode = 0
OPENMAX: HandleNewStreamFormat: 3605: Send OMX_EventPortSettingsChanged: nFrameWidth = 1920, nFrameHeight = 1080
[gstreamer] gstDecoder -- onPreroll()
[gstreamer] gstreamer changed state from NULL to READY ==> manager
[gstreamer] gstreamer changed state from READY to PAUSED ==> manager
[gstreamer] gstreamer changed state from NULL to READY ==> rtpssrcdemux2
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpssrcdemux2
[gstreamer] gstreamer changed state from NULL to READY ==> rtpsession2
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpsession2
[gstreamer] gstreamer changed state from NULL to READY ==> funnel4
[gstreamer] gstreamer changed state from READY to PAUSED ==> funnel4
[gstreamer] gstreamer changed state from NULL to READY ==> funnel5
[gstreamer] gstreamer changed state from READY to PAUSED ==> funnel5
[gstreamer] gstreamer changed state from NULL to READY ==> rtpstorage2
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpstorage2
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer changed state from NULL to READY ==> rtpssrcdemux3
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpssrcdemux3
[gstreamer] gstreamer changed state from NULL to READY ==> rtpsession3
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpsession3
[gstreamer] gstreamer changed state from NULL to READY ==> funnel6
[gstreamer] gstreamer changed state from READY to PAUSED ==> funnel6
[gstreamer] gstreamer changed state from NULL to READY ==> funnel7
[gstreamer] gstreamer changed state from READY to PAUSED ==> funnel7
[gstreamer] gstreamer changed state from NULL to READY ==> rtpstorage3
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpstorage3
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpssrcdemux3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpstorage3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpsession3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel6
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel7
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpssrcdemux2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpstorage2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpsession2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel4
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> funnel5
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> manager
[gstreamer] gstreamer message progress ==> rtspsrc0
[gstreamer] gstreamer changed state from NULL to READY ==> rtpptdemux2
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpptdemux2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpptdemux2
[gstreamer] gstreamer changed state from NULL to READY ==> rtpjitterbuffer2
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpjitterbuffer2
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpjitterbuffer2
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer changed state from NULL to READY ==> rtpptdemux3
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpptdemux3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpptdemux3
[gstreamer] gstreamer changed state from NULL to READY ==> rtpjitterbuffer3
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer changed state from READY to PAUSED ==> rtpjitterbuffer3
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> rtpjitterbuffer3
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer message stream-start ==> pipeline0
[gstreamer] gstreamer stream status CREATE ==> src
[gstreamer] gstreamer stream status ENTER ==> src
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)";
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)370200, maximum-bitrate=(uint)370200, bitrate=(uint)347940;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)370200, maximum-bitrate=(uint)10087200, bitrate=(uint)1233327;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)203400, maximum-bitrate=(uint)10087200, bitrate=(uint)1147500;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)1074769;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)1019742;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)970066;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)928200;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)889447;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)861922;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)831705;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)807000;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)782257;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)761727;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)741686;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)724641;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)708312;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)679096;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10087200, bitrate=(uint)654020;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)202000, maximum-bitrate=(uint)10148000, bitrate=(uint)949135;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)925218;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)904024;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)886117;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)868422;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)837172;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)812369;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)787960;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)766116;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)745777;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)727540;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10148000, bitrate=(uint)711053;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10289000, bitrate=(uint)891431;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10289000, bitrate=(uint)865441;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10289000, bitrate=(uint)844283;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10289000, bitrate=(uint)825252;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)10289000, bitrate=(uint)809006;
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)183800, maximum-bitrate=(uint)46902400, bitrate=(uint)1557160;
[gstreamer] gstDecoder -- map buffer size was less than max size (1008 vs 3110400)
[gstreamer] gstDecoder recieve caps: video/x-raw(memory:NVMM), format=(string)NV12, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)189/190, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)25/1
[gstreamer] gstDecoder -- recieved first frame, codec=h264 format=nv12 width=1920 height=1080 size=3110400
[gstreamer] gstDecoder -- recieved NVMM memory
[gstreamer] gstreamer changed state from READY to PAUSED ==> mysink
[gstreamer] gstreamer message async-done ==> pipeline0
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> mysink
[gstreamer] gstreamer changed state from PAUSED to PLAYING ==> pipeline0
[gstreamer] gstreamer mysink taglist, video-codec=(string)"H.264\ \(Main\ Profile\)", minimum-bitrate=(uint)150000, maximum-bitrate=(uint)46902400, bitrate=(uint)1534464;
RingBuffer -- allocated 4 buffers (6220800 bytes each, 24883200 bytes total)
I have had to remove some private information (IP address/camera URI).