[package]
name = "edgefirst-image"
version.workspace = true
edition.workspace = true
authors.workspace = true
description = "High-performance image processing with hardware acceleration for edge AI"
homepage.workspace = true
repository.workspace = true
readme = "README.md"
license.workspace = true
keywords = ["image-processing", "computer-vision", "gpu", "edge-ai", "nv12"]
categories = ["multimedia::images", "multimedia::video", "embedded"]
documentation = "https://docs.rs/edgefirst-image"

[features]
default = ["opengl"]
opengl = ["dep:khronos-egl", "dep:gbm"]
tracker = ["edgefirst-decoder/tracker", "dep:edgefirst-tracker"]
opencv = ["dep:opencv"]
g2d_test_formats = []
dma_test_formats = []

[dependencies]
ctor = { workspace = true }
edgefirst-tensor = { workspace = true }
enum_dispatch = { workspace = true }
env_logger = { workspace = true }
fast_image_resize = { workspace = true }
four-char-code = { workspace = true }
gls = { workspace = true }
half = { workspace = true }
jpeg-encoder = { workspace = true }
kamadak-exif = { workspace = true }
khronos-egl = { workspace = true, optional = true }
libc = { workspace = true }
libloading = { workspace = true }
log = { workspace = true }
ndarray = { workspace = true }
opencv = { workspace = true, optional = true }
rayon = { workspace = true }
tokio = { workspace = true }
yuv = { workspace = true }
zune-jpeg = { workspace = true }
zune-png = { workspace = true }
edgefirst-decoder = { workspace = true }
edgefirst-tracker = { workspace = true, optional = true }
ndarray-stats = { workspace = true }

[target.'cfg(target_os = "linux")'.dependencies]
dma-heap = { workspace = true }
g2d-sys = { workspace = true }
gbm = { workspace = true, optional = true }

[dev-dependencies]
edgefirst-bench = { workspace = true }
image = { workspace = true }
image-compare = { workspace = true }

[[bench]]
name = "image_benchmark"
harness = false

[[bench]]
name = "pipeline_benchmark"
harness = false

[[bench]]
name = "mask_benchmark"
harness = false

[[bench]]
name = "sanity_check"
harness = false

[[bench]]
name = "opencv_benchmark"
harness = false
required-features = ["opencv"]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage,coverage_nightly)'] }
