From f3e71942e77fa8dcea62f9e4eebbbbdfbf062b61 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Tue, 3 Mar 2009 13:41:50 +0000 Subject: In the current implementation of rtp_parse_packet(), finalize_packet() is called for all packets with an internal handler function but only for non-first packets from dynamic payload parse_packet() handlers. This patch fixes that. Bug was noticed by Luca in "[PATCH] rtpdec.c: don't overwrite pkt->stream_index in finalize_packet()" thread. Originally committed as revision 17764 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/rtpdec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libavformat/rtpdec.c') diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index 3e833a1822..764385dd27 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -473,6 +473,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, s->read_buf_index = 0; return 1; } + return 0; } else if (s->parse_packet) { rv = s->parse_packet(s->ic, s->dynamic_protocol_context, s->st, pkt, ×tamp, buf, len, flags); @@ -535,10 +536,11 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, memcpy(pkt->data, buf, len); break; } + } // now perform timestamp things.... finalize_packet(s, pkt, timestamp); - } + return rv; } -- cgit v1.2.3