create a separate codec_id for E-AC-3
Originally committed as revision 15143 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
5f86057ffd
commit
2988c93d94
9 changed files with 78 additions and 7 deletions
|
@ -487,8 +487,8 @@ static int dirac_probe(AVProbeData *p)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_AC3_DEMUXER
|
||||
static int ac3_probe(AVProbeData *p)
|
||||
#if (CONFIG_AC3_DEMUXER || CONFIG_EAC3_DEMUXER)
|
||||
static int ac3_eac3_probe(AVProbeData *p, int *codec_id)
|
||||
{
|
||||
int max_frames, first_frames = 0, frames;
|
||||
uint8_t *buf, *buf2, *end;
|
||||
|
@ -499,6 +499,7 @@ static int ac3_probe(AVProbeData *p)
|
|||
buf = p->buf;
|
||||
end = buf + p->buf_size;
|
||||
|
||||
*codec_id = CODEC_ID_AC3;
|
||||
for(; buf < end; buf++) {
|
||||
buf2 = buf;
|
||||
|
||||
|
@ -509,6 +510,8 @@ static int ac3_probe(AVProbeData *p)
|
|||
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);
|
||||
|
@ -522,6 +525,28 @@ static int ac3_probe(AVProbeData *p)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_AC3_DEMUXER
|
||||
static int ac3_probe(AVProbeData *p)
|
||||
{
|
||||
int codec_id = CODEC_ID_NONE;
|
||||
int score = ac3_eac3_probe(p, &codec_id);
|
||||
if(codec_id == CODEC_ID_AC3)
|
||||
return score;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_EAC3_DEMUXER
|
||||
static int eac3_probe(AVProbeData *p)
|
||||
{
|
||||
int codec_id = CODEC_ID_NONE;
|
||||
int score = ac3_eac3_probe(p, &codec_id);
|
||||
if(codec_id == CODEC_ID_EAC3)
|
||||
return score;
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FLAC_DEMUXER
|
||||
static int flac_probe(AVProbeData *p)
|
||||
{
|
||||
|
@ -633,6 +658,35 @@ AVOutputFormat dts_muxer = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_EAC3_DEMUXER
|
||||
AVInputFormat eac3_demuxer = {
|
||||
"eac3",
|
||||
NULL_IF_CONFIG_SMALL("raw E-AC-3"),
|
||||
0,
|
||||
eac3_probe,
|
||||
audio_read_header,
|
||||
raw_read_partial_packet,
|
||||
.flags= AVFMT_GENERIC_INDEX,
|
||||
.extensions = "eac3",
|
||||
.value = CODEC_ID_EAC3,
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_EAC3_MUXER
|
||||
AVOutputFormat eac3_muxer = {
|
||||
"eac3",
|
||||
NULL_IF_CONFIG_SMALL("raw E-AC-3"),
|
||||
"audio/x-eac3",
|
||||
"eac3",
|
||||
0,
|
||||
CODEC_ID_EAC3,
|
||||
CODEC_ID_NONE,
|
||||
NULL,
|
||||
raw_write_packet,
|
||||
.flags= AVFMT_NOTIMESTAMPS,
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FLAC_DEMUXER
|
||||
AVInputFormat flac_demuxer = {
|
||||
"flac",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue