diff --git a/src/ttmp_extractor.rs b/src/ttmp_extractor.rs index 4566782..3c44aca 100644 --- a/src/ttmp_extractor.rs +++ b/src/ttmp_extractor.rs @@ -52,8 +52,16 @@ impl TtmpExtractor { let mut data_file = TrackingReader::new(zip.by_name("TTMPD.mpd") .map_err(Error::MissingDataFile)?); + let mut last_offset = None; let mut buf = [0; 4096]; for mod_file in all_files { + // handle deduped ttmps + if Some(mod_file.file.mod_offset) == last_offset { + continue; + } + + last_offset = Some(mod_file.file.mod_offset); + let file = mod_file.file; data_file.read = 0;