[FFmpeg-devel] [PATCH] libavformat/mov: Speed up fragmented mp4 parsing

Aaron Boushley aaron at boushley.com
Tue Nov 6 01:03:04 EET 2018


On Mon, Nov 5, 2018 at 2:21 PM Michael Niedermayer
<michael at niedermayer.cc> wrote:
>
> On Mon, Nov 05, 2018 at 11:17:25AM -0800, Aaron Boushley wrote:
> > When parsing a fragmented MP4 with the use_mfra_for option set so that
> > the mfra box is parsed we currently continue to parse all the top level
> > boxes in the mp4. We also avoid using the index in mov_seek_fragment
> > unless the fragment index is marked as complete, which the mfra parsing
> > code never does.
> >
> > This updates the mfra parsing code to mark the fragment index as
> > complete, similar to the way the sidx parsing code does.
> >
> > With this change in place mov_read_default stops parsing top level boxes
> > in a fragmented mp4 and uses the mfra data for mov_seek_fragment calls
> > (assuming a use_mfra_for option is passed). When loading the file over a
> > network this results in significantly better performance since
> > avformat_open_input doesn't require a scan of the entire file.
> >
> > Signed-off-by: Aaron Boushley <boushley at gmail.com>
> > ---
> >  libavformat/mov.c | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/libavformat/mov.c b/libavformat/mov.c
> > index ec57a05803..1def594626 100644
> > --- a/libavformat/mov.c
> > +++ b/libavformat/mov.c
> > @@ -7344,6 +7344,8 @@ static int mov_read_mfra(MOVContext *c, AVIOContext
> > *f)
> >          if (ret < 0)
>
> patch is corrupted by a newline
What's the best way to address this, submit a new patch email thread?
Or is there a way to fix this thread?
[...]

Aaron


More information about the ffmpeg-devel mailing list