pub fn sample_info_iter<'a>(trak: &'a TrackBox) -> SampleInfoIterator<'a> {
    let mdhd = trak.media().media_header();
    let stbl = trak.media().media_info().sample_table();
    let media_timescale = mdhd.timescale;

    let comp_time_shift_ = trak.composition_time_shift().unwrap_or(0) as i32;

    SampleInfoIterator {
        stsz_iter: stbl.sample_size().iter(),
        stts_iter: stbl.time_to_sample().iter(),
        stsc_iter: stbl.sample_to_chunk().iter(),
        ctts_iter: stbl.composition_time_to_sample().map(|ctts| ctts.iter()),
        stss_iter: stbl.sync_samples().map(|stss| stss.iter()),
        chunk_offset: stbl.chunk_offset_table(),
        media_timescale,
        comp_time_shift_,
        comp_time_shift: 0,
        fpos: 0,
        cur_sample: 1,
        cur_chunk: 1,
        pending: None,
    }
}
/// Return an iterator over the SampleTableBox of this track.
///
/// It iterates over multiple tables within the SampleTableBox, and
/// for each sample returns a SampleInfo.
Return an iterator over the SampleTableBox of this track.
It iterates over multiple tables within the SampleTableBox, and
for each sample returns a SampleInfo.
Return an iterator over the SampleTableBox of this track . It iterates over multiple tables within the SampleTableBox and for each sample returns a SampleInfo .
pub fn sample_info_iter<'a>(trak: &'a TrackBox) -> SampleInfoIterator<'a> {
    let mdhd = trak.media().media_header();
    let stbl = trak.media().media_info().sample_table();
    let media_timescale = mdhd.timescale;
    let comp_time_shift_ = trak.composition_time_shift().unwrap_or(0) as i32;
    SampleInfoIterator {
        stsz_iter: stbl.sample_size().iter(),
        stts_iter: stbl.time_to_sample().iter(),
        stsc_iter: stbl.sample_to_chunk().iter(),
        ctts_iter: stbl.composition_time_to_sample().map(|ctts| ctts.iter()),
        stss_iter: stbl.sync_samples().map(|stss| stss.iter()),
        chunk_offset: stbl.chunk_offset_table(),
        media_timescale,
        comp_time_shift_,
        comp_time_shift: 0,
        fpos: 0,
        cur_sample: 1,
        cur_chunk: 1,
        pending: None,
    }
}
pub fn sample_info_iter < ' a > ( trak : & ' a TrackBox ) -> SampleInfoIterator < ' a > { let mdhd = trak . media ( ) . media_header ( ) ; let stbl = trak . media ( ) . media_info ( ) . sample_table ( ) ; let media_timescale = mdhd . timescale ; let comp_time_shift_ = trak . composition_time_shift ( ) . unwrap_or ( 0 ) as i32 ; SampleInfoIterator { stsz_iter : stbl . sample_size ( ) . iter ( ) , stts_iter : stbl . time_to_sample ( ) . iter ( ) , stsc_iter : stbl . sample_to_chunk ( ) . iter ( ) , ctts_iter : stbl . composition_time_to_sample ( ) . map ( | ctts | ctts . iter ( ) ) , stss_iter : stbl . sync_samples ( ) . map ( | stss | stss . iter ( ) ) , chunk_offset : stbl . chunk_offset_table ( ) , media_timescale , comp_time_shift_ , comp_time_shift : 0 , fpos : 0 , cur_sample : 1 , cur_chunk : 1 , pending : None , } }
Return an iterator over the SampleTableBox of this track.
Return an iterator over the SampleTableBox of this track .
trak
&'a TrackBox
trak
&'a TrackBox