|
|
|
@@ -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", |
|
|
|
|