vlc | branch: master | Francois Cartegnie <[email protected]> | Tue May 2 19:43:41 2017 +0200| [58749453265a105c88e48fccbbd63d7a36f706cd] | committer: Francois Cartegnie
demux: mp4: simplify map trun contexes > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=58749453265a105c88e48fccbbd63d7a36f706cd --- modules/demux/mp4/mp4.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 8636fea9f9..beb82b985e 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -4594,28 +4594,23 @@ static int LeafMapTrafTrunContextes( demux_t *p_demux, MP4_Box_t *p_moof ) } /* map contexts */ - while ( p_traf ) + for ( ; p_traf; p_traf = p_traf->p_next ) { - if ( p_traf->i_type == ATOM_traf ) + MP4_Box_t *p_tfhd; + if ( p_traf->i_type != ATOM_traf || + !(p_tfhd = MP4_BoxGet( p_traf, "tfhd" )) ) + continue; + + mp4_track_t *p_track = MP4_GetTrackByTrackID( p_demux, BOXDATA(p_tfhd)->i_track_ID ); + if( !p_track ) + continue; + + p_track->context.p_trun = MP4_BoxGet( p_traf, "trun" ); + if( p_track->context.p_trun ) { - MP4_Box_t *p_tfhd = MP4_BoxGet( p_traf, "tfhd" ); - for ( uint32_t i=0; p_tfhd && i<p_sys->i_tracks; i++ ) - { - mp4_track_t *p_track = &p_sys->track[i]; - if ( BOXDATA(p_tfhd)->i_track_ID == p_track->i_track_ID ) - { - MP4_Box_t *p_trun = MP4_BoxGet( p_traf, "trun" ); - if ( p_trun ) - { - p_track->context.p_tfhd = p_tfhd; - p_track->context.p_traf = p_traf; - p_track->context.p_trun = p_trun; - } - p_tfhd = NULL; /* break loop */ - } - } + p_track->context.p_tfhd = p_tfhd; + p_track->context.p_traf = p_traf; } - p_traf = p_traf->p_next; } return VLC_SUCCESS; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
