GNOME Bugzilla – Bug 519005
Resuming paused rtsp stream fails in tcp interleaved mode
Last modified: 2008-03-11 10:43:45 UTC
Steps to reproduce: 1. start playing rtsp stream using tcp interleaved transport mode e.g. rtsp://68.251.168.13/thisislove.3gp 2. pause playback 3. resume playback Soon there will be missing audio and video. Repeating steps 2 & 3 will cause more missing audio and video. Some observations: From basesink log I noticed that timestamps in buffers arriving to a/v sinks were reset to zero at some point. Also a few data buffers seem to be ignored/discarded when looking for a response to PAUSE request in gst_rtspsrc_try_send().
After step 3. rtp_jitter_buffer_reset_skew() is usually triggered: 0:00:14.607089424 6502 0x8453200 DEBUG rtpjitterbuffer rtpjitterbuffer.c:223:calculate_skew: delta changed too quickly 0:00:01.904000000 reset skew If there are no valid timestamps in incoming buffers, then _reset_skew() will effectively set jitterbuffer base_time to invalid too and cause timestamps of outgoing buffers to restart from zero. Maybe we shouldn't _reset_skew() without valid incoming timestamps?
Created attachment 107040 [details] [review] only reset skew when having valid timestamps
Patch by: Stefan Kost <ensonic@users.sf.net> * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): Don't try to reset the clock skew when we have no timestamps. Fixes #519005.