input-selector element generates wrong DTS timestamps with sync-mode=0 and multiple rtspsrc (same video format/framerates)
Submitted by Tapas Kumar Kundu
Link to original bug (#759470)
Description
input-selector: it switches to active live video stream (rtspsrc) without checking for keyframes.
This causes input-selector to miss keyframe from rtspsrc and this causes additional delay (video is paused for 1second) during camera switching using input-selector.
Test case:
I have 5 ip cameras (all are rtspsrc element) and one audio src (rtspsrc)
All 5 ip cameras are connected with input-selector element and it switched from one camera to another camera.
My code works perfectly fine [1] : http://hastebin.com/raw/adatujewes
But there is one flaw in streaming. I am seeing a pause for 1 second whenever input-selector is switching between camera.
Look at timestamp 1min 12sec on my streaming video url which is using my binary generated from code [1]:
[2] https://www.youtube.com/watch?v=NPlN_3YhmrM
You will see cameras are switched every 5 seconds after 1:12 on that url [2] However, there is a pause of 1 second when camera switching happens,
I tried with changing delay of queue/ replacing queue with queue2/ making rtspsec latency=0 .
But nothing helps me .
Proposed Solution:
Fix input-selector element so that it can wait for keyframes before switching to live stream. This will give gapless video switching from input-selector element.