use std::fmt::Debug;
use anyhow::Result;
use ezk::Frame;
use ezk_audio::RawAudio;
use futures::future::BoxFuture;
use serde::Deserialize;
#[cfg(feature = "gstreamer")]
mod rtmp;
#[cfg(feature = "gstreamer")]
mod system;
#[cfg(feature = "gstreamer")]
mod webm;
#[cfg(feature = "gstreamer")]
pub use rtmp::*;
#[cfg(feature = "gstreamer")]
pub use system::*;
#[cfg(feature = "gstreamer")]
pub use webm::*;
#[derive(Debug, Clone, Deserialize)]
pub enum EncoderType {
CPU,
VAAPI,
}
#[allow(clippy::missing_errors_doc)]
pub trait Sink: Send + Debug {
fn on_audio_frame(&mut self, frame: Frame<RawAudio>) -> BoxFuture<'_, Result<()>>;
fn on_video_frame(&mut self, buffer: &[u8]) -> Result<()>;
}