Commit 03e16112 authored by alexc's avatar alexc

AAC parser: Don't write channels, sample rate, and frame size each frame.

Thanks to backwards compatible HE-AAC signalling these values are unreliable.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@22194 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 8d140db6
......@@ -71,10 +71,16 @@ get_next:
*poutbuf_size = buf_size;
/* update codec info */
avctx->sample_rate = s->sample_rate;
if(s->codec_id)
avctx->codec_id = s->codec_id;
/* Due to backwards compatible HE-AAC the sample rate, channel count,
and total number of samples found in an AAC ADTS header are not
reliable. Bit rate is still accurate because the total frame duration in
seconds is still correct (as is the number of bits in the frame). */
if (avctx->codec_id != CODEC_ID_AAC) {
avctx->sample_rate = s->sample_rate;
/* allow downmixing to stereo (or mono for AC-3) */
if(avctx->request_channels > 0 &&
avctx->request_channels < s->channels &&
......@@ -83,12 +89,14 @@ get_next:
(avctx->codec_id == CODEC_ID_AC3 ||
avctx->codec_id == CODEC_ID_EAC3)))) {
avctx->channels = avctx->request_channels;
} else if (avctx->codec_id != CODEC_ID_AAC || s->channels) {
} else {
avctx->channels = s->channels;
avctx->channel_layout = s->channel_layout;
}
avctx->bit_rate = s->bit_rate;
avctx->frame_size = s->samples;
}
avctx->bit_rate = s->bit_rate;
return i;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment