Mercurial > libavformat.hg
diff raw.c @ 6440:8beba113f242 libavformat
move ac3/eac3 demuxer to its own file
author | aurel |
---|---|
date | Sun, 29 Aug 2010 22:02:47 +0000 |
parents | 4053f191ae61 |
children | d23c128f1f51 |
line wrap: on
line diff
--- a/raw.c Sun Aug 29 21:51:47 2010 +0000 +++ b/raw.c Sun Aug 29 22:02:47 2010 +0000 @@ -20,8 +20,6 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include "libavutil/crc.h" -#include "libavcodec/ac3_parser.h" #include "libavcodec/get_bits.h" #include "libavcodec/bytestream.h" #include "avformat.h" @@ -241,78 +239,8 @@ } #endif -#if CONFIG_AC3_DEMUXER || CONFIG_EAC3_DEMUXER -static int ac3_eac3_probe(AVProbeData *p, enum CodecID expected_codec_id) -{ - int max_frames, first_frames = 0, frames; - uint8_t *buf, *buf2, *end; - AC3HeaderInfo hdr; - GetBitContext gbc; - enum CodecID codec_id = CODEC_ID_AC3; - - max_frames = 0; - buf = p->buf; - end = buf + p->buf_size; - - for(; buf < end; buf++) { - buf2 = buf; - - for(frames = 0; buf2 < end; frames++) { - init_get_bits(&gbc, buf2, 54); - if(ff_ac3_parse_header(&gbc, &hdr) < 0) - break; - if(buf2 + hdr.frame_size > end || - av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, buf2 + 2, hdr.frame_size - 2)) - break; - if (hdr.bitstream_id > 10) - codec_id = CODEC_ID_EAC3; - buf2 += hdr.frame_size; - } - max_frames = FFMAX(max_frames, frames); - if(buf == p->buf) - first_frames = frames; - } - if(codec_id != expected_codec_id) return 0; - // keep this in sync with mp3 probe, both need to avoid - // issues with MPEG-files! - if (first_frames>=4) return AVPROBE_SCORE_MAX/2+1; - else if(max_frames>500)return AVPROBE_SCORE_MAX/2; - else if(max_frames>=4) return AVPROBE_SCORE_MAX/4; - else if(max_frames>=1) return 1; - else return 0; -} -#endif - -#if CONFIG_AC3_DEMUXER -static int ac3_probe(AVProbeData *p) -{ - return ac3_eac3_probe(p, CODEC_ID_AC3); -} -#endif - -#if CONFIG_EAC3_DEMUXER -static int eac3_probe(AVProbeData *p) -{ - return ac3_eac3_probe(p, CODEC_ID_EAC3); -} -#endif - /* Note: Do not forget to add new entries to the Makefile as well. */ -#if CONFIG_AC3_DEMUXER -AVInputFormat ac3_demuxer = { - "ac3", - NULL_IF_CONFIG_SMALL("raw AC-3"), - 0, - ac3_probe, - ff_raw_audio_read_header, - ff_raw_read_partial_packet, - .flags= AVFMT_GENERIC_INDEX, - .extensions = "ac3", - .value = CODEC_ID_AC3, -}; -#endif - #if CONFIG_AC3_MUXER AVOutputFormat ac3_muxer = { "ac3", @@ -373,20 +301,6 @@ }; #endif -#if CONFIG_EAC3_DEMUXER -AVInputFormat eac3_demuxer = { - "eac3", - NULL_IF_CONFIG_SMALL("raw E-AC-3"), - 0, - eac3_probe, - ff_raw_audio_read_header, - ff_raw_read_partial_packet, - .flags= AVFMT_GENERIC_INDEX, - .extensions = "eac3", - .value = CODEC_ID_EAC3, -}; -#endif - #if CONFIG_EAC3_MUXER AVOutputFormat eac3_muxer = { "eac3",