MCPcopy Create free account
hub / github.com/RustCV/RustCV / copy_from_2d_buffer

Method copy_from_2d_buffer

rustcv-backend-msmf/src/stream.rs:317–331  ·  view source on GitHub ↗

Copies frame data from a 2D buffer with stride handling.

(&mut self, buffer: &IMF2DBuffer2)

Source from the content-addressed store, hash-verified

315
316 /// Copies frame data from a 2D buffer with stride handling.
317 unsafe fn copy_from_2d_buffer(&mut self, buffer: &IMF2DBuffer2) -> Result<()> {
318 let (mut scanline0, mut pitch) = (std::ptr::null_mut(), 0i32);
319 buffer.Lock2D(&mut scanline0, &mut pitch).map_err(win_err)?;
320
321 let src_pitch = pitch.unsigned_abs() as usize;
322 let row_bytes = self.line_width_bytes;
323
324 let result = match BufferLayout::from_format(self.format) {
325 BufferLayout::Planar => self.copy_planar_data(scanline0, pitch, src_pitch, row_bytes),
326 BufferLayout::Packed => self.copy_packed_data(scanline0, pitch, src_pitch, row_bytes),
327 };
328
329 let _ = buffer.Unlock2D();
330 result
331 }
332
333 /// Copies planar format data (NV12, YV12).
334 unsafe fn copy_planar_data(

Callers 1

Calls 2

copy_planar_dataMethod · 0.80
copy_packed_dataMethod · 0.80

Tested by

no test coverage detected