Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Vapoursynth decoding support to allow for avoiding piping #168

Merged
merged 3 commits into from
May 22, 2024

Conversation

shssoichiro
Copy link
Contributor

This is primarily for av1an, but may be useful to other applications as well. Currently, any application wanting to use this library must convert its input to y4m, and the simplest way to do this is to pipe from vspipe or ffmpeg. This change adds a Vapoursynth decoder, gated behind a Cargo feature (off by default), to allow library consumers to avoid this piping. This provides substantial performance improvements. The amount of improvement varies depending on the source video format, as this moves the bottleneck to be on the decoder, but tests showed anywhere from 20-75% improvement on 8-bit for the fast scenechange method, with smaller but still respectable improvements of up to 20% for 10-bit and for the standard scenechange method, compared to piping from vspipe.

@shssoichiro shssoichiro merged commit 574d0c1 into rust-av:master May 22, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant