[FFmpeg-devel] [PATCH] avformat/mov: Handle when we have an mfra box but have not read the full sidx for a fragment
Derek Buitenhuis
derek.buitenhuis at gmail.com
Mon Mar 15 19:04:37 EET 2021
Use the tfra timestamp if it is available and sidx timestamp is not.
Fixes reading the entire file after seeking in a live-style DASH FMP4
with an MFRA.
This specifically fixes when use_mfra_for is set.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
---
I could also put it behind an additional use_mfra_for option check if that is
what people want.
---
libavformat/mov.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 23b0ead01e..97857789f4 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1279,6 +1279,10 @@ static int64_t get_frag_time(MOVFragmentIndex *frag_index,
if (track_id >= 0) {
frag_stream_info = get_frag_stream_info(frag_index, index, track_id);
+ if (frag_stream_info->sidx_pts != AV_NOPTS_VALUE)
+ return frag_stream_info->sidx_pts;
+ if (frag_stream_info->first_tfra_pts != AV_NOPTS_VALUE)
+ return frag_stream_info->first_tfra_pts;
return frag_stream_info->sidx_pts;
}
--
2.30.0
More information about the ffmpeg-devel
mailing list