Dune Libvpx Fix -
The real power of "Dune libvpx" is not about replacing ./configure , but about . Once you have a Dune rule that produces libvpx.a , you can version-control that rule, share it across projects, and even publish it as an opam package.
Before discussing the solution, we must acknowledge the pain points of vanilla libvpx:
: To achieve "near-transparent" quality for a grain-heavy source like Dune , experts often use a two-pass encoding method with a low Constant Rate Factor (CRF) and a slow speed setting (e.g., -speed 1 or 0 ). 2. The Dune Software Ecosystem dune libvpx
(rule (target extracted) (deps libvpx-commit.tar.gz) (action (progn (run tar -xzf libvpx-commit.tar.gz) (run mv libvpx-1.13.1 libvpx-src) (write-file extracted "done"))))
Now, we invoke libvpx’s own build system but redirect the output to Dune’s artifact cache. The trick is to set the --prefix and --libdir to Dune’s _build/default/libvpx/install . The real power of "Dune libvpx" is not about replacing
It was a ruthless economy. The codec didn't care about beauty; it cared about PSNR (Peak Signal-to-Noise Ratio) and bitrate. It shaved away the noise, the film grain, the subtle shadows the human eye would miss. It was here, in the heat of the loop filter, that the packet began to lose its weight. It felt lighter. Leaner.
Dune’s cross-compilation toolchain ( dune build --target=... ) can be extended to libvpx. Write a dune-workspace file that defines the target triplet, then inside the libvpx rule, use a conditional: It was a ruthless economy
The combination of Dune and Libvpx offers several key benefits, including: