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