rav1e 0.7.1

The fastest and safest AV1 encoder
Documentation
[package]
name = "rav1e"
version = "0.7.1"
authors = ["Thomas Daede <tdaede@xiph.org>"]
edition = "2021"
rust-version = "1.70.0"
build = "build.rs"
include = [
  "/Cargo.toml",
  "/LICENSE",
  "/PATENTS",
  "/README.md",
  "/build.rs",
  "/cbindgen.toml",
  "/src/**",
]
license = "BSD-2-Clause"
description = "The fastest and safest AV1 encoder"
readme = "README.md"
repository = "https://github.com/xiph/rav1e/"
autobenches = false
autobins = false
default-run = "rav1e"

[features]
unstable = []
channel-api = ["crossbeam"]
decode_test = ["aom-sys"]
decode_test_dav1d = ["dav1d-sys"]
binaries = [
  "ivf",
  "y4m",
  "clap",
  "clap_complete",
  "scan_fmt",
  "fern",
  "console",
  "av-metrics",
  "nom",
]
default = ["binaries", "asm", "threading", "signal_support", "git_version"]
git_version = ["built/git2"]
asm = ["nasm-rs", "cc"]
threading = ["rayon/threads"]
signal_support = ["signal-hook"]
dump_ivf = ["ivf"]
quick_test = []
desync_finder = ["backtrace"]
bench = []
check_asm = []
capi = ["scan_fmt"]
tracing = [
  "profiling/profile-with-tracing",
  "tracing-subscriber",
  "tracing-chrome",
  "dep:tracing"
]
scenechange = []
serialize = ["serde", "toml", "v_frame/serialize", "serde-big-array", "av1-grain/serialize"]
wasm = ["wasm-bindgen"]

# Enables debug dumping of lookahead computation results, specifically:
# - i-qres.png: quarter-resolution luma planes,
# - i-hres.png: half-resolution luma planes,
# - i-mvs.bin: motion vectors,
# - i-imps.bin: block importances,
# - i-activity_scales.bin: spatial scales,
# - i-distortion_scales.bin: temporal scales,
# - i-spatiotemporal_scales.bin,
# - i-thresholds.bin: segmentation thresholds.
dump_lookahead_data = ["byteorder", "image"]

[dependencies]
arg_enum_proc_macro = "0.3.4"
bitstream-io = "2"
cfg-if = "1.0"
clap = { version = "4.4.11", optional = true, default-features = false, features = [
  "color",
  "std",
  "wrap_help",
  "derive",
] }
clap_complete = { version = "4.4.5", optional = true }
libc = "0.2"
y4m = { version = "0.8", optional = true }
backtrace = { version = "0.3", optional = true }
num-traits = "0.2"
num-derive = "0.4"
paste = "1.0"
noop_proc_macro = "0.3.0"
serde = { version = "1.0", features = ["derive"], optional = true }
dav1d-sys = { version = "0.6.0", package = "libdav1d-sys", optional = true }
aom-sys = { version = "0.3.3", optional = true }
scan_fmt = { version = "0.2.6", optional = true, default-features = false }
ivf = { version = "0.1", path = "ivf/", optional = true }
v_frame = "0.3.7"
av-metrics = { version = "0.9.1", optional = true, default-features = false }
rayon = { package = "maybe-rayon", version = "0.1", default-features = false }
crossbeam = { version = "0.8", optional = true }
toml = { version = "0.8", optional = true }
arrayvec = "0.7"
thiserror = "1.0"
byteorder = { version = "1.5.0", optional = true }
log = "0.4"
console = { version = "0.15", optional = true }
fern = { version = "0.6", optional = true }
itertools = "0.12"
simd_helpers = "0.1"
wasm-bindgen = { version = "0.2.89", optional = true }
nom = { version = "7.1.3", optional = true }
new_debug_unreachable = "1.0.4"
once_cell = "1.19.0"
av1-grain = "0.2.2"
serde-big-array = { version = "0.5.1", optional = true }
profiling = { version = "1" }
tracing-subscriber = { version = "0.3.18", optional = true }
tracing-chrome = { version = "0.7.1", optional = true }
tracing = { version = "0.1.40", optional = true }

[dependencies.image]
version = "0.24.7"
optional = true
default-features = false
features = ["png"]

[build-dependencies]
cc = { version = "1.0", optional = true, features = ["parallel"] }
built = { version = "0.7.1", features = [] }

[build-dependencies.nasm-rs]
version = "0.2"
optional = true
features = ["parallel"]

[target.'cfg(unix)'.dependencies]
signal-hook = { version = "0.3", optional = true }

[dev-dependencies]
assert_cmd = "2.0"
criterion = "0.5"
pretty_assertions = "1.4.0"
interpolate_name = "0.2.4"
nom = "7.1.3"
quickcheck = "1.0"
rand = "0.8"
rand_chacha = "0.3"
semver = "1.0"

[target.'cfg(fuzzing)'.dependencies]
arbitrary = "1.3"
interpolate_name = "0.2.4"
libfuzzer-sys = "0.4.7"
rand = "0.8"
rand_chacha = "0.3"

[target.'cfg(any(decode_test, decode_test_dav1d))'.dependencies]
system-deps = "6"

[[bin]]
name = "rav1e"
required-features = ["binaries"]
bench = false

[[bin]]
name = "rav1e-ch"
required-features = ["binaries", "channel-api", "unstable"]
bench = false

[lib]
bench = false

[[bench]]
name = "bench"
path = "benches/bench.rs"
required-features = ["bench"]
harness = false

[profile.dev]
opt-level = 1

[profile.release]
debug = true
incremental = true
lto = "thin"

# windows-gnu should use it until rust-lang/rust#98302 is not fixed
[profile.release-no-lto]
inherits = "release"
lto = "off"

[profile.release-strip]
inherits = "release"
strip = "symbols"

[profile.bench]
incremental = true

[workspace]
members = [".", "ivf"]

[package.metadata.docs.rs]
no-default-features = true