[MPlayer-dev-eng] [PATCH] Movie fragments support for demux_mov
David Romacho
romaxin2002 at yahoo.com.au
Mon Dec 10 09:35:11 CET 2007
David Romacho wrote:
> Hi all,
>
> The goal of these patches is to provide MPlayer with the movie
> fragment feature present in mov/mp4 container (ISO/IEC 14496-12
> standard). This feature is used by some digital cameras that save the
> video in several fragments. Currently MPlayer just recognises the
> first movie fragment and does not play the rest of fragments.
>
> I split the previous patch into 3 different patches. They are supposed
> to be applied one right after the other against demux_mov.c
> MPlayer should compile after applying each patch but support for movie
> fragments won't be fully operational till last patch is applied.
> So, once all patches are applied, MPlayer should playback the movie
> fragment test samples (http://samples.mplayerhq.hu/mov/fragments/)
> completely. The head of MPlayer just plays the first 15 seconds of
> them (the first movie fragment).
>
> Patch description:
>
> step1.patch
>
> This patch basically adds :
>
> * Adds the mov_traf_t struct.
> * Adds new members to mov_priv_t.
> * Does not stop parsing when a 'mdat' atom is found. Inserts it
> into the list and continues.
> * Recognises 'mfra' atoms in 'mov_check_file' function.
> * Recognises 'moov' atoms in 'mov_check_file' function.
>
> step2.patch
>
> This patch adds new functions that parse previously ignored atoms:
>
> * lschunks_inmfra: parses 'mfra' atoms. Movie Fragment Random
> Access Box (for fast seeking). Has 'tfra' and 'mfro' atoms inside.
> * lschunks_intraf: parses 'traf' atoms. Track Fragment Box. Has
> 'tfhd' and 'trun' atoms inside.
> * lschunks_inmoof: parses 'moof' atoms. Movie Fragment Box. Has
> 'mfhd' and 'traf' atoms inside.
> * lschunks_inmvex: parses 'mvex' atoms. Movie Extends Box. Has
> 'mehd' and 'trex' atoms inside.
>
> If someone reviews this patch, he will need to take a look to the
> ISO/IEC 14496-12 Standard documentation.
> And a couple of new functions that are needed in order to add the traf
> to each track and finally rebuild indexes.
>
> * add_traf_to_track.
> * mov_rebuild_index.
>
> step3.patch
>
> * Free allocated memory.
> * Fix the duration map.
> * Detect 'mvex' atoms in lschunks function.
> * Process 'moof' chunks, attach corresponding trafs and rebuild
> indexes in mov_read_header function.
>
>
> I am also including movie_fragments.patch which includes all the
> changes. It can can be applied directly to demux_mov.c.
>
> Cheers,
>
> David
>
No one is interested in this feature ? The code is fully functional so
after applying the patch mplayer is able to reproduce correctly a
certain kind of MP4/MOV files. No one is encouraged to review these
patches ?
More information about the MPlayer-dev-eng
mailing list