diff options
author | Aurelien Jacobs <aurel@gnuage.org> | 2010-08-29 19:00:40 +0000 |
---|---|---|
committer | Aurelien Jacobs <aurel@gnuage.org> | 2010-08-29 19:00:40 +0000 |
commit | 6d0678d182fda5c2f954acaf528a5a0c3c7d6fd4 (patch) | |
tree | c4a3a5acc57fbb9c15a5545d360759fde4a349b6 /libavformat/raw.c | |
parent | 85a2aada9007878ef6555fe9ce98e04c41eada40 (diff) | |
download | ffmpeg-6d0678d182fda5c2f954acaf528a5a0c3c7d6fd4.tar.gz |
move DTS demuxer to its own file
Originally committed as revision 24972 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/raw.c')
-rw-r--r-- | libavformat/raw.c | 71 |
1 files changed, 7 insertions, 64 deletions
diff --git a/libavformat/raw.c b/libavformat/raw.c index 969858346d..55457bd4e0 100644 --- a/libavformat/raw.c +++ b/libavformat/raw.c @@ -233,7 +233,7 @@ int pcm_read_seek(AVFormatContext *s, return 0; } -static int audio_read_header(AVFormatContext *s, +int ff_raw_audio_read_header(AVFormatContext *s, AVFormatParameters *ap) { AVStream *st = av_new_stream(s, 0); @@ -519,49 +519,6 @@ static int h261_probe(AVProbeData *p) } #endif -#if CONFIG_DTS_DEMUXER -#define DCA_MARKER_14B_BE 0x1FFFE800 -#define DCA_MARKER_14B_LE 0xFF1F00E8 -#define DCA_MARKER_RAW_BE 0x7FFE8001 -#define DCA_MARKER_RAW_LE 0xFE7F0180 -static int dts_probe(AVProbeData *p) -{ - const uint8_t *buf, *bufp; - uint32_t state = -1; - int markers[3] = {0}; - int sum, max; - - buf = p->buf; - - for(; buf < (p->buf+p->buf_size)-2; buf+=2) { - bufp = buf; - state = (state << 16) | bytestream_get_be16(&bufp); - - /* regular bitstream */ - if (state == DCA_MARKER_RAW_BE || state == DCA_MARKER_RAW_LE) - markers[0]++; - - /* 14 bits big-endian bitstream */ - if (state == DCA_MARKER_14B_BE) - if ((bytestream_get_be16(&bufp) & 0xFFF0) == 0x07F0) - markers[1]++; - - /* 14 bits little-endian bitstream */ - if (state == DCA_MARKER_14B_LE) - if ((bytestream_get_be16(&bufp) & 0xF0FF) == 0xF007) - markers[2]++; - } - sum = markers[0] + markers[1] + markers[2]; - max = markers[1] > markers[0]; - max = markers[2] > markers[max] ? 2 : max; - if (markers[max] > 3 && p->buf_size / markers[max] < 32*1024 && - markers[max] * 4 > sum * 3) - return AVPROBE_SCORE_MAX/2+1; - - return 0; -} -#endif - #if CONFIG_DIRAC_DEMUXER static int dirac_probe(AVProbeData *p) { @@ -656,7 +613,7 @@ AVInputFormat ac3_demuxer = { NULL_IF_CONFIG_SMALL("raw AC-3"), 0, ac3_probe, - audio_read_header, + ff_raw_audio_read_header, ff_raw_read_partial_packet, .flags= AVFMT_GENERIC_INDEX, .extensions = "ac3", @@ -735,20 +692,6 @@ AVOutputFormat dnxhd_muxer = { }; #endif -#if CONFIG_DTS_DEMUXER -AVInputFormat dts_demuxer = { - "dts", - NULL_IF_CONFIG_SMALL("raw DTS"), - 0, - dts_probe, - audio_read_header, - ff_raw_read_partial_packet, - .flags= AVFMT_GENERIC_INDEX, - .extensions = "dts", - .value = CODEC_ID_DTS, -}; -#endif - #if CONFIG_DTS_MUXER AVOutputFormat dts_muxer = { "dts", @@ -770,7 +713,7 @@ AVInputFormat eac3_demuxer = { NULL_IF_CONFIG_SMALL("raw E-AC-3"), 0, eac3_probe, - audio_read_header, + ff_raw_audio_read_header, ff_raw_read_partial_packet, .flags= AVFMT_GENERIC_INDEX, .extensions = "eac3", @@ -799,7 +742,7 @@ AVInputFormat gsm_demuxer = { NULL_IF_CONFIG_SMALL("raw GSM"), 0, NULL, - audio_read_header, + ff_raw_audio_read_header, ff_raw_read_partial_packet, .flags= AVFMT_GENERIC_INDEX, .extensions = "gsm", @@ -987,7 +930,7 @@ AVInputFormat mlp_demuxer = { NULL_IF_CONFIG_SMALL("raw MLP"), 0, NULL, - audio_read_header, + ff_raw_audio_read_header, ff_raw_read_partial_packet, .flags= AVFMT_GENERIC_INDEX, .extensions = "mlp", @@ -1028,7 +971,7 @@ AVInputFormat truehd_demuxer = { NULL_IF_CONFIG_SMALL("raw TrueHD"), 0, NULL, - audio_read_header, + ff_raw_audio_read_header, ff_raw_read_partial_packet, .flags= AVFMT_GENERIC_INDEX, .extensions = "thd", @@ -1157,7 +1100,7 @@ AVInputFormat shorten_demuxer = { NULL_IF_CONFIG_SMALL("raw Shorten"), 0, NULL, - audio_read_header, + ff_raw_audio_read_header, ff_raw_read_partial_packet, .flags= AVFMT_GENERIC_INDEX, .extensions = "shn", |