vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Jun 11 16:32:38 2015 +0200| [f3590c78f4434bf0a443382c7c76a8df60a63373] | committer: Francois Cartegnie
demux: mp4: move fragmented duration computation tracks aren't init yet, so we can't compute duration when falling back from missing mehd > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f3590c78f4434bf0a443382c7c76a8df60a63373 --- modules/demux/mp4/mp4.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 8554e65..2c1a72b 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -833,23 +833,6 @@ static int Open( vlc_object_t * p_this ) } } - if ( p_sys->i_overall_duration == 0 ) - { - /* Try in mehd if fragmented */ - MP4_Box_t *p_mehd = MP4_BoxGet( p_demux->p_sys->p_root, "moov/mvex/mehd"); - if ( p_mehd && p_mehd->data.p_mehd ) - p_sys->i_overall_duration = p_mehd->data.p_mehd->i_fragment_duration; - else - { - for( i = 0; i < p_sys->i_tracks; i++ ) - { - mtime_t i_duration = GetTrackDurationInFragment( &p_sys->moovfragment, - p_sys->track[i].i_track_ID ); - p_sys->i_overall_duration = __MAX( p_sys->i_overall_duration, (uint64_t)i_duration ); - } - } - } - const unsigned i_tracks = MP4_BoxCount( p_sys->p_root, "/moov/trak" ); if( i_tracks < 1 ) { @@ -926,6 +909,23 @@ static int Open( vlc_object_t * p_this ) } } + if ( p_sys->i_overall_duration == 0 ) + { + /* Try in mehd if fragmented */ + MP4_Box_t *p_mehd = MP4_BoxGet( p_demux->p_sys->p_root, "moov/mvex/mehd"); + if ( p_mehd && p_mehd->data.p_mehd ) + p_sys->i_overall_duration = p_mehd->data.p_mehd->i_fragment_duration; + else + { + for( i = 0; i < p_sys->i_tracks; i++ ) + { + mtime_t i_duration = GetTrackDurationInFragment( &p_sys->moovfragment, + p_sys->track[i].i_track_ID ); + p_sys->i_overall_duration = __MAX( p_sys->i_overall_duration, (uint64_t)i_duration ); + } + } + } + #ifdef MP4_VERBOSE mtime_t i_total_duration = 0; mp4_fragment_t *p_fragment = &p_sys->moovfragment; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
