let bsize = iinfo.block_size as usize;
let ppos = self.sub_packet;
for sb in 0..halffact {
- let mut dst = &mut self.buf[sb * 2 * fsize + ppos * bsize..][..bsize];
- src.read_buf(&mut dst)?;
+ let dst = &mut self.buf[sb * 2 * fsize + ppos * bsize..][..bsize];
+ src.read_buf(dst)?;
}
self.sub_packet += 1;
if self.sub_packet == factor {
for sb in 0..factor2 {
let sb_pos = factor * sb + ((factor + 1) >> 1) * (ppos & 1) + (ppos >> 1);
- let mut dst = &mut self.buf[bsize * sb_pos..][..bsize];
- src.read_buf(&mut dst)?;
+ let dst = &mut self.buf[bsize * sb_pos..][..bsize];
+ src.read_buf(dst)?;
}
},
Deinterleaver::Sipro => {
let fsize = iinfo.frame_size as usize;
let ppos = self.sub_packet;
- let mut dst = &mut self.buf[fsize * ppos..][..fsize];
- src.read_buf(&mut dst)?;
+ let dst = &mut self.buf[fsize * ppos..][..fsize];
+ src.read_buf(dst)?;
},
Deinterleaver::VBR => {
validate!(payload_size >= 5);
//todo skip unwanted packet
let keyframe = (flags & KEYFRAME_FLAG) != 0;
- let ret = RMDemuxCommon::parse_packet_payload(&mut self.src, &mut self.str_data.streams[str_id], stream, &mut self.slice_buf, &mut self.queued_pkts, keyframe, ts, payload_size);
+ let ret = RMDemuxCommon::parse_packet_payload(self.src, &mut self.str_data.streams[str_id], stream, &mut self.slice_buf, &mut self.queued_pkts, keyframe, ts, payload_size);
if let Err(DemuxerError::TryAgain) = ret {
continue;
} else {
let ver = self.src.read_u16be()?;
let ainfo = match ver {
3 => {
- parse_aformat3(&mut self.src)?
+ parse_aformat3(self.src)?
},
4 => {
- parse_aformat4(&mut self.src)?
+ parse_aformat4(self.src)?
},
5 => {
- parse_aformat5(&mut self.src)?
+ parse_aformat5(self.src)?
},
_ => {
println!("unknown version {}", ver);
let stream = streamres.unwrap();
if let Some(ref mut astr) = self.stream {
loop {
- let ret = astr.read_apackets(&mut self.queued_pkts, &mut self.src, stream.clone(), 0, false, self.blk_size);
+ let ret = astr.read_apackets(&mut self.queued_pkts, self.src, stream.clone(), 0, false, self.blk_size);
if let Err(DemuxerError::TryAgain) = ret {
continue;
}
}
}
fn is_data_start(&self) -> bool {
- match *self {
- IVRRecord::DataStart => true,
- _ => false,
- }
+ matches!(*self, IVRRecord::DataStart)
}
}
let magic = self.src.peek_u32be()?;
if magic == mktag!(b".REC") {
let mut rec = RecordDemuxer::new(0, 0);
- rec.parse_header(&mut self.src, strmgr, &mut self.str_data)?;
+ rec.parse_header(self.src, strmgr, &mut self.str_data)?;
self.recs.push(rec);
} else if magic == mktag!(b".R1M") {
println!("R1M kind");
self.src.read_skip(4)?; // magic
self.src.read_skip(3)?; // always 0, 1, 1 ?
- let _name = IVRRecord::read_string(&mut self.src)?;
+ let _name = IVRRecord::read_string(self.src)?;
self.src.read_skip(1)?; // always 0?
let len1 = self.src.read_u32be()? as u64;
let off1 = self.src.read_u64be()?;
if len > 0x20 {
let num_streams = self.str_data.streams.len() as u32;
let mut rec = RecordDemuxer::new(pos + 12, num_streams);
- rec.parse_header(&mut self.src, strmgr, &mut self.str_data)?;
+ rec.parse_header(self.src, strmgr, &mut self.str_data)?;
self.recs.push(rec);
}
self.src.seek(SeekFrom::Start(pos + len))?;
}
loop {
if self.cur_rec >= self.recs.len() { return Err(DemuxerError::EOF); }
- let res = self.recs[self.cur_rec].get_packet(&mut self.src, &mut self.str_data, strmgr, &mut self.queued_pkts, &mut self.slice_buf);
+ let res = self.recs[self.cur_rec].get_packet(self.src, &mut self.str_data, strmgr, &mut self.queued_pkts, &mut self.slice_buf);
if let Err(DemuxerError::EOF) = res {
self.cur_rec += 1;
} else {