}
validate!(off == src.len());
- NABufferType::Video(NAVideoBuffer::from_raw_parts(vinfo.clone(), src.clone(), offs, strides).into_ref())
+ NABufferType::Video(NAVideoBuffer::from_raw_parts(*vinfo, src, offs, strides).into_ref())
} else {
- let offs = vec![0; ncomp];
- let strides = vec![0; ncomp];
- NABufferType::VideoPacked(NAVideoBuffer::from_raw_parts(vinfo.clone(), src.clone(), offs, strides).into_ref())
+ let esize = vinfo.format.elem_size as usize;
+ let ychr = vinfo.format.get_chromaton(0).unwrap();
+ let ystep = if ychr.next_elem != 0 { ychr.next_elem as usize } else { esize };
+ let stride = (width * esize + ystep - 1) / ystep;
+ let offs = vec![0];
+ let strides = vec![stride];
+ NABufferType::VideoPacked(NAVideoBuffer::from_raw_parts(*vinfo, src, offs, strides).into_ref())
};
let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), buf);
generic_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
generic_register_all_decoders(&mut dec_reg);
+ // sample: self-created with avconv
test_decoding("yuv4mpeg", "rawvideo", "assets/Misc/test.y4m", None, &dmx_reg,
&dec_reg, ExpectedTestResult::MD5Frames(vec![
[0xd58326b0, 0xdbfc1dcc, 0x6d66a04c, 0x08a21bbb],