[vlc-devel] [PATCH] demux: mp4: extract framerate from mp4 files with DASH encapsulation, using frame duration stored in elst 'i_media_time'

Emeric Grange emeric.grange at gmail.com
Wed Oct 7 11:46:01 CEST 2015


2015-10-06 17:54 GMT+02:00 Francois Cartegnie <fcvlcdev at free.fr>:
> Le 06/10/2015 14:57, Emeric Grange a écrit :
>
>> +            if( p_track->p_elst && p_track->BOXDATA(p_elst)->i_entry_count > 0 )
>> +            {
>> +                vlc_ureduce( pi_num, pi_den,
>> +                             (uint64_t) BOXDATA(p_mdhd)->i_timescale,
>> +                             (uint64_t) p_track->BOXDATA(p_elst)->i_media_time[p_track->i_elst],
>> +                             UINT16_MAX );
>
> Well, changing my mind.
> What does guarantee that timescale has always framerate relationship ?

I don't really have any guarantee but the mp4 spec does state
"media_time is an integer containing the starting time within the
media of this edit segment (in media time scale units, in composition
time)" so I guess media_time should always by relative to media
timescale.

Proper framerate should be in the DASH MPD I think. However when not
in streaming situation, but only trying to play the actual mp4 files
being streamed, this is a way to get the samples duration (and by the
way these files comes from youtube).

Emeric


More information about the vlc-devel mailing list