[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