Stuck in handling dynamic pipeline! Help needed

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Stuck in handling dynamic pipeline! Help needed

Baby Octopus
Hi,

My pipeline looks like this

input-selector name=VideoSwitcher ! videoscale ! x264enc ! udpsink
filesrc ! tee ! queue2 ring-buffer-max-size=100000 ! decodebin ! VideoSwitcher.
filesrc ! tee ! queue2 ring-buffer-max-size=100000 ! decodebin ! VideoSwitcher.

The bold part of pipeline is created dynamically when I receive segment-done from first branch. Pipeline state is kept to running all throughout

In the bold branch, each element is added to pipeline and synced with parent. This is done for all the elements

I'm making sure I block filesrc's src pad to avoid dataflow issue. But the error that I get is
GStreamer-CRITICAL **: pushing on pad typefind:src but it was not activated in push mode
Trying to join task 0x7fffa5b63b90 from its thread would deadlock

I'm figuring out what is wrong
1. Blocking src pad of filesrc - Would this make typefind to work in push mode, though it is activated in pull mode?
2. Replacing queue2 with queue is sending EOS event. Not sure why :(

Any suggestion on handling dynamic pipeline?