X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-game%2Fsrc%2Fdemuxers%2Fsmush.rs;fp=nihav-game%2Fsrc%2Fdemuxers%2Fsmush.rs;h=6132d9ce37756abf9b23da34a7161e917a567df2;hp=64761848608674dd3d03ba40d5be1fc2b9d5cc70;hb=8e14efb001fac3fecb0cb56df8705d23fa2231a8;hpb=3867d436b51515207e0035e2c6cb127de3935c57 diff --git a/nihav-game/src/demuxers/smush.rs b/nihav-game/src/demuxers/smush.rs index 6476184..6132d9c 100644 --- a/nihav-game/src/demuxers/smush.rs +++ b/nihav-game/src/demuxers/smush.rs @@ -288,8 +288,7 @@ impl<'a> SmushDemuxer<'a> { let mut buf = Vec::new(); std::mem::swap(&mut self.chunks, &mut buf); let stream = strmgr.get_stream(0).unwrap(); - let (tb_num, tb_den) = stream.get_timebase(); - let ts = NATimeInfo::new(Some(self.cur_frame as u64 - 1), None, None, tb_num, tb_den); + let ts = stream.make_ts(Some(self.cur_frame as u64 - 1), None, None); return Ok(NAPacket::new(stream, ts, false, buf)); } if self.cur_frame == self.nframes { @@ -320,8 +319,7 @@ impl<'a> SmushDemuxer<'a> { let flags = self.src.read_u16le()?; if (opcode == 8) && (flags == 0x2E) { if let Some(stream) = strmgr.get_stream(1) { - let (tb_num, tb_den) = stream.get_timebase(); - let ts = NATimeInfo::new(None, None, None, tb_num, tb_den); + let ts = stream.make_ts(None, None, None); let mut buf = vec![0; size as usize]; write_u16le(&mut buf[0..2], opcode).unwrap(); @@ -342,10 +340,8 @@ impl<'a> SmushDemuxer<'a> { if size > 0x30 { self.src.read_skip(0x30)?; if let Some(stream) = strmgr.get_stream(1) { - let (tb_num, tb_den) = stream.get_timebase(); - let audio_size = size - 0x30; - let ts = NATimeInfo::new(Some(self.asize), None, None, tb_num, tb_den); + let ts = stream.make_ts(Some(self.asize), None, None); let pkt = self.src.read_packet(stream, ts, true, audio_size as usize)?; self.asize += audio_size; if (self.src.tell() & 1) == 1 { @@ -379,8 +375,7 @@ impl<'a> SmushDemuxer<'a> { let mut buf = Vec::new(); std::mem::swap(&mut self.chunks, &mut buf); let stream = strmgr.get_stream(0).unwrap(); - let (tb_num, tb_den) = stream.get_timebase(); - let ts = NATimeInfo::new(Some(self.cur_frame as u64 - 1), None, None, tb_num, tb_den); + let ts = stream.make_ts(Some(self.cur_frame as u64 - 1), None, None); return Ok(NAPacket::new(stream, ts, self.keyframe, buf)); } if self.cur_frame == self.nframes { @@ -427,8 +422,7 @@ impl<'a> SmushDemuxer<'a> { } } - let (tb_num, tb_den) = stream.get_timebase(); - let mut ts = NATimeInfo::new(None, None, None, tb_num, tb_den); + let mut ts = stream.make_ts(None, None, None); if nsamples != 0 { ts.pts = Some(self.asize); self.asize += u64::from(nsamples); @@ -616,8 +610,7 @@ impl<'a> DemuxCore<'a> for MCMPDemuxer<'a> { self.src.read_buf(&mut buf[4..])?; let stream = strmgr.get_stream(0).unwrap(); - let (tb_num, tb_den) = stream.get_timebase(); - let ts = NATimeInfo::new(Some(self.pts[idx]), None, None, tb_num, tb_den); + let ts = stream.make_ts(Some(self.pts[idx]), None, None); self.cur_frame += 1;