nvgstiva-app with multiple sourcesc (Solved)

Jetson TX2, JetPack 3.2, DeepStream SDK

Is it possible to run nvgstiva-app with multiple sources?

Multiple sinks, same source - works. Multiple sources, multiple sinks - crashes.

Portions of config:

[source0]
enable=1
#Type - 1=CameraCSi 2=CameraV4L2 3=URI
type=3
camera-width=1920
camera-height=1080
camera-fps-n=30
camera-fps-d=1
camera-csi-sensor-id=0
camera-v4l2-dev-node=0
uri=file:///home/nvidia/sample_720p_1.mp4

[source1]
enable=1
#Type - 1=CameraCSi 2=CameraV4L2 3=URI
type=3
camera-width=1920
camera-height=1080
camera-fps-n=30
camera-fps-d=1
camera-csi-sensor-id=0
camera-v4l2-dev-node=0
uri=file:///home/nvidia/sample_720p.mp4

[sink0]
enable=1
#Type - 1=FakeSink 2=OverlaySink 3=EglSink 4=XvImageSink 5=File
type=3
display-id=0
offset-x=0
offset-y=0
width=800
height=600
sync=1
overlay-index=1
source-id=0

[sink1]
enable=1
#Type - 1=FakeSink 2=OverlaySink 3=EglSink 4=XvImageSink 5=File
type=3
display-id=0
offset-x=810
offset-y=0
width=800
height=600
sync=1
overlay-index=1
source-id=1

error log:

NvMMLiteOpen : Block : BlockType = 261 
TVMR: NvMMLiteTVMRDecBlockOpen: 7647: NvMMLiteBlockOpen 
NvMMLiteBlockCreate : Block : BlockType = 261 
NvMMLiteOpen : Block : BlockType = 261 
TVMR: NvMMLiteTVMRDecBlockOpen: 7647: NvMMLiteBlockOpen 
NvMMLiteBlockCreate : Block : BlockType = 261 
TVMR: cbBeginSequence: 1179: BeginSequence  1280x720, bVPR = 0
TVMR: LowCorner Frequency = 100000 
TVMR: cbBeginSequence: 1529: DecodeBuffers = 5, pnvsi->eCodec = 4, codec = 0 
TVMR: cbBeginSequence: 1179: BeginSequence  1280x720, bVPR = 0
TVMR: LowCorner Frequency = 100000 
TVMR: cbBeginSequence: 1529: DecodeBuffers = 5, pnvsi->eCodec = 4, codec = 0 
TVMR: cbBeginSequence: 1600: Display Resolution : (1280x720) 
TVMR: cbBeginSequence: 1601: Display Aspect Ratio : (1280x720) 
TVMR: cbBeginSequence: 1669: ColorFormat : 5 
TVMR: cbBeginSequence:1683 ColorSpace = NvColorSpace_YCbCr601
TVMR: cbBeginSequence: 1809: SurfaceLayout = 3
TVMR: cbBeginSequence: 1600: Display Resolution : (1280x720) 
TVMR: cbBeginSequence: 1601: Display Aspect Ratio : (1280x720) 
TVMR: cbBeginSequence: 1669: ColorFormat : 5 
TVMR: cbBeginSequence:1683 ColorSpace = NvColorSpace_YCbCr601
TVMR: cbBeginSequence: 1809: SurfaceLayout = 3
TVMR: cbBeginSequence: 1902: NumOfSurfaces = 12, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
TVMR: cbBeginSequence: 1904: BeginSequence  ColorPrimaries = 2, TransferCharacteristics = 2, MatrixCoefficients = 2
TVMR: cbBeginSequence: 1902: NumOfSurfaces = 12, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
TVMR: cbBeginSequence: 1904: BeginSequence  ColorPrimaries = 2, TransferCharacteristics = 2, MatrixCoefficients = 2
Allocating new output: 1280x720 (x 12), ThumbnailMode = 0
Allocating new output: 1280x720 (x 12), ThumbnailMode = 0
OPENMAX: HandleNewStreamFormat: 3464: Send OMX_EventPortSettingsChanged : nFrameWidth = 1280, nFrameHeight = 720 
OPENMAX: HandleNewStreamFormat: 3464: Send OMX_EventPortSettingsChanged : nFrameWidth = 1280, nFrameHeight = 720 
TVMR: FrameRate = 30 
TVMR: NVDEC LowCorner Freq = (100000 * 1024) 
TVMR: FrameRate = 30 
TVMR: NVDEC LowCorner Freq = (100000 * 1024) 

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_remove_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

** (nvgstiva-app:4150): WARNING **: Unexpected item 0x7ee8027da0 dequeued from queue osd_queue (refcounting problem?)

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_proxy_pad_chain_default: assertion 'GST_IS_BUFFER (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_remove_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_remove_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_remove_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_remove_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_remove_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_add_meta: assertion 'gst_buffer_is_writable (buffer)' failed

(nvgstiva-app:4150): GStreamer-CRITICAL **: gst_buffer_peek_memory: assertion 'GST_IS_BUFFER (buffer)' failed
**
ERROR:/dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c:593:gst_omx_buffer_pool_acquire_buffer: assertion failed: (mem && g_strcmp0 (mem->allocator->mem_type, GST_OMX_MEMORY_TYPE) == 0)

Hi,

Current DeepStream for Jetson does not support multi-source. Maybe you can try to run multiple DeepStreams as a WAR.

That’s good to know. You should update your documentation which states:

"
The source group specifies the source properties. The DeepStream application supports multiple simultaneous sources. For each source, a separate group with the group names such as source%d must be added to the configuration file.
"

in

nviva_docs/index.html#page/NVIDIA%2520IVA%2520Development%2520Guide%2Fiva_config.html%23wwpID0E0SB0HA

Thanks for pointing out.

Hi,

Any update on DeepSrteam support on multiple sources/streams?

Hi efiryw2d,

That’s supported at current DeepStream SDK 3.0, you can download it from https://developer.nvidia.com/deepstream-sdk

Thanks

Thx,

Including Jetson TX2 multiple sources support, right?