audiofx: inconsistent test failure for "limiter_on_first_frame" in audioloudnorm
I've been packaging gst-plugins-rs for nixpkgs, but I've noticed a weird issue now on two different architectures (x86_64 and aarch64) under Linux when running tests for the audioloudnorm filter in the audiofx plugin. The limiter_on_first_frame
test sometimes fails (though interestingly never the limiter
test) with an assert failure from calculating the loudness as -27.202874515986995
instead of -24
.
I encountered this with both 0.10.5 and 0.10.6 with GStreamer 1.20.3 (I plan to update this in nixpkgs to 1.22 soon), and it only happens sometimes for a given machine (though tends to be fairly consistent in succeeding or failing for a given machine). I've been unable to replicate it on my local laptop (x86_64-linux) at all, but you can see the CI failure at https://logs.ofborg.org/logfile/nixos/nixpkgs.225143/e780960b-b5a3-4abf-aad9-adab9b8a28cf with a full build log. I've also had it occur with an aarch64-linux remote builder, but mysteriously that build has since succeeded in-between me trying to build 0.10.5 and 0.10.6.
I've copied the relevant snippet from that log below.
Would anyone have any idea what could be causing this, and can I gather more data to help determine the cause?
Since I've not seen anyone else report it, I imagine this may be an issue with some library in nixpkgs or even because the GStreamer version is a tad out of date, but I've really no clue where to start looking into why this occurs.
Thanks in advance!
Running tests/audioloudnorm.rs (build/target/x86_64-unknown-linux-gnu/debug/deps/audioloudnorm-ea5fc56ee8902e82)
running 12 tests
Fontconfig error: Cannot load default config file: No such file: (null)
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
test short_input ... ok
test very_quiet ... ok
test remaining_at_eos ... ok
test limiter ... ok
test limiter_on_first_frame ... FAILED
test very_very_quiet ... ok
test quiet ... ok
test silence ... ok
test below_threshold ... ok
test basic ... ok
test basic_white_noise ... ok
test basic_two_channels ... ok
failures:
---- limiter_on_first_frame stdout ----
thread 'limiter_on_first_frame' panicked at 'Loudness is -27.202874515986995 instead of -24', audio/audiofx/tests/audioloudnorm.rs:162:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
failures:
limiter_on_first_frame
test result: FAILED. 11 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s