mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2024-12-27 15:45:55 -05:00
857a66f29c
This significantly improves safety of the ffmpeg interface. The complex ABIs aren't accessed directly from Rust. Instead, I have a small C wrapper which uses the ffmpeg C API and the C headers at compile-time to determine the proper ABI in the same way any C program using ffmpeg would, so that the ABI doesn't have to be duplicated in Rust code. I've tested with ffmpeg 2.x and ffmpeg 3.x; it seems to work properly with both where before ffmpeg 3.x caused segfaults. It still depends on ABI compatibility between the compiled and running versions. C programs need this, too, and normal shared library versioning practices provide this guarantee. But log both versions on startup for diagnosing problems with this. Fixes #7
18 lines
308 B
TOML
18 lines
308 B
TOML
[package]
|
|
name = "moonfire-ffmpeg"
|
|
version = "0.0.1"
|
|
authors = ["Scott Lamb <slamb@slamb.org>"]
|
|
readme = "../README.md"
|
|
#links = "ffmpeg"
|
|
|
|
[lib]
|
|
path = "lib.rs"
|
|
|
|
[dependencies]
|
|
libc = "0.2"
|
|
log = { version = "0.3", features = ["release_max_level_info"] }
|
|
|
|
[build-dependencies]
|
|
gcc = "0.3"
|
|
pkg-config = "0.3"
|