Hi,
I wrote a code to receive from many udp video sources and switch between them at any moment.
Those sources has to be created dynamically so I used interpipe plugin in order to not handle timestamps/probes to align the new created bin to the pipeline time.
The interpipesink bin
udpsrc, rtpjitterbuffer, rtpmp2tdepay, tsparse, tsdemux, queue, h264parse, avdec_h264, queue, videoconvert, interpipesink
The interpipesrc pipeline:
interpipesrc is-live=1 allow-renegotiation=true stream-sync=0 format=3 ! videoconvert ! queue ! x264enc name=encoder key-int-max=30 speed-preset=1 tune=4 bitrate=15000 ! h264parse config-interval=1 ! rtph264pay ! udpsink sync=1
I skipped some parameters to simplify, if needed I can write down the actual pipelines.
After the play command either the bin and the pipeline starts from time 0 so all works well.
When I create a new receiving bin ad I change the listen-to proprierty of interpipesrc, the video stops for few seconds, because, I think, x264enc skips very fast many buffers.
If I add a tee and a viewer branch the problem go away.
The interpipesrc pipeline with tee:
interpipesrc is-live=1 allow-renegotiation=true stream-sync=0 format=3 ! videoconvert ! queue ! tee name=mytee mytee. ! queue ! videoconvert ! autovideosink sync=0 mytee. ! queue ! x264enc name=encoder key-int-max=30 speed-preset=1 tune=4 bitrate=15000 ! h264parse config-interval=1 ! rtph264pay ! udpsink sync=1
Any idea about this problem?
Thanks