+ let ftype = self.dec.get_frame_type();
+ let pts = ibr.pts;
+ if ftype != FrameType::B {
+ self.last_ts = self.next_ts;
+ self.next_ts = pts;
+ if self.last_ts > self.next_ts {
+ self.base_ts += 1 << 16;
+ }
+ }
+ let ts_diff = self.next_ts.wrapping_sub(pts);
+ let ts = self.base_ts + (self.next_ts as u64) - (ts_diff as u64);