fix clippy warnings
[nihav.git] / nihav-commonfmt / src / codecs / rawvideo.rs
index fd1c0c3c65590acafc380f7eeddb431b00383ebb..13bd18729becfd96298147a7e558257787da185a 100644 (file)
@@ -57,11 +57,15 @@ impl NADecoder for RawDecoder {
                     }
                     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);