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

Michael Niedermayer michael at niedermayer.cc
Tue Nov 6 00:20:55 EET 2018


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

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20181105/958a38c4/attachment.sig>


More information about the ffmpeg-devel mailing list