use core::ffi::c_void;
use core::ptr;
use apple_cf::cv::CVPixelBuffer;
use crate::error::VTError;
use crate::ffi;
pub fn create_cg_image_from_pixel_buffer(
pixel_buffer: &CVPixelBuffer,
) -> Result<*mut c_void, VTError> {
let mut img: *mut c_void = ptr::null_mut();
let s = unsafe {
ffi::VTCreateCGImageFromCVPixelBuffer(
pixel_buffer.as_ptr().cast::<c_void>(),
ptr::null(),
&mut img,
)
};
if s != 0 || img.is_null() {
return Err(VTError::EncodeFailed(s));
}
Ok(img)
}
pub fn register_professional_workflow_decoders() {
unsafe { ffi::VTRegisterProfessionalVideoWorkflowVideoDecoders() };
}
pub fn register_professional_workflow_encoders() {
unsafe { ffi::VTRegisterProfessionalVideoWorkflowVideoEncoders() };
}