MP4_TrackSeek( p_demux, tk, i_date );
}
MP4_UpdateSeekpoint( p_demux );
+
+ es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME, i_date );
+
return VLC_SUCCESS;
}
if( p_avcC )
{
p_track->fmt.i_extra = p_avcC->data.p_avcC->i_avcC;
- p_track->fmt.p_extra = malloc( p_avcC->data.p_avcC->i_avcC );
- memcpy( p_track->fmt.p_extra, p_avcC->data.p_avcC->p_avcC,
- p_track->fmt.i_extra );
+ if( p_track->fmt.i_extra > 0 )
+ {
+ p_track->fmt.p_extra = malloc( p_avcC->data.p_avcC->i_avcC );
+ memcpy( p_track->fmt.p_extra, p_avcC->data.p_avcC->p_avcC,
+ p_track->fmt.i_extra );
+ }
}
else
{
p_track->b_selected = true;
- if( TrackGotoChunkSample( p_demux, p_track, i_chunk, i_sample ) ==
- VLC_SUCCESS )
- {
+ if( !TrackGotoChunkSample( p_demux, p_track, i_chunk, i_sample ) )
p_track->b_selected = true;
- es_out_Control( p_demux->out, ES_OUT_SET_NEXT_DISPLAY_TIME,
- p_track->p_es, i_start );
- }
-
return p_track->b_selected ? VLC_SUCCESS : VLC_EGENERIC;
}