Copies frame data from a linear/contiguous buffer.
(
&mut self,
buffer: &windows::Win32::Media::MediaFoundation::IMFMediaBuffer,
)
| 426 | |
| 427 | /// Copies frame data from a linear/contiguous buffer. |
| 428 | unsafe fn copy_from_linear_buffer( |
| 429 | &mut self, |
| 430 | buffer: &windows::Win32::Media::MediaFoundation::IMFMediaBuffer, |
| 431 | ) -> Result<()> { |
| 432 | let (mut ptr, mut len) = (std::ptr::null_mut(), 0); |
| 433 | buffer |
| 434 | .Lock(&mut ptr, None, Some(&mut len)) |
| 435 | .map_err(win_err)?; |
| 436 | |
| 437 | let copy_len = (len as usize).min(self.linear_buffer.len()); |
| 438 | std::ptr::copy_nonoverlapping(ptr, self.linear_buffer.as_mut_ptr(), copy_len); |
| 439 | |
| 440 | let _ = buffer.Unlock(); |
| 441 | Ok(()) |
| 442 | } |
| 443 | |
| 444 | /// Returns a clone of the source reader for control interfaces. |
| 445 | pub fn get_reader(&self) -> SendableSourceReader { |
no outgoing calls
no test coverage detected