use ffmpeg_next::util::log::Level;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum FfmpegLogLevel {
Quiet,
Panic,
Fatal,
Error,
Warning,
Info,
Verbose,
Debug,
Trace,
}
impl FfmpegLogLevel {
fn to_ffmpeg_level(self) -> Level {
match self {
FfmpegLogLevel::Quiet => Level::Quiet,
FfmpegLogLevel::Panic => Level::Panic,
FfmpegLogLevel::Fatal => Level::Fatal,
FfmpegLogLevel::Error => Level::Error,
FfmpegLogLevel::Warning => Level::Warning,
FfmpegLogLevel::Info => Level::Info,
FfmpegLogLevel::Verbose => Level::Verbose,
FfmpegLogLevel::Debug => Level::Debug,
FfmpegLogLevel::Trace => Level::Trace,
}
}
fn from_ffmpeg_level(level: Level) -> Self {
match level {
Level::Quiet => FfmpegLogLevel::Quiet,
Level::Panic => FfmpegLogLevel::Panic,
Level::Fatal => FfmpegLogLevel::Fatal,
Level::Error => FfmpegLogLevel::Error,
Level::Warning => FfmpegLogLevel::Warning,
Level::Info => FfmpegLogLevel::Info,
Level::Verbose => FfmpegLogLevel::Verbose,
Level::Debug => FfmpegLogLevel::Debug,
Level::Trace => FfmpegLogLevel::Trace,
}
}
}
pub fn set_ffmpeg_log_level(level: FfmpegLogLevel) {
ffmpeg_next::util::log::set_level(level.to_ffmpeg_level());
}
pub fn get_ffmpeg_log_level() -> Option<FfmpegLogLevel> {
ffmpeg_next::util::log::get_level()
.ok()
.map(FfmpegLogLevel::from_ffmpeg_level)
}