mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02:00
avformat/utils: Update codec_id before using it in the parser init
Fixes assertion failure Fixes: input.avi Found-by: 连一汉 <lianyihan@360.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
47d2be3056
commit
987690799d
@ -3383,6 +3383,17 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options)
|
|||||||
if (!avctx->time_base.num)
|
if (!avctx->time_base.num)
|
||||||
avctx->time_base = st->time_base;
|
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
|
// only for the split stuff
|
||||||
if (!st->parser && !(ic->flags & AVFMT_FLAG_NOPARSE) && st->request_probe <= 0) {
|
if (!st->parser && !(ic->flags & AVFMT_FLAG_NOPARSE) && st->request_probe <= 0) {
|
||||||
st->parser = av_parser_init(st->codecpar->codec_id);
|
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)
|
if (st->codecpar->codec_id != st->internal->orig_codec_id)
|
||||||
st->internal->orig_codec_id = st->codecpar->codec_id;
|
st->internal->orig_codec_id = st->codecpar->codec_id;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user