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

Rust-Bindings #98

Open
upachler opened this issue Oct 26, 2019 · 3 comments
Open

Rust-Bindings #98

upachler opened this issue Oct 26, 2019 · 3 comments

Comments

@upachler
Copy link

Hello,

I'd like to draw attention to a little side project of mine, which provides rust bindings for libebur128. This is in very early stages of development, of course, but almost all library functions are already made available.
The binding intends to be 'Rust-safe', which means that it wraps (in Rust eyes) unsafe C functions in safe Rust constructs (State struct and associated functions, raw buffer pointers in array slices).

I'd be more than happy about feedback, and, if you guys approve, a link from here to the rust binding.

@sdroege
Copy link

sdroege commented Aug 28, 2020

Sorry I just saw this issue now.

I also made Rust bindings for this and uploaded them to crates.io a few months ago. The initial versions up to 0.1.1 were plain bindings that shipped/built the C library internally, 0.1.2 and above are a pure Rust port of this library with a compatible API/ABI, the same results and basically the same performance. It can also be built as a C library that works as a drop-in replacement of the C libebur128.

@upachler
Copy link
Author

I guess that obsoletes my library then :)

..but no hard feelings - on the contrary: It's great to have a pure rust version of the library from yourself, the original author!

@sdroege
Copy link

sdroege commented Aug 28, 2020

I'm not the original author of libebur128, that's @jiixyj :)

If you think there's anything that could be made nicer in my version (API or implementation-wise), especially if it doesn't work for your use-cases, please let me know!

FWIW, I did this as part of implementing a loudness normalization filter for GStreamer based on the ffmpeg loudnorm filter. More details about that here if you're interested.

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

No branches or pull requests

2 participants