#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case)]
#![allow(clippy::all, clippy::pedantic)]
include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
#[cfg(feature = "libav")]
pub mod libav {
use super::{pl_frame, pl_gpu, pl_tex};
use std::os::raw::c_void;
#[repr(C)]
#[derive(Debug, Clone, Copy)]
pub struct pl_avframe_params {
pub frame: *const c_void,
pub tex: *mut pl_tex,
pub map_dovi: bool,
pub map_dovi_force: bool,
}
unsafe extern "C" {
pub fn pl_map_avframe_ex(
gpu: pl_gpu,
out_frame: *mut pl_frame,
params: *const pl_avframe_params,
) -> bool;
pub fn pl_unmap_avframe(gpu: pl_gpu, frame: *mut pl_frame);
pub fn pl_frame_from_avframe(out_frame: *mut pl_frame, frame: *const c_void);
pub fn pl_get_mapped_avframe(frame: *const pl_frame) -> *mut c_void;
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn api_version_is_new_enough() {
assert!(PL_API_VER >= 365, "PL_API_VER = {PL_API_VER}");
}
#[test]
fn log_create_destroy() {
unsafe {
let mut log = pl_log_create_375(PL_API_VER as i32, std::ptr::null());
assert!(!log.is_null());
pl_log_destroy(&raw mut log);
assert!(log.is_null());
}
}
}