give up
parent
1a1d979ebd
commit
96369424b3
|
|
@ -130,19 +130,23 @@ fn _inspect(file: &String) -> Result<Inspection, String> {
|
|||
let mut child = cmd.spawn().expect("failed to inspect with ffmpeg");
|
||||
let mut bind = vec![0; 10];
|
||||
let mut buff: &mut [u8] = bind.as_mut();
|
||||
let mut _stdout = child.stdout.take().unwrap();
|
||||
let mut _stderr = child.stderr.take().unwrap();
|
||||
let mut stdout: Vec<u8> = vec![];
|
||||
let mut stderr: Vec<u8> = vec![];
|
||||
let mut delay = 100;
|
||||
while let Ok(None) = child.try_wait() {
|
||||
eprintln!("ffmpeg still inspecting...");
|
||||
std::thread::sleep(std::time::Duration::from_millis(delay));
|
||||
delay = if 2 * delay < 5000 { delay * 2 } else { 5000 };
|
||||
match child.stderr.as_mut().unwrap().read(buff.as_mut()) {
|
||||
Ok(n) => { buff[..n].iter().for_each(|c| stderr.push(*c)); },
|
||||
delay = (2 * delay).clamp(0, 5000);
|
||||
eprintln!("ffmpeg stdout...");
|
||||
match _stdout.read(buff.as_mut()) {
|
||||
Ok(n) => { buff[..n].iter().for_each(|c| stdout.push(*c)); },
|
||||
Err(_) => {},
|
||||
};
|
||||
match child.stdout.as_mut().unwrap().read(buff.as_mut()) {
|
||||
Ok(n) => { buff.iter().for_each(|c| stdout.push(*c)); },
|
||||
eprintln!("ffmpeg stderr...");
|
||||
match _stderr.read(buff.as_mut()) {
|
||||
Ok(n) => { buff[..n].iter().for_each(|c| stderr.push(*c)); },
|
||||
Err(_) => {},
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue