diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index fcdf2143af..063f9064f5 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -414,7 +414,10 @@ static int flv_read_packet(AVFormatContext *s, AVPacket *pkt) ff_mpeg4audio_get_config(&cfg, st->codec->extradata, st->codec->extradata_size); st->codec->channels = cfg.channels; - st->codec->sample_rate = cfg.sample_rate; + if (cfg.ext_sample_rate) + st->codec->sample_rate = cfg.ext_sample_rate; + else + st->codec->sample_rate = cfg.sample_rate; dprintf(s, "mp4a config channels %d sample rate %d\n", st->codec->channels, st->codec->sample_rate); } diff --git a/libavformat/mov.c b/libavformat/mov.c index 99cbbfbe35..4921e55c82 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -535,8 +535,10 @@ int ff_mov_read_esds(AVFormatContext *fc, ByteIOContext *pb, MOVAtom atom) st->codec->channels = cfg.channels; if (cfg.object_type == 29 && cfg.sampling_index < 3) // old mp3on4 st->codec->sample_rate = ff_mpa_freq_tab[cfg.sampling_index]; + else if (cfg.ext_sample_rate) + st->codec->sample_rate = cfg.ext_sample_rate; else - st->codec->sample_rate = cfg.sample_rate; // ext sample rate ? + st->codec->sample_rate = cfg.sample_rate; dprintf(fc, "mp4a config channels %d obj %d ext obj %d " "sample rate %d ext sample rate %d\n", st->codec->channels, cfg.object_type, cfg.ext_object_type,