let (tb_num, tb_den) = str.get_timebase();
let ts = NATimeInfo::new(Some(self.apos), None, None, tb_num, tb_den);
let apkt = self.src.read_packet(str, ts, false, asize)?;
let (tb_num, tb_den) = str.get_timebase();
let ts = NATimeInfo::new(Some(self.apos), None, None, tb_num, tb_den);
let apkt = self.src.read_packet(str, ts, false, asize)?;
- let mut buf: Vec<u8> = Vec::with_capacity(size - asize + 1);
- buf.resize(size - asize + 1, 0);
+ if size == asize {
+ if !self.pkt_buf.is_empty() {
+ return Ok(self.pkt_buf.pop().unwrap());
+ } else {
+ continue;
+ }
+ }
+ let mut buf: Vec<u8> = vec![0; size - asize + 1];