[FFmpeg-cvslog] r26241 - trunk/libavformat/rtpdec.c

mstorsjo subversion
Thu Jan 6 12:33:07 CET 2011


Author: mstorsjo
Date: Thu Jan  6 12:33:06 2011
New Revision: 26241

Log:
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.

Modified:
   trunk/libavformat/rtpdec.c

Modified: trunk/libavformat/rtpdec.c
==============================================================================
--- trunk/libavformat/rtpdec.c	Thu Jan  6 04:30:19 2011	(r26240)
+++ trunk/libavformat/rtpdec.c	Thu Jan  6 12:33:06 2011	(r26241)
@@ -436,6 +436,8 @@ rtp_parse_set_dynamic_protocol(RTPDemuxC
  */
 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;



More information about the ffmpeg-cvslog mailing list