summaryrefslogtreecommitdiff
path: root/libavformat/rtpdec.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2011-01-06 11:33:06 +0000
committerMartin Storsjö <martin@martin.st>2011-01-06 11:33:06 +0000
commit79d482b108287b8d43adf6724deb2c6cd14e44d9 (patch)
tree5985ecdb7ea70142de557b2c218699c917dc8621 /libavformat/rtpdec.c
parent6cbce6365067e1bdd5127d9001809726ea538e09 (diff)
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
Diffstat (limited to 'libavformat/rtpdec.c')
-rw-r--r--libavformat/rtpdec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 700924962e..03abb1dcff 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;