Dynamic Pipelines

Jon Lovewell jon at csoftware.co.uk
Mon Apr 12 15:15:04 UTC 2021

Hello All,

I am looking at adding branches to a running pipeline dynamically and have run into a problem.

My setup is Windows 10, running GStreamer V1.18.3 MSVC, and using GstSharp V 1.18.

I have a very simple pipeline

               "videotestsrc ! capsfilter caps=\"{caps}\" ! tee name=tee ! queue ! avimux ! filesink location=C:\\\\Temp\\\\GstRecordings\\\\Test.avi"

Where caps are "video/x-raw, format=BGRA, height=240, width=320, framerate=30/1"

When the pipeline transitions to the playing state I add a timeout handler with a 2 second delay to add a branch to the 'tee' to display the video, the branch looks like this

               "queue ! videoconvert ! capsfilter caps=\"{caps}\" ! autovideosink"

Where caps are "video/x-raw, format=NV12, height=240, width=320, framerate=30/1"

The branch is added, linked and synched successfully.  I can see that all the elements transition to the playing state except for the video sink which only transitions to 'ready' and the pipeline transitions to paused.

If I swap out 'autovideosink' for 'fakesink' the same thing happens.  However, if I swap out the entire branch with the following

               "queue ! videoconvert ! x264enc ! h264parse !capsfilter caps=\"{caps}\" ! fakesink"

Where caps are "video/x-h264, stream-format=byte-stream, alignment=au"

Then all the elements transition to playing and I can also see the pipeline transition back to playing.

I would be grateful for any handy hints or tips, help or assistance, especially that relating to debug categories that I could use to help identify the problem.

Many Thanks


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210412/29a35a37/attachment-0001.htm>

More information about the gstreamer-devel mailing list