forked from FFmpeg/FFmpeg
mp4a fix based on some code by (Song.Itany inventec-inc com)
Originally committed as revision 4002 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
3622988f21
commit
2f1e1ed3dd
1 changed files with 17 additions and 4 deletions
|
@ -1061,8 +1061,12 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
|
||||||
}
|
}
|
||||||
else if( st->codec.codec_tag == MKTAG( 'm', 'p', '4', 'a' ))
|
else if( st->codec.codec_tag == MKTAG( 'm', 'p', '4', 'a' ))
|
||||||
{
|
{
|
||||||
|
MOV_atom_t a;
|
||||||
|
int mp4_version;
|
||||||
|
|
||||||
/* Handle mp4 audio tag */
|
/* Handle mp4 audio tag */
|
||||||
get_be32(pb); /* version */
|
mp4_version=get_be16(pb);/*version*/
|
||||||
|
get_be16(pb); /*revesion*/
|
||||||
get_be32(pb);
|
get_be32(pb);
|
||||||
st->codec.channels = get_be16(pb); /* channels */
|
st->codec.channels = get_be16(pb); /* channels */
|
||||||
st->codec.bits_per_sample = get_be16(pb); /* bits per sample */
|
st->codec.bits_per_sample = get_be16(pb); /* bits per sample */
|
||||||
|
@ -1070,10 +1074,19 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
|
||||||
st->codec.sample_rate = get_be16(pb); /* sample rate, not always correct */
|
st->codec.sample_rate = get_be16(pb); /* sample rate, not always correct */
|
||||||
get_be16(pb);
|
get_be16(pb);
|
||||||
c->mp4=1;
|
c->mp4=1;
|
||||||
{
|
|
||||||
MOV_atom_t a = { format, url_ftell(pb), size - (20 + 20 + 8) };
|
if(mp4_version==1)
|
||||||
|
{
|
||||||
|
url_fskip(pb,16);
|
||||||
|
a.size=size-(16+20+16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
a.size=size-(16+20);
|
||||||
|
|
||||||
|
a.offset=url_ftell(pb);
|
||||||
|
|
||||||
mov_read_default(c, pb, a);
|
mov_read_default(c, pb, a);
|
||||||
}
|
|
||||||
/* Get correct sample rate from extradata */
|
/* Get correct sample rate from extradata */
|
||||||
if(st->codec.extradata_size) {
|
if(st->codec.extradata_size) {
|
||||||
const int samplerate_table[] = {
|
const int samplerate_table[] = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue