Changing netclientclock sources and rtpbin

Carlos Rafael Giani dv at pseudoterminal.org
Mon Jun 24 07:21:47 PDT 2013


Hello,

if I understand this correctly, setting a new clock during playback 
causes the pipeline to calculate a new base time to ensure the running 
time continues smoothly, right?

 From what I understand, if I replace an existing pipeline clock with a 
new one, the pipeline modifies the base-time so that the running-time 
continues smoothly, no matter how far apart the clocks are.

But now I have this case: I have an application which can either 
playback local stuff or receive and play some audio RTP stream. In the 
first mode, it just uses the audio sink as the clock source. In the 
second mode, it uses a netclientclock (the sender is running a 
nettimeprovider). This netclientclock, together with the RTCP packets 
the rtpbin receifves, makes sure the receiver's playback is synchronized 
to the sender's. Initially, the receiver doesn't receive anything, it 
just plays something locally. Then I manually switch to the sender's 
RTP/RTCP streams. The netclientclock is set to be the one driving the 
pipeline. The pipeline modifies the base-time. Will this break 
synchronization with the sender? I mean, the running-time in sender and 
receiver would not be the same, right?

Of course, a simple solution is to just destroy and recreate the 
pipeline when switching between these modes. Is this the recommended 
option, or can it be done better?

cheers


More information about the gstreamer-devel mailing list