BrettRD/ros-gst-bridge

rosimagesink

Opened this issue · 1 comments

I am struggling to find a gstreamer pipeline that works with this plugin. This pipeline has worked for me with the standard installation of gstreamer is:

gst-launch-1.0 -v udpsrc port=5600 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! decodebin ! videoconvert ! autovideosink

So I thought to change out autovideosink with rosimagesink and add ros-topic="image". I don't get an error when I run the below command with this plugin, but it never successfully starts running. Any ideas?

gst-launch-1.0 -v udpsrc port=5600 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! decodebin ! videoconvert ! rosimagesink' ros-topic="image"

Thank you and any help is appreciated!

Gstreamer pipelines run everything in the same thread unless you split them with a queue element.

In this pipeline:

  • udpsrc will be waiting (blocking) for packets
  • rosimagesink will be waiting (blocking) for its first message

If you add a queue anywhere in this pipeline, it should relieve the deadlock