RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
143 stars 64 forks source link

Interpipes getting locked when using NVMM + num-buffers in the sink #83

Open emmadrigal opened 3 years ago

emmadrigal commented 3 years ago

Here are a few pipelines to reproduce the issue

# Works
gst-launch-1.0 \
videotestsrc ! interpipesink name=video_sink \
interpipesrc listen-to=video_sink ! perf name=first_pipe ! fakesink \
interpipesrc listen-to=video_sink num-buffers=6000 ! perf name=second_pipe ! fakesink

Using nvvidconv

# Blocks after 6000 buffers
gst-launch-1.0 \
videotestsrc ! nvvidconv ! "video/x-raw(memory:NVMM)" ! interpipesink name=video_sink \
interpipesrc listen-to=video_sink ! perf name=first_pipe ! fakesink \
interpipesrc listen-to=video_sink num-buffers=6000 ! perf name=second_pipe ! fakesink
# Blocks after 6000 buffers
gst-launch-1.0 \
videotestsrc ! nvvidconv ! "video/x-raw(memory:NVMM)" ! queue leaky=2 ! interpipesink name=video_sink \
interpipesrc listen-to=video_sink ! queue leaky=2 ! perf name=first_pipe ! fakesink \
interpipesrc listen-to=video_sink num-buffers=6000 ! queue leaky=2 ! perf name=second_pipe ! fakesink
# Blocks after 6000 buffers
gst-launch-1.0 \
videotestsrc ! nvvidconv ! "video/x-raw(memory:NVMM)" ! queue leaky=2 ! interpipesink name=video_sink async=true sync=false \
interpipesrc listen-to=video_sink ! queue leaky=2 ! perf name=first_pipe ! fakesink \
interpipesrc listen-to=video_sink num-buffers=6000 ! queue leaky=2 ! perf name=second_pipe ! fakesink

Using NvArgus


# Blocks after 300 buffers
gst-launch-1.0 \
nvarguscamerasrc ! "video/x-raw(memory:NVMM)" ! queue leaky=2 ! interpipesink name=video_sink async=true sync=false \
interpipesrc listen-to=video_sink ! queue leaky=2 ! perf name=first_pipe ! fakesink \
interpipesrc listen-to=video_sink num-buffers=300 ! queue leaky=2 ! perf name=second_pipe ! fakesink```
emmadrigal commented 3 years ago

When we found this issue we were testing using gstd, and moving the num-buffers pipeline to stopped, unblocked the other pipeline