diff --git a/libavformat/demux.c b/libavformat/demux.c index ecefe7e0a7..dc65f9ad91 100644 --- a/libavformat/demux.c +++ b/libavformat/demux.c @@ -2516,7 +2516,7 @@ static int extract_extradata(FFFormatContext *si, AVStream *st, const AVPacket * int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) { FFFormatContext *const si = ffformatcontext(ic); - int count = 0, ret = 0; + int count = 0, ret = 0, err; int64_t read_size; AVPacket *pkt1 = si->pkt; int64_t old_offset = avio_tell(ic->pb); @@ -3027,9 +3027,11 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) } } - ret = compute_chapters_end(ic); - if (ret < 0) + err = compute_chapters_end(ic); + if (err < 0) { + ret = err; goto find_stream_info_err; + } /* update the stream parameters from the internal codec contexts */ for (unsigned i = 0; i < ic->nb_streams; i++) {