rtpdec: only use RTCP for PTS when synchronizing multiple streams
authorJohn Brooks <john.brooks@bluecherry.net>
Wed, 9 Nov 2011 23:28:35 +0000 (16:28 -0700)
committerMartin Storsjö <martin@martin.st>
Fri, 18 Nov 2011 08:47:28 +0000 (10:47 +0200)
RTCP timestamps are only necessary to synchronize time between
multiple streams. For a single stream, the RTP packet timestamp
provides more reliable timing. As a result, single-stream RTP
sessions should now have accurate and monotonic PTS.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtpdec.c

index 94fa0f1..88cf15b 100644 (file)
@@ -424,7 +424,7 @@ static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestam
     if (timestamp == RTP_NOTS_VALUE)
         return;
 
-    if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE) {
+    if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE && s->ic->nb_streams > 1) {
         int64_t addend;
         int delta_timestamp;