use std::path::Path;
use std::process::Command;
use yog_formats::video::Video;
use super::{probe, size};
use crate::media::ffmpeg::{OGG_OUT, ffmpeg, run};
pub(super) fn picture(v: &Video, input: &Path) -> Result<(Command, (u32, u32)), String> {
let src = probe::probe(input)?;
let shown = size::shown(v, src.size);
let mut cmd = ffmpeg();
cmd.arg("-i")
.arg(input)
.args(["-an", "-vf", &size::filters(v, shown)]);
Ok((cmd, shown))
}
pub(super) fn sound(v: &Video, input: &Path) -> Result<Option<Vec<u8>>, String> {
if !v.sound || !probe::probe(input)?.sound {
return Ok(None);
}
let mut cmd = ffmpeg();
cmd.arg("-i").arg(input).arg("-vn").args(OGG_OUT);
run(&mut cmd, "convert the video's sound to Ogg Vorbis").map(Some)
}