Re: [FFmpeg-devel] [mov] Fix trampling of ctts during seeks when sidx support is enabled.
On Thu, Aug 24, 2017 at 10:57:43AM +0200, Michael Niedermayer wrote: > > From b4b49b6b584b33e1da95a5d72b05fd9134ab28f9 Mon Sep 17 00:00:00 2001 > > From: Dale Curtis> > Date: Mon, 17 Jul 2017 17:38:09 -0700 > > Subject: [PATCH] Fix trampling of ctts during seeks when sidx support is > > enabled. > > applied > > thanks With this commit I can no longer reproduce the problem described in ticket 6560, but I now get lots of [mov,mp4,m4a,3gp,3g2,mj2 @ 0x9942020] Failed to add index entry messages. These messages vanish if I also apply the patch that I posted three weeks ago ( https://patchwork.ffmpeg.org/patch/4632/ ) and that has so far received no comments. Best regards, Daniel ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH] avformat/mov: prevent duplication of first fragment's ctts_data
MP4 files with fragments might have the first moof box that is mentioned in a fragment index before the first mdat box. Since it is then already parsed by mov_read_header, we have to make sure that mov_switch_root will not parse it again when seeking by setting the headers_read flag in the index. Parsing it a second time would cause the ctts_data array to receive a second copy of the information from the trun box, leading to wrong PTS values for the second and following fragments in presence of B-frames. Fixes ticket 6560. Signed-off-by: Daniel Glöckner <daniel...@gmx.net> --- libavformat/mov.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 63f84be..c2da1b6 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -6345,6 +6345,13 @@ static int mov_read_header(AVFormatContext *s) } ff_configure_buffers_for_index(s, AV_TIME_BASE); +for (i = 0; i < mov->fragment_index_count; i++) { +MOVFragmentIndex *idx = mov->fragment_index_data[i]; +for (j = 0; j < idx->item_count; j++) +if (idx->items[j].moof_offset <= mov->fragment.moof_offset) +idx->items[j].headers_read = 1; +} + return 0; } -- 2.7.0 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel