Experiment: consider switching from aom to dav1d+rav1e/svt-av1
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 212
- Forks
- 132
- Avg merge
- 5h 18m
- Merged PRs (30d)
- 11
Description
The dav1d decoder provides a meson build script and is straightforward to cross-compile.
https://github.com/lovell/sharp-libvips/tree/dav1d
The rav1e encoder does not provide build tooling and relies on cargo cinstall, which is not that simple to get working with cross-compilation. It causes rust symbol conflicts as we also statically-link the rust-based librsvg, so requires the slightly dangerous -Wl,--allow-multiple-definition linker flag.
https://github.com/lovell/sharp-libvips/tree/rav1e
Could consider the C-based svt-av1 as the encoder, perhaps the svt-av1-psy fork that prefers SSIM over PSNR - see https://github.com/lovell/sharp/issues/4276
Also need to determine by how much the shared library binary file size would increase, if any, with separate decoder/encoder.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare the dav1d and rav1e branches linked in the issue, starting with their Meson and cargo cinstall build setup and cross-compilation behavior. Evaluate the svt-av1 option, including the referenced svt-av1-psy discussion, and measure how separate decoder and encoder choices affect the shared library binary size. Done means a selected codec approach with working packaging and documented size results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust, shell
- Domain
- build-system, devops
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100