Fix hanging of VMAF calculation (#386)

* Fix run_vmaf by removing Stdio::piped() when not needed

* Update dependencies
This commit is contained in:
redzic 2021-10-24 15:10:29 -05:00 committed by GitHub
parent 32cebb8808
commit 2f50335b6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 41 deletions

56
Cargo.lock generated
View file

@ -222,9 +222,9 @@ dependencies = [
[[package]]
name = "backtrace"
version = "0.3.61"
version = "0.3.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01"
checksum = "091bcdf2da9950f96aa522681ce805e6857f6ca8df73833d35736ab2dc78e152"
dependencies = [
"addr2line",
"cc",
@ -281,15 +281,15 @@ dependencies = [
[[package]]
name = "bumpalo"
version = "3.7.1"
version = "3.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9df67f7bf9ef8498769f994239c45613ef0c5899415fb58e9add412d2c1a538"
checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
[[package]]
name = "byte-slice-cast"
version = "1.1.0"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca0796d76a983651b4a0ddda16203032759f2fd9103d9181f7c65c06ee8872e6"
checksum = "1d30c751592b77c499e7bce34d99d67c2c11bdc0574e9a488ddade14150a4698"
[[package]]
name = "bytes"
@ -377,13 +377,13 @@ dependencies = [
[[package]]
name = "console"
version = "0.14.1"
version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45"
checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31"
dependencies = [
"encode_unicode",
"lazy_static",
"libc",
"once_cell",
"terminal_size",
"winapi",
]
@ -534,9 +534,9 @@ dependencies = [
[[package]]
name = "flexi_logger"
version = "0.19.4"
version = "0.19.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35627d78fcea84d52181369fe48fcfce56a2a18e29443dba23d4c24b650fb107"
checksum = "eb300b5c59fc4894ea567328a30a3ee3c5a63fb59e17c34b2327ac230455eb79"
dependencies = [
"ansi_term 0.12.1",
"atty",
@ -679,9 +679,9 @@ dependencies = [
[[package]]
name = "libc"
version = "0.2.103"
version = "0.2.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"
checksum = "869d572136620d55835903746bcb5cdc54cb2851fd0aeec53220b4bb65ef3013"
[[package]]
name = "libfuzzer-sys"
@ -739,9 +739,9 @@ dependencies = [
[[package]]
name = "mio"
version = "0.7.13"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
dependencies = [
"libc",
"log",
@ -890,9 +890,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
[[package]]
name = "object"
version = "0.26.2"
version = "0.27.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39f37e50073ccad23b6d09bcb5b263f4e76d3bb6038e4a3c08e52162ffa8abc2"
checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9"
dependencies = [
"memchr",
]
@ -935,9 +935,9 @@ checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
[[package]]
name = "pkg-config"
version = "0.3.20"
version = "0.3.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb"
checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
[[package]]
name = "plotters"
@ -969,9 +969,9 @@ dependencies = [
[[package]]
name = "ppv-lite86"
version = "0.2.10"
version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
[[package]]
name = "proc-macro-error"
@ -1064,7 +1064,7 @@ dependencies = [
[[package]]
name = "rav1e"
version = "0.5.0-beta.2"
source = "git+https://github.com/xiph/rav1e#beb1839fcd0ef31e94a966e4ed47387712094704"
source = "git+https://github.com/xiph/rav1e#9099940c25a7f30f78ecec2439d0d5224dbb895c"
dependencies = [
"arbitrary",
"arg_enum_proc_macro",
@ -1319,9 +1319,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "structopt"
version = "0.3.23"
version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa"
checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c"
dependencies = [
"clap",
"lazy_static",
@ -1330,9 +1330,9 @@ dependencies = [
[[package]]
name = "structopt-derive"
version = "0.4.16"
version = "0.4.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba"
checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
dependencies = [
"heck",
"proc-macro-error",
@ -1559,7 +1559,7 @@ checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
[[package]]
name = "v_frame"
version = "0.2.4"
source = "git+https://github.com/xiph/rav1e#beb1839fcd0ef31e94a966e4ed47387712094704"
source = "git+https://github.com/xiph/rav1e#9099940c25a7f30f78ecec2439d0d5224dbb895c"
dependencies = [
"cfg-if 1.0.0",
"noop_proc_macro",
@ -1606,7 +1606,7 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "vergen"
version = "3.0.4"
source = "git+https://github.com/xiph/rav1e#beb1839fcd0ef31e94a966e4ed47387712094704"
source = "git+https://github.com/xiph/rav1e#9099940c25a7f30f78ecec2439d0d5224dbb895c"
dependencies = [
"bitflags",
"chrono",

View file

@ -238,21 +238,18 @@ pub fn run_vmaf(
let mut source_pipe = Command::new(cmd);
source_pipe.args(args);
source_pipe.stdout(Stdio::piped());
source_pipe.stderr(Stdio::piped());
source_pipe.stderr(Stdio::null());
source_pipe
} else {
unreachable!()
};
let handle = source_pipe
.stderr(Stdio::piped())
.spawn()
.unwrap_or_else(|e| {
panic!(
"Failed to execute source pipe: {}\ncommand: {:#?}",
e, source_pipe
)
});
let handle = source_pipe.spawn().unwrap_or_else(|e| {
panic!(
"Failed to execute source pipe: {}\nCommand: {:#?}",
e, source_pipe
)
});
let mut cmd = Command::new("ffmpeg");
cmd.args([
@ -278,11 +275,11 @@ pub fn run_vmaf(
cmd.arg(format!("{}{}{}", distorted, reference, vmaf));
cmd.args(["-f", "null", "-"]);
cmd.stderr(Stdio::piped());
cmd.stdout(Stdio::piped());
cmd.stdin(handle.stdout.unwrap());
cmd.stderr(Stdio::null());
cmd.stdout(Stdio::null());
let output = cmd
.stdin(handle.stdout.unwrap())
.output()
.unwrap_or_else(|e| panic!("Failed to execute vmaf pipe: {}\ncommand: {:#?}", e, cmd));