[SCM] libav/experimental: rtpdec: Don't set RTP timestamps if they already are set by the depacketizer

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:21:27 UTC 2013


The following commit has been merged in the experimental branch:
commit 79d482b108287b8d43adf6724deb2c6cd14e44d9
Author: Martin Storsjö <martin at martin.st>
Date:   Thu Jan 6 11:33:06 2011 +0000

    rtpdec: Don't set RTP timestamps if they already are set by the depacketizer
    
    For MS-RTSP, we don't always get RTCP packets (never?), so the earlier
    timestamping code never wrote anything into pkt->pts. The rtpdec_asf
    depacketizer just sets the dts of the packet, so if the generic RTP
    timestamping is used, too, we get inconsistent timestamps.
    
    Therefore, skip the generic RTP timestamp algorithm if the depacketizer
    already has set something.
    
    This fixes "Invalid timestamps" warnings, present since SVN rev 26187.
    
    Originally committed as revision 26241 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 7009249..03abb1d 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -436,6 +436,8 @@ rtp_parse_set_dynamic_protocol(RTPDemuxContext *s, PayloadContext *ctx,
  */
 static void finalize_packet(RTPDemuxContext *s, AVPacket *pkt, uint32_t timestamp)
 {
+    if (pkt->pts != AV_NOPTS_VALUE || pkt->dts != AV_NOPTS_VALUE)
+        return; /* Timestamp already set by depacketizer */
     if (s->last_rtcp_ntp_time != AV_NOPTS_VALUE && timestamp != RTP_NOTS_VALUE) {
         int64_t addend;
         int delta_timestamp;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list