#![forbid(unsafe_code)]
use crate::formats::{PixelFormat, SampleFormat};
use crate::gpu::GpuBufferHandle;
use bytes::Bytes;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct VideoFrame {
pub pts: i64,
pub duration: u64,
pub width: u32,
pub height: u32,
pub format: PixelFormat,
pub storage: VideoFrameStorage,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub enum VideoFrameStorage {
Cpu {
data: Bytes,
},
Gpu(GpuBufferHandle),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct AudioFrame {
pub pts: i64,
pub duration: u64,
pub sample_rate: u32,
pub channels: u16,
pub format: SampleFormat,
pub data: Bytes,
}