OSDN Git Service

Make rtp_parse_packet() always call the vfunc of the dynamic payload handler
authorRonald S. Bultje <rsbultje@gmail.com>
Thu, 10 Jan 2008 13:52:35 +0000 (13:52 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Thu, 10 Jan 2008 13:52:35 +0000 (13:52 +0000)
if there is one. See "[PATCH] Realmedia / RTSP (RDT)" thread on ML.

Originally committed as revision 11493 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtpdec.c

index f5e2d6d..66f2310 100644 (file)
@@ -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, &timestamp, 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, &timestamp, buf, len);
-            } else {
                 av_new_packet(pkt, len);
                 memcpy(pkt->data, buf, len);
-            }
             break;
         }