+ fn get_packet(&mut self) -> Option<(Vec<u8>, u32, bool)> {
+ if let Some((pkt, first)) = self.interleave.get_packet() {
+ let time_add = if self.last_time > self.first_time && self.size_in > 0 {
+ let size = pkt.len();
+ let time_add = (self.size_out * ((self.last_time - self.first_time) as usize) / self.size_in) as u32;
+ self.size_out += size / self.interleave.get_frame_size();
+ time_add
+ } else {
+ 0
+ };
+ Some((pkt, self.first_time + time_add, first))
+ } else {
+ None
+ }
+ }