Move resetting of channels, sample_rate back to av_find_stream_info.
Resetting it on codec init would incorrectly clear the values if av_find_stream_info was already run before, in particular breaking ffplay. This fixes trac tickets #213 and #262. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
This commit is contained in:
parent
45ecc7a294
commit
896e59758a
@ -570,9 +570,6 @@ static av_cold int aac_decode_init(AVCodecContext *avctx)
|
||||
ac->m4ac.sample_rate = avctx->sample_rate;
|
||||
|
||||
if (avctx->extradata_size > 0) {
|
||||
avctx->channels = 0;
|
||||
avctx->frame_size = 0;
|
||||
avctx->sample_rate = 0;
|
||||
if (decode_audio_specific_config(ac, ac->avctx, &ac->m4ac,
|
||||
avctx->extradata,
|
||||
avctx->extradata_size) < 0)
|
||||
|
@ -2261,6 +2261,15 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
|
||||
for(i=0;i<ic->nb_streams;i++) {
|
||||
AVCodec *codec;
|
||||
st = ic->streams[i];
|
||||
if (st->codec->codec_id == CODEC_ID_AAC && st->codec->extradata_size) {
|
||||
// We need to discard these since they can be plain wrong for
|
||||
// backwards compatible HE-AAC signaling.
|
||||
// But when we have no extradata we need to keep them or we can't
|
||||
// play anything at all.
|
||||
st->codec->sample_rate = 0;
|
||||
st->codec->frame_size = 0;
|
||||
st->codec->channels = 0;
|
||||
}
|
||||
|
||||
if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO ||
|
||||
st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user