mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2025-02-23 11:32:33 -05:00
This is a step toward H.265 recording support (#33) by using Retina for the `VisualSampleEncoding` instead of the prior H.264-specific logic. The only further change to Moonfire itself needed for H.265 is to add `| "h265"` to the check for the right video stream. This also adds support for recording MJPEG, although browser playback almost certainly won't work.
121 lines
3.7 KiB
TOML
121 lines
3.7 KiB
TOML
[package]
|
|
name = "moonfire-nvr"
|
|
version = "0.0.0"
|
|
authors = ["Scott Lamb <slamb@slamb.org>"]
|
|
edition = "2021"
|
|
resolver = "2"
|
|
license-file = "../LICENSE.txt"
|
|
rust-version = "1.79"
|
|
publish = false
|
|
|
|
[features]
|
|
# The nightly feature is used within moonfire-nvr itself to gate the
|
|
# benchmarks. Also pass it along to crates that can benefit from it.
|
|
nightly = ["db/nightly"]
|
|
|
|
# The bundled feature aims to make a single executable file that is deployable,
|
|
# including statically linked libraries and embedded UI files.
|
|
bundled = ["rusqlite/bundled", "bundled-ui"]
|
|
|
|
bundled-ui = []
|
|
|
|
[workspace]
|
|
members = ["base", "db"]
|
|
|
|
[workspace.dependencies]
|
|
base64 = "0.21.0"
|
|
h264-reader = "0.7.0"
|
|
itertools = "0.12.0"
|
|
nix = "0.27.0"
|
|
pretty-hex = "0.4.0"
|
|
ring = "0.17.0"
|
|
rusqlite = "0.30.0"
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
tracing-log = "0.2"
|
|
|
|
[dependencies]
|
|
base = { package = "moonfire-base", path = "base" }
|
|
base64 = { workspace = true }
|
|
blake3 = "1.0.0"
|
|
bpaf = { version = "0.9.1", features = ["autocomplete", "bright-color", "derive"]}
|
|
bytes = "1"
|
|
byteorder = "1.0"
|
|
chrono = "0.4.23"
|
|
cursive = { version = "0.20.0", default-features = false, features = ["termion-backend"] }
|
|
db = { package = "moonfire-db", path = "db" }
|
|
futures = "0.3"
|
|
h264-reader = { workspace = true }
|
|
http = "0.2.3"
|
|
http-serve = { version = "0.3.1", features = ["dir"] }
|
|
hyper = { version = "0.14.2", features = ["http1", "server", "stream", "tcp"] }
|
|
itertools = { workspace = true }
|
|
libc = "0.2"
|
|
log = { version = "0.4" }
|
|
memchr = "2.0.2"
|
|
nix = { workspace = true, features = ["time", "user"] }
|
|
nom = "7.0.0"
|
|
password-hash = "0.5.0"
|
|
pretty-hex = { workspace = true }
|
|
protobuf = "3.0"
|
|
reffers = "0.7.0"
|
|
retina = "0.4.9"
|
|
ring = { workspace = true }
|
|
rusqlite = { workspace = true }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
smallvec = { version = "1.7", features = ["union"] }
|
|
sync_wrapper = "0.1.0"
|
|
time = "0.1"
|
|
tokio = { version = "1.24", features = ["macros", "rt-multi-thread", "signal", "sync", "time"] }
|
|
tokio-tungstenite = "0.20.0"
|
|
toml = "0.8"
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { version = "0.3.16", features = ["env-filter", "json"] }
|
|
tracing-core = "0.1.30"
|
|
tracing-futures = { version = "0.2.5", features = ["futures-03", "std-future"] }
|
|
tracing-log = { workspace = true }
|
|
ulid = "1.0.0"
|
|
url = "2.1.1"
|
|
uuid = { version = "1.1.2", features = ["serde", "std", "v4"] }
|
|
flate2 = "1.0.26"
|
|
git-version = "0.3.5"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
libsystemd = "0.7.0"
|
|
|
|
[build-dependencies]
|
|
ahash = "0.8"
|
|
blake3 = "1.0.0"
|
|
walkdir = "2.3.3"
|
|
|
|
[dev-dependencies]
|
|
mp4 = { git = "https://github.com/scottlamb/mp4-rust", branch = "moonfire" }
|
|
num-rational = { version = "0.4.0", default-features = false, features = ["std"] }
|
|
reqwest = { version = "0.11.0", default-features = false, features = ["json"] }
|
|
tempfile = "3.2.0"
|
|
tracing-test = "0.2.4"
|
|
|
|
[profile.dev.package.scrypt]
|
|
# On an Intel i3-6100U @ 2.30 GHz, a single scrypt password hash takes 7.6
|
|
# seconds at opt-level=0, or 0.096 seconds at opt-level=2. Always optimize this
|
|
# crate to avoid seeming hung / being annoyingly slow when debugging.
|
|
opt-level = 2
|
|
|
|
[profile.release]
|
|
debug = 1
|
|
|
|
[profile.release-lto]
|
|
inherits = "release"
|
|
lto = true
|
|
|
|
[profile.bench]
|
|
debug = 1
|
|
|
|
[patch.crates-io]
|
|
# update to indexmap 2
|
|
protobuf-codegen = { git = "https://github.com/scottlamb/rust-protobuf.git", rev = "a61e09785c957eb9a183d129b426710146bfde38" }
|
|
protobuf-parse = { git = "https://github.com/scottlamb/rust-protobuf.git", rev = "a61e09785c957eb9a183d129b426710146bfde38" }
|
|
|
|
# This version uses fallible-iterator v0.3 (same one rusqlite 0.30 uses) and hasn't been released yet.
|
|
sdp-types = { git = "https://github.com/sdroege/sdp-types", rev = "e8d0a2c4b8b1fc1ddf1c60a01dc717a2f4e2d514" }
|