From: Ronald S. Bultje Date: Thu, 10 Jan 2008 13:52:35 +0000 (+0000) Subject: Make rtp_parse_packet() always call the vfunc of the dynamic payload handler X-Git-Tag: v0.5~6481 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b4e3330c12f0650272277b9d1dc5023dcf79e625;p=coroid%2Fffmpeg_saccubus.git Make rtp_parse_packet() always call the vfunc of the dynamic payload handler if there is one. See "[PATCH] Realmedia / RTSP (RDT)" thread on ML. Originally committed as revision 11493 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c index f5e2d6dd6..66f2310b2 100644 --- a/libavformat/rtpdec.c +++ b/libavformat/rtpdec.c @@ -474,6 +474,8 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, s->read_buf_index = 0; return 1; } + } else if (s->parse_packet) { + rv = s->parse_packet(s, pkt, ×tamp, buf, len); } else { // at this point, the RTP header has been stripped; This is ASSUMING that there is only 1 CSRC, which in't wise. switch(st->codec->codec_id) { @@ -529,12 +531,8 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, rv= 0; break; default: - if(s->parse_packet) { - rv= s->parse_packet(s, pkt, ×tamp, buf, len); - } else { av_new_packet(pkt, len); memcpy(pkt->data, buf, len); - } break; }