[FFmpeg-cvslog] avformat/utils: Fix find_stream_info not considering the extradata it found

Anssi Hannula git at videolan.org
Thu Jul 28 01:26:37 EEST 2016

ffmpeg | branch: master | Anssi Hannula <anssi.hannula at iki.fi> | Tue Jul 26 13:23:43 2016 +0300| [60873bf992eab1d3bad8dd0fd11336363d44854d] | committer: Anssi Hannula

avformat/utils: Fix find_stream_info not considering the extradata it found

Commit 9200514ad8717c6 ("lavf: replace AVStream.codec with
AVStream.codecpar") merged in commit 6f69f7a8bf6a0d01 changed
avformat_find_stream_info() to put the extradata it got from
st->parser->parser->split() to st->internal->avctx instead of st->codec
(extradata in st->internal->avctx will be later copied to st->codecpar).

However, in the same function, the "is stream ready?" check was changed
to check for extradata in st->codecpar instead of st->codec, even
though st->codecpar is not yet updated at that point.

Extradata retrieved from split() is therefore not considered anymore,
and avformat_find_stream_info() will therefore needlessly continue
probing in some cases.

Fix that by checking for the extradata at st->internal->avctx where it
is actually put.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=60873bf992eab1d3bad8dd0fd11336363d44854d

 libavformat/utils.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index e5a99ff..5a902ea 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
             if (st->parser && st->parser->parser->split &&
-                !st->codecpar->extradata)
+                !st->internal->avctx->extradata)
             if (st->first_dts == AV_NOPTS_VALUE &&
                 !(ic->iformat->flags & AVFMT_NOTIMESTAMPS) &&

More information about the ffmpeg-cvslog mailing list