From afa6afcc9fac356eb895892511b5d8d9f416af40 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 31 Jul 2012 19:20:00 +0200 Subject: mpegdemux: remove redundant dvd audio code This is almost a revert of: (the file from the report still works) commit 80e58c6153249a40e47a20326b7626cbe0fcabd3 Author: Benoit Fouet Date: Wed Feb 11 11:09:36 2009 +0000 Allow demuxing of audio substreams stored as 0x06 type. Fixes issue 725: MPEG2 PS with PCM audio. On behalf of Jai. Originally committed as revision 17150 to svn://svn.ffmpeg.org/ffmpeg/trunk Signed-off-by: Michael Niedermayer --- libavformat/mpeg.c | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) (limited to 'libavformat/mpeg.c') diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c index c2a2f2be32..d51a6930e2 100644 --- a/libavformat/mpeg.c +++ b/libavformat/mpeg.c @@ -346,7 +346,7 @@ static int mpegps_read_pes_header(AVFormatContext *s, else if( c!= 0xf ) goto redo; - if (startcode == PRIVATE_STREAM_1 && !m->psm_es_type[startcode & 0xff]) { + if (startcode == PRIVATE_STREAM_1) { startcode = avio_r8(s->pb); len--; if (startcode >= 0x80 && startcode <= 0xcf) { @@ -391,19 +391,12 @@ static int mpegps_read_packet(AVFormatContext *s, enum CodecID codec_id = CODEC_ID_NONE; enum AVMediaType type; int64_t pts, dts, dummy_pos; //dummy_pos is needed for the index building to work - uint8_t av_uninit(dvdaudio_substream_type); redo: len = mpegps_read_pes_header(s, &dummy_pos, &startcode, &pts, &dts); if (len < 0) return len; - if(startcode == 0x1bd) { - dvdaudio_substream_type = avio_r8(s->pb); - avio_skip(s->pb, 3); - len -= 4; - } - /* now find stream */ for(i=0;inb_streams;i++) { st = s->streams[i]; @@ -476,19 +469,6 @@ static int mpegps_read_packet(AVFormatContext *s, } else if (startcode >= 0xfd55 && startcode <= 0xfd5f) { type = AVMEDIA_TYPE_VIDEO; codec_id = CODEC_ID_VC1; - } else if (startcode == 0x1bd) { - // check dvd audio substream type - type = AVMEDIA_TYPE_AUDIO; - switch(dvdaudio_substream_type & 0xe0) { - case 0xa0: codec_id = CODEC_ID_PCM_DVD; - break; - case 0x80: if((dvdaudio_substream_type & 0xf8) == 0x88) - codec_id = CODEC_ID_DTS; - else codec_id = CODEC_ID_AC3; - break; - default: av_log(s, AV_LOG_ERROR, "Unknown 0x1bd sub-stream\n"); - goto skip; - } } else { skip: /* skip packet */ @@ -508,8 +488,7 @@ static int mpegps_read_packet(AVFormatContext *s, found: if(st->discard >= AVDISCARD_ALL) goto skip; - if ((startcode >= 0xa0 && startcode <= 0xaf) || - (startcode == 0x1bd && ((dvdaudio_substream_type & 0xe0) == 0xa0))) { + if (startcode >= 0xa0 && startcode <= 0xaf) { int b1, freq; /* for LPCM, we just skip the header and consider it is raw -- cgit v1.2.3