}
fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let src = pkt.get_buffer();
- validate!(src.len() > 0);
+ validate!(src.len() > 4);
- let mut br = BitReader::new(&src[0..], BitReaderMode::LE16MSB);
+ let mut br = BitReader::new(&src[4..], BitReaderMode::LE16MSB);
self.y_ncoeffs = [0; NCSTRIDE * (256 / 4 + 1)];
self.c_ncoeffs = [0; NCSTRIDE * (256 / 8 + 1)];
let vhdr = NAVideoInfo::new(width, height, false, YUV420_FORMAT);
let vci = NACodecTypeInfo::Video(vhdr);
- let edata = [fps as u8].to_vec();
+ let edata = vec![fps as u8, 0, 0, 0];
let vinfo = NACodecInfo::new("vxvideo", vci, Some(edata));
self.vid_id = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, fps, nframes as u64)).unwrap();
validate!(size > 2);
let _num_achunks = self.src.read_u16le()?;
let fsize = size - 2;
- let pkt = self.src.read_packet(stream, ts, false, fsize)?;
+ let mut buf = vec![0; fsize + 4];
+ write_u32le(&mut buf, (fsize * 8) as u32)?;
+ self.src.read_buf(&mut buf[4..])?;
+ let pkt = NAPacket::new(stream, ts, false, buf);
self.video_pos = self.src.tell();
self.vno += 1;
Ok(pkt)