[MPlayer-dev-eng] [PATCH] Movie fragments support for demux_mov

David Romacho romaxin2002 at yahoo.com.au
Tue Dec 18 09:26:11 CET 2007


Ulion wrote:
> 2007/12/10, David Romacho <romaxin2002 at yahoo.com.au>:
>   
>> 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 ?
>>     
>
> I can try, review:
>
>   
Thanks for your comments. I will fix them and send back the patches.

David



More information about the MPlayer-dev-eng mailing list