changeset 12007:b41cc72bb8ad

We now allow for the possibility of the RTCP audio/video synchronization being incorrect. (I encounted a stream for which this was the case.) Now, if audio and video are out-of-sync by >60 seconds, we assume that the RTCP sync is incorrect, and we don't discard any packets.
author rsf
date Tue, 02 Mar 2004 08:52:59 +0000
parents f4537eee7c33
children 8631b43c9d82
files libmpdemux/demux_rtp.cpp
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/demux_rtp.cpp	Mon Mar 01 14:58:20 2004 +0000
+++ b/libmpdemux/demux_rtp.cpp	Tue Mar 02 08:52:59 2004 +0000
@@ -305,8 +305,14 @@
     // audio and video streams get this far apart.)
     // (We don't do this when streaming over TCP, because then the audio and
     // video streams are interleaved.)
+    // (Also, if the stream is *excessively* far behind, then we allow
+    // the packet, because in this case it probably means that there was
+    // an error in the source's timestamp synchronization.)
     const float ptsBehindThreshold = 1.0; // seconds
-    if (ptsBehind < ptsBehindThreshold || rtspStreamOverTCP) { // packet's OK
+    const float ptsBehindLimit = 60.0; // seconds
+    if (ptsBehind < ptsBehindThreshold ||
+	ptsBehind > ptsBehindLimit ||
+	rtspStreamOverTCP) { // packet's OK
       ds_add_packet(ds, dp);
       break;
     }