[FFmpeg-devel] [PATCH] rtpdec: Don't set RTP timestamps if they already are set by the depacketizer (original) (raw)

Martin Storsjo martin
Wed Jan 5 22:36:13 CET 2011


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.

libavformat/rtpdec.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)

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;

1.7.3.1



More information about the ffmpeg-devel mailing list