pub trait Encoder {
type Session: EncoderSession;
// Required methods
fn query_capabilities(&self) -> Result<EncoderCapabilities, VideoError>;
fn start_session(
&mut self,
config: SessionConfig
) -> Result<Self::Session, VideoError>;
fn stop_session(&mut self, session: Self::Session) -> Result<(), VideoError>;
}