+ 0x53 | 0x55 => {
+ let size = self.src.peek_u32le()? as usize;
+ let mut data = Vec::new();
+ std::mem::swap(&mut self.tdata, &mut data);
+ data.push(ftype);
+ let head_size = data.len();
+ data.resize(head_size + size + 0x2F, 0);
+ self.src.read_buf(&mut data[head_size..])?;
+ if let Some(stream) = strmgr.get_stream_by_id(0) {
+ let ts = stream.make_ts(Some(self.vpts), None, None);
+ self.vpts += 1;
+ return Ok(NAPacket::new(stream, ts, ftype == 0x55, data));
+ } else {
+ return Err(DemuxerError::MemoryError);
+ }
+ },
+ 0x54 => {
+ validate!(self.is_ci2);
+ let size = self.src.peek_u32le()? as usize;
+ validate!(self.tdata.is_empty());
+ self.tdata.resize(size + 9, 0);
+ self.tdata[0] = 0x54;
+ self.src.read_buf(&mut self.tdata[1..])?;
+ },