Fix ffmpeg beaking terminal echo

This commit is contained in:
Craig Drummond 2022-03-12 23:43:05 +00:00
parent caa77bd847
commit ef772ad30f

View File

@ -19,7 +19,7 @@ use std::time::Duration;
use std::sync::mpsc; use std::sync::mpsc;
use std::sync::mpsc::{Receiver, Sender}; use std::sync::mpsc::{Receiver, Sender};
use std::thread; use std::thread;
use subprocess::{Popen, PopenConfig}; use subprocess::{Exec, NullFile};
use tempdir::TempDir; use tempdir::TempDir;
use num_cpus; use num_cpus;
use crate::cue; use crate::cue;
@ -199,25 +199,21 @@ pub fn analyze_cue_streaming(tracks: Vec<cue::CueTrack>,) -> BlissResult<Receive
log::debug!("Extracting '{}'", track_path); log::debug!("Extracting '{}'", track_path);
if cue_track.duration<last_track_duration { if cue_track.duration<last_track_duration {
match Popen::create(&["ffmpeg", "-hide_banner", "-loglevel", "panic", "-i", &audio_path, "-b:a", "128k", match Exec::cmd("ffmpeg").arg("-i").arg(&audio_path).arg("-b:a").arg("128k")
"-ss", &cue_track.start.hhmmss(), "-t", &cue_track.duration.hhmmss(), &tmp_file.to_string_lossy()], PopenConfig::default()) { .arg("-ss").arg(&cue_track.start.hhmmss()).arg("-t").arg(&cue_track.duration.hhmmss())
Ok(mut proc) => { .arg(String::from(tmp_file.to_string_lossy()))
match proc.wait() { .stderr(NullFile)
.join() {
Ok(_) => { }, Ok(_) => { },
Err(_) => { } Err(e) => { log::error!("Failed to call ffmpeg. {}", e); }
}
},
Err(e) => { log::error!("Wait failed for ffmpeg. {}", e); }
} }
} else { } else {
match Popen::create(&["ffmpeg", "-hide_banner", "-loglevel", "panic", "-i", &audio_path, "-b:a", "128k", match Exec::cmd("ffmpeg").arg("-i").arg(&audio_path).arg("-b:a").arg("128k")
"-ss", &cue_track.start.hhmmss(), &tmp_file.to_string_lossy()], PopenConfig::default()) { .arg("-ss").arg(&cue_track.start.hhmmss())
Ok(mut proc) => { .arg(String::from(tmp_file.to_string_lossy()))
match proc.wait() { .stderr(NullFile)
.join() {
Ok(_) => { }, Ok(_) => { },
Err(e) => { log::error!("Wait failed for ffmpeg. {}", e); }
}
},
Err(e) => { log::error!("Failed to call ffmpeg. {}", e); } Err(e) => { log::error!("Failed to call ffmpeg. {}", e); }
} }
} }