X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-game%2Fsrc%2Fdemuxers%2Ffst.rs;h=f71601e95cd5a39795945455dff7a24656dc94b9;hb=817e487223b28379176a533f09485c27a68443f8;hp=b6cc0666b90a3030518c3db66fe0b1fd6fb38c3c;hpb=8d91d85f878bac4d415d313cebe450865a520f35;p=nihav.git diff --git a/nihav-game/src/demuxers/fst.rs b/nihav-game/src/demuxers/fst.rs index b6cc066..f71601e 100644 --- a/nihav-game/src/demuxers/fst.rs +++ b/nihav-game/src/demuxers/fst.rs @@ -72,10 +72,9 @@ impl<'a> DemuxCore<'a> for FutureVisionVideoDemuxer<'a> { self.cur_frame += 1; } - let str = strmgr.get_stream(id).unwrap(); - let (tb_num, tb_den) = str.get_timebase(); - let ts = NATimeInfo::new(Some(pts), None, None, tb_num, tb_den); - self.src.read_packet(str, ts, true, size) + let stream = strmgr.get_stream(id).unwrap(); + let ts = stream.make_ts(Some(pts), None, None); + self.src.read_packet(stream, ts, true, size) } fn seek(&mut self, _time: NATimePoint, _seek_index: &SeekIndex) -> DemuxerResult<()> { @@ -147,10 +146,9 @@ impl<'a> DemuxCore<'a> for FutureVisionAudioDemuxer<'a> { let size = (self.end - self.src.tell()).min(0x2000) as usize; let pts = (self.src.tell() - 14) * 2; - let str = strmgr.get_stream(self.a_id).unwrap(); - let (tb_num, tb_den) = str.get_timebase(); - let ts = NATimeInfo::new(Some(pts), None, None, tb_num, tb_den); - self.src.read_packet(str, ts, true, size) + let stream = strmgr.get_stream(self.a_id).unwrap(); + let ts = stream.make_ts(Some(pts), None, None); + self.src.read_packet(stream, ts, true, size) } fn seek(&mut self, _time: NATimePoint, _seek_index: &SeekIndex) -> DemuxerResult<()> { @@ -188,6 +186,7 @@ mod test { use super::*; use std::fs::File; + // samples from the Harvester game #[test] fn test_fst_demux() { let mut file = File::open("assets/Game/c007.fst").unwrap();