pub trait VideoFrameResolver: Send + Sync {
// Required methods
fn id(&self) -> &str;
fn metadata(&self) -> VideoMetadata;
fn frame(&self, frame: u32) -> Result<MediaFrame, MediaError>;
// Provided methods
fn enqueue_frame(&self, _frame: u32) -> Result<(), MediaError> { ... }
fn retain_frames(&self, _frames: &[u32]) { ... }
}