let size = self.src.read_u16le()? as usize;
validate!(size > 8);
let stream = strmgr.get_stream(0).unwrap();
- let (tb_num, tb_den) = stream.get_timebase();
- let ts = NATimeInfo::new(Some(self.vpts), None, None, tb_num, tb_den);
+ let ts = stream.make_ts(Some(self.vpts), None, None);
let kframe = self.vpts == 0;
self.cframe += 1;
let pkt = self.src.read_packet(stream, ts, kframe, size - 2)?;
let size = self.src.read_u32le()? as usize;
validate!(size > 6);
let stream = strmgr.get_stream(0).unwrap();
- let (tb_num, tb_den) = stream.get_timebase();
- let ts = NATimeInfo::new(Some(self.vpts), None, None, tb_num, tb_den);
+ let ts = stream.make_ts(Some(self.vpts), None, None);
let kframe = self.vpts == 0;
self.cframe += 1;
let pkt = self.src.read_packet(stream, ts, kframe, size - 4)?;
validate!(&tag == b"SHDR");
let hdr_size = self.src.read_u32be()? as usize;
validate!(hdr_size >= 8);
- let snd_size = self.src.read_u32le()?;
+ let duration = self.src.read_u32le()? as u64;
let srate = self.src.read_u16le()? as u32;
let flags = self.src.read_u16le()?;
let bits = flags as u8;
self.ablock = (bits as usize) * (channels as usize);
self.src.read_skip(hdr_size - 8)?;
- let duration = u64::from(snd_size) / u64::from(channels) * 8 / u64::from(bits);
-
let fmt = match bits {
8 => SND_U8_FORMAT,
16 => SND_S16_FORMAT,
let cur_size = self.size.min(1024 * (self.ablock as u32));
let stream = strmgr.get_stream(0).unwrap();
- 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 pkt = self.src.read_packet(stream, ts, true, cur_size as usize)?;
self.size -= cur_size;
std::mem::swap(&mut buf, &mut self.abuf);
if let Some(stream) = strmgr.get_stream(1) {
- let (tb_num, tb_den) = stream.get_timebase();
- let ts = NATimeInfo::new(Some(self.apts), None, None, tb_num, tb_den);
+ let ts = stream.make_ts(Some(self.apts), None, None);
self.apts += (buf.len() / self.ablock) as u64;
return Ok(NAPacket::new(stream, ts, true, buf));
}