From: Justin Ruggles <justin.rugg...@gmail.com> The mfra has enough information to enable seeking, and reading it is behind an AVOption flag, so we shouldn't require that sidx information also be present in order to seek using the fragment index.
Signed-off-by: Derek Buitenhuis <derek.buitenh...@gmail.com> --- This is especially important want I/O is networked, since otherwise it will read essentially the entire file by seeking to every sidx in the file, which for a live-style FMP4 can be a *lot*. Dale Curtis is CC'd, as this is probably highly relevant to him. Note: If a global sidx is present, that information will override the mfra, but if sidx are before each moof, those will no longer be parsed in mov_read_header if you set use_mfra_for, which can result in a wrong duration since mfra isn't used for setting duration while sidx is. --- libavformat/mov.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 4f64e96bc0..7fd43a8fc5 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -7529,6 +7529,7 @@ static int mov_read_mfra(MOVContext *c, AVIOContext *f) goto fail; } while (!ret); ret = 0; + c->frag_index.complete = 1; fail: seek_ret = avio_seek(f, original_pos, SEEK_SET); if (seek_ret < 0) { -- 2.28.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".