use std::ffi::CStr;
use crate::sys::codec_util_decode_frame_to_jpeg;
use crate::vec::CVecView;
use anyhow::Result;
pub fn decode_frame_to_jpeg(data: &[u8], vcodec_type: u32) -> Result<CVecView<u8>> {
let mut err_buf = vec![0; 128];
let ptr = unsafe {
codec_util_decode_frame_to_jpeg(
data.as_ptr().cast(),
data.len() as _,
vcodec_type as _,
err_buf.as_mut_ptr().cast(),
err_buf.len() as _,
)
};
if ptr.is_null() {
let err_msg = CStr::from_bytes_until_nul(&err_buf)?.to_str()?;
anyhow::bail!("decode_frame_to_jpeg fail, error: {}", err_msg)
}
Ok(CVecView::from(ptr))
}