diff --git a/libavformat/rtp.c b/libavformat/rtp.c index 244bf77d37bb367df951d29a288bcf0d664b1147..60fa0d1842f040a892dacf7e3d9f0b77246ec471 100644 --- a/libavformat/rtp.c +++ b/libavformat/rtp.c @@ -234,6 +234,18 @@ RTPDemuxContext *rtp_parse_open(AVFormatContext *s1, AVStream *st, int payload_t av_free(s); return NULL; } + } else { + switch(st->codec.codec_id) { + case CODEC_ID_MPEG1VIDEO: + case CODEC_ID_MPEG2VIDEO: + case CODEC_ID_MP2: + case CODEC_ID_MP3: + case CODEC_ID_MPEG4: + st->need_parsing = 1; + break; + default: + break; + } } return s; } @@ -322,7 +334,7 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt, memcpy(pkt->data, buf, len); break; case CODEC_ID_MPEG1VIDEO: - /* better than nothing: skip mpeg audio RTP header */ + /* better than nothing: skip mpeg video RTP header */ if (len <= 4) return -1; h = decode_be32(buf);