[package]
name = "colconv"
version = "0.1.0"
edition = "2024"
repository = "https://github.com/findit-ai/colconv"
homepage = "https://github.com/findit-ai/colconv"
documentation = "https://docs.rs/colconv"
description = "SIMD-dispatched color-conversion kernels covering the FFmpeg AVPixelFormat space, with a Sink-based API so consumers pick which derived outputs (RGB / Luma / HSV / custom) they want without paying for the ones they don't."
license = "GPL-3.0-or-later"
rust-version = "1.95.0"
[lib]
bench = false
[[bench]]
name = "yuv_420_to_rgb"
harness = false
[[bench]]
name = "nv12_to_rgb"
harness = false
[[bench]]
name = "nv16_to_rgb"
harness = false
[[bench]]
name = "nv21_to_rgb"
harness = false
[[bench]]
name = "nv24_to_rgb"
harness = false
[[bench]]
name = "nv42_to_rgb"
harness = false
[[bench]]
name = "yuv_420p10_to_rgb"
harness = false
[[bench]]
name = "yuv_420p12_to_rgb"
harness = false
[[bench]]
name = "yuv_420p14_to_rgb"
harness = false
[[bench]]
name = "yuv_420p16_to_rgb"
harness = false
[[bench]]
name = "p010_to_rgb"
harness = false
[[bench]]
name = "p012_to_rgb"
harness = false
[[bench]]
name = "p016_to_rgb"
harness = false
[[bench]]
name = "yuv_422p_to_rgb"
harness = false
[[bench]]
name = "yuv_422p10_to_rgb"
harness = false
[[bench]]
name = "yuv_422p12_to_rgb"
harness = false
[[bench]]
name = "yuv_422p14_to_rgb"
harness = false
[[bench]]
name = "yuv_422p16_to_rgb"
harness = false
[[bench]]
name = "yuv_444p_to_rgb"
harness = false
[[bench]]
name = "yuv_444p10_to_rgb"
harness = false
[[bench]]
name = "yuv_444p12_to_rgb"
harness = false
[[bench]]
name = "yuv_444p14_to_rgb"
harness = false
[[bench]]
name = "yuv_444p16_to_rgb"
harness = false
[[bench]]
name = "p210_to_rgb"
harness = false
[[bench]]
name = "p212_to_rgb"
harness = false
[[bench]]
name = "p216_to_rgb"
harness = false
[[bench]]
name = "p410_to_rgb"
harness = false
[[bench]]
name = "p412_to_rgb"
harness = false
[[bench]]
name = "p416_to_rgb"
harness = false
[[bench]]
name = "rgb_to_hsv"
harness = false
[[bench]]
name = "vuya_a_plus_combo"
harness = false
[[bench]]
name = "ayuv64_a_plus_combo"
harness = false
[[bench]]
name = "yuva_4_2_0_a_plus_combo"
harness = false
[[bench]]
name = "yuva_4_2_2_a_plus_combo"
harness = false
[[bench]]
name = "yuva_4_4_4_a_plus_combo"
harness = false
[[bench]]
name = "pal8_simd"
harness = false
[[bench]]
name = "yuyv422_to_rgb"
harness = false
[[bench]]
name = "uyvy422_to_rgb"
harness = false
[[bench]]
name = "yvyu422_to_rgb"
harness = false
[[bench]]
name = "uyyvyy411_to_rgb"
harness = false
[[bench]]
name = "yuv_411p_to_rgb"
harness = false
[[bench]]
name = "yuv_410p_to_rgb"
harness = false
[[bench]]
name = "yuv_440p_to_rgb"
harness = false
[[bench]]
name = "yuv_440p10_to_rgb"
harness = false
[[bench]]
name = "yuv_440p12_to_rgb"
harness = false
[[bench]]
name = "y210_to_rgb"
harness = false
[[bench]]
name = "y212_to_rgb"
harness = false
[[bench]]
name = "y216_to_rgb"
harness = false
[[bench]]
name = "v210_to_rgb"
harness = false
[[bench]]
name = "v30x_to_rgb"
harness = false
[[bench]]
name = "v410_to_rgb"
harness = false
[[bench]]
name = "xv36_to_rgb"
harness = false
[[bench]]
name = "vuyx_to_rgb"
harness = false
[[bench]]
name = "rgb24_to_luma"
harness = false
[[bench]]
name = "rgba_to_luma"
harness = false
[[bench]]
name = "bgr24_to_rgb"
harness = false
[[bench]]
name = "rgb48_to_rgb"
harness = false
[[bench]]
name = "rgba64_to_rgba"
harness = false
[[bench]]
name = "x2rgb10_to_rgb"
harness = false
[[bench]]
name = "rgbf32_to_rgb"
harness = false
[[bench]]
name = "rgbf16_to_rgb"
harness = false
[[bench]]
name = "rgb565_to_rgb"
harness = false
[[bench]]
name = "gbrp_to_rgb"
harness = false
[[bench]]
name = "gbrap_to_rgba"
harness = false
[[bench]]
name = "gbrp12_to_rgb"
harness = false
[[bench]]
name = "gbrpf32_to_rgb"
harness = false
[[bench]]
name = "gray8_to_rgb"
harness = false
[[bench]]
name = "gray16_to_rgb"
harness = false
[[bench]]
name = "grayf32_to_rgb"
harness = false
[[bench]]
name = "ya8_to_rgba"
harness = false
[[bench]]
name = "bayer_to_rgb"
harness = false
[[bench]]
name = "bayer16_to_rgb"
harness = false
[[bench]]
name = "xyz12_to_rgb"
harness = false
[[bench]]
name = "monoblack_to_rgb"
harness = false
[features]
default = ["std", "frame"]
alloc = ["libm", "mediaframe/alloc"]
std = ["thiserror/default", "mediaframe/std"]
frame = [
"mediaframe/frame",
"yuv-planar",
"yuv-semi-planar",
"yuva",
"yuv-packed",
"yuv-444-packed",
"y2xx",
"v210",
"rgb",
"rgb-float",
"rgb-legacy",
"gbr",
"gray",
"bayer",
"xyz",
"mono",
]
yuv-planar = ["mediaframe/yuv-planar"]
yuv-semi-planar = ["mediaframe/yuv-semi-planar"]
yuva = ["mediaframe/yuva", "yuv-planar"]
yuv-packed = ["mediaframe/yuv-packed"]
yuv-444-packed = ["mediaframe/yuv-444-packed"]
y2xx = ["mediaframe/y2xx"]
v210 = ["mediaframe/v210"]
rgb = ["mediaframe/rgb"]
rgb-float = ["mediaframe/rgb-float"]
rgb-legacy = ["mediaframe/rgb-legacy"]
gbr = ["mediaframe/gbr"]
gray = ["mediaframe/gray"]
bayer = ["mediaframe/bayer"]
xyz = ["mediaframe/xyz"]
mono = ["mediaframe/mono"]
[dependencies]
derive_more = { version = "2", default-features = false, features = ["display", "is_variant", "try_unwrap", "unwrap"] }
half = { version = "2", default-features = false }
thiserror = { version = "2", default-features = false }
libm = { version = "0.2", optional = true }
mediaframe = { version = "0.1", default-features = false }
[dev-dependencies]
tempfile = "3"
[target.'cfg(not(target_family = "wasm"))'.dev-dependencies]
criterion = "0.8"
[profile.bench]
opt-level = 3
debug = false
codegen-units = 1
lto = 'thin'
incremental = false
debug-assertions = false
overflow-checks = false
rpath = false
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[workspace.lints.rust]
rust_2018_idioms = "warn"
single_use_lifetimes = "warn"
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(all_tests)',
'cfg(tarpaulin)',
'cfg(colconv_force_scalar)',
'cfg(colconv_disable_avx512)',
'cfg(colconv_disable_avx2)',
] }