@@ -621,27 +621,31 @@ pub unsafe extern "C" fn mp4parse_get_track_info(
621621 let track = & context. tracks [ track_index] ;
622622
623623 if let ( Some ( track_timescale) , Some ( context_timescale) ) = ( track. timescale , context. timescale ) {
624- let media_time: CheckedInteger < _ > = match track. media_time . map_or ( Some ( 0 ) , |media_time| {
625- mp4parse:: unstable:: track_time_to_us ( media_time, track_timescale)
626- } ) {
627- Some ( time) => time. into ( ) ,
624+ let media_time: CheckedInteger < u64 > = match track
625+ . media_time
626+ . map_or ( Some ( mp4parse:: unstable:: Microseconds ( 0 ) ) , |media_time| {
627+ mp4parse:: unstable:: track_time_to_us ( media_time, track_timescale)
628+ } ) {
629+ Some ( time) => time. 0 . into ( ) ,
628630 None => return Mp4parseStatus :: Invalid ,
629631 } ;
630- let empty_duration: CheckedInteger < _ > =
631- match track. empty_duration . map_or ( Some ( 0 ) , |empty_duration| {
632+ let empty_duration: CheckedInteger < u64 > = match track. empty_duration . map_or (
633+ Some ( mp4parse:: unstable:: Microseconds ( 0 ) ) ,
634+ |empty_duration| {
632635 mp4parse:: unstable:: media_time_to_us ( empty_duration, context_timescale)
633- } ) {
634- Some ( time) => time. into ( ) ,
635- None => return Mp4parseStatus :: Invalid ,
636- } ;
636+ } ,
637+ ) {
638+ Some ( time) => time. 0 . into ( ) ,
639+ None => return Mp4parseStatus :: Invalid ,
640+ } ;
637641 info. media_time = match media_time - empty_duration {
638642 Some ( difference) => difference,
639643 None => return Mp4parseStatus :: Invalid ,
640644 } ;
641645
642646 if let Some ( track_duration) = track. duration {
643647 match mp4parse:: unstable:: track_time_to_us ( track_duration, track_timescale) {
644- Some ( duration) => info. duration = duration,
648+ Some ( duration) => info. duration = duration. 0 ,
645649 None => return Mp4parseStatus :: Invalid ,
646650 }
647651 } else {
@@ -1111,15 +1115,15 @@ fn get_indice_table(
11111115
11121116 let media_time = match ( & track. media_time , & track. timescale ) {
11131117 ( & Some ( t) , & Some ( s) ) => mp4parse:: unstable:: track_time_to_us ( t, s)
1114- . and_then ( |v| i64:: try_from ( v) . ok ( ) )
1118+ . and_then ( |v| i64:: try_from ( v. 0 ) . ok ( ) )
11151119 . map ( Into :: into) ,
11161120 _ => None ,
11171121 } ;
11181122
11191123 let empty_duration: Option < CheckedInteger < _ > > =
11201124 match ( & track. empty_duration , & context. timescale ) {
11211125 ( & Some ( e) , & Some ( s) ) => mp4parse:: unstable:: media_time_to_us ( e, s)
1122- . and_then ( |v| i64:: try_from ( v) . ok ( ) )
1126+ . and_then ( |v| i64:: try_from ( v. 0 ) . ok ( ) )
11231127 . map ( Into :: into) ,
11241128 _ => None ,
11251129 } ;
@@ -1176,7 +1180,7 @@ pub unsafe extern "C" fn mp4parse_get_fragment_info(
11761180
11771181 if let ( Some ( time) , Some ( scale) ) = ( duration, context. timescale ) {
11781182 info. fragment_duration = match mp4parse:: unstable:: media_time_to_us ( time, scale) {
1179- Some ( time_us) => time_us as u64 ,
1183+ Some ( time_us) => time_us. 0 as u64 ,
11801184 None => return Mp4parseStatus :: Invalid ,
11811185 }
11821186 }
0 commit comments