Commit 98769079 authored by Michael Niedermayer's avatar Michael Niedermayer

avformat/utils: Update codec_id before using it in the parser init

Fixes assertion failure

Fixes: input.avi
Found-by: 's avatar连一汉 <lianyihan@360.cn>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 47d2be30
......@@ -3383,6 +3383,17 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
if (!avctx->time_base.num)
avctx->time_base = st->time_base;
}
/* check if the caller has overridden the codec id */
#if FF_API_LAVF_AVCTX
FF_DISABLE_DEPRECATION_WARNINGS
if (st->codec->codec_id != st->internal->orig_codec_id) {
st->codecpar->codec_id = st->codec->codec_id;
st->codecpar->codec_type = st->codec->codec_type;
st->internal->orig_codec_id = st->codec->codec_id;
}
FF_ENABLE_DEPRECATION_WARNINGS
#endif
// only for the split stuff
if (!st->parser && !(ic->flags & AVFMT_FLAG_NOPARSE) && st->request_probe <= 0) {
st->parser = av_parser_init(st->codecpar->codec_id);
......@@ -3399,16 +3410,6 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
}
}
/* check if the caller has overridden the codec id */
#if FF_API_LAVF_AVCTX
FF_DISABLE_DEPRECATION_WARNINGS
if (st->codec->codec_id != st->internal->orig_codec_id) {
st->codecpar->codec_id = st->codec->codec_id;
st->codecpar->codec_type = st->codec->codec_type;
st->internal->orig_codec_id = st->codec->codec_id;
}
FF_ENABLE_DEPRECATION_WARNINGS
#endif
if (st->codecpar->codec_id != st->internal->orig_codec_id)
st->internal->orig_codec_id = st->codecpar->codec_id;
......
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