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

Commit 9200514ad8 ("lavf: replace AVStream.codec with
AVStream.codecpar") merged in commit 6f69f7a8bf 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.
pull/228/head
Anssi Hannula 8 years ago
parent c26305f6ae
commit 60873bf992
  1. 2
      libavformat/utils.c

@ -3432,7 +3432,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
break;
}
if (st->parser && st->parser->parser->split &&
!st->codecpar->extradata)
!st->internal->avctx->extradata)
break;
if (st->first_dts == AV_NOPTS_VALUE &&
!(ic->iformat->flags & AVFMT_NOTIMESTAMPS) &&

Loading…
Cancel
Save