]> git.nihav.org Git - nihav-player.git/commitdiff
hwdec-vaapi: copy just as many lines as destination plane wants
authorKostya Shishkov <kostya.shiskov@gmail.com>
Wed, 16 Jul 2025 03:58:59 +0000 (05:58 +0200)
committerKostya Shishkov <kostya.shiskov@gmail.com>
Wed, 16 Jul 2025 03:58:59 +0000 (05:58 +0200)
hwdec-vaapi/src/lib.rs

index 9dca7b17b69407b2b01d3d3fa2331647568b3dce..8bcfcbd2a2deebd4dbd80c22e38721b1efa78410 100644 (file)
@@ -441,7 +441,7 @@ fn fill_frame(ifmt: VAImageFormat, pic: &Picture<PictureSync>, frm: &mut NABuffe
             validate!(iimg.width  == (((frm.width[0]  + 15) & !15) as u16));
             validate!(iimg.height == (((frm.height[0] + 15) & !15) as u16));
 
-            copy_luma(&mut frm.data[frm.offset[0]..], frm.stride[0], &imgdata[iimg.offsets[0] as usize..], iimg.pitches[0] as usize, (frm.width[0] + 15) & !15, (frm.height[0] + 15) & !15);
+            copy_luma(&mut frm.data[frm.offset[0]..], frm.stride[0], &imgdata[iimg.offsets[0] as usize..], iimg.pitches[0] as usize, (frm.width[0] + 15) & !15, frm.height[0]);
 
             deint_chroma(frm, &imgdata[iimg.offsets[1] as usize..], iimg.pitches[1] as usize);
         },
@@ -450,9 +450,9 @@ fn fill_frame(ifmt: VAImageFormat, pic: &Picture<PictureSync>, frm: &mut NABuffe
             validate!(iimg.width  == (((frm.width[0]  + 15) & !15) as u16));
             validate!(iimg.height == (((frm.height[0] + 15) & !15) as u16));
 
-            copy_luma(&mut frm.data[frm.offset[0]..], frm.stride[0], &imgdata[iimg.offsets[0] as usize..], iimg.pitches[0] as usize, (frm.width[0] + 15) & !15, (frm.height[0] + 15) & !15);
-            copy_luma(&mut frm.data[frm.offset[2]..], frm.stride[2], &imgdata[iimg.offsets[1] as usize..], iimg.pitches[1] as usize, (frm.width[1] + 15) & !15, (frm.height[1] + 15) & !15);
-            copy_luma(&mut frm.data[frm.offset[1]..], frm.stride[1], &imgdata[iimg.offsets[2] as usize..], iimg.pitches[2] as usize, (frm.width[2] + 15) & !15, (frm.height[2] + 15) & !15);
+            copy_luma(&mut frm.data[frm.offset[0]..], frm.stride[0], &imgdata[iimg.offsets[0] as usize..], iimg.pitches[0] as usize, (frm.width[0] + 15) & !15, frm.height[0]);
+            copy_luma(&mut frm.data[frm.offset[2]..], frm.stride[2], &imgdata[iimg.offsets[1] as usize..], iimg.pitches[1] as usize, (frm.width[1] + 15) & !15, frm.height[1]);
+            copy_luma(&mut frm.data[frm.offset[1]..], frm.stride[1], &imgdata[iimg.offsets[2] as usize..], iimg.pitches[2] as usize, (frm.width[2] + 15) & !15, frm.height[2]);
         },
         _ => unimplemented!(),
     };