[package]
edition = "2024"
name = "waterkit-codec"
version = "0.1.1"
authors = ["Lexo Liu"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Hardware-aware video codec with deterministic timing and wgpu texture output"
readme = "README.md"
keywords = [
"codec",
"video",
"gpu",
"h264",
"av1",
]
categories = [
"multimedia::video",
"graphics",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/water-rs/waterkit"
resolver = "2"
[features]
default = ["software-fallback"]
software-fallback = [
"dep:rav1e",
"dep:rav1d",
"dep:avif-parse",
"dep:yuv",
"dep:moxcms",
]
[lib]
name = "waterkit_codec"
path = "src/lib.rs"
[dependencies.half]
version = "2"
[dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
"gif",
"webp",
"bmp",
"ico",
"tiff",
]
default-features = false
[dependencies.libc]
version = "0.2"
[dependencies.shaderloom]
version = "0.1.2"
[dependencies.thiserror]
version = "2"
[dependencies.tracing]
version = "0.1.44"
[dependencies.waterkit-video-core]
version = "0.1.1"
[dependencies.wgpu]
version = "29.0.4"
[build-dependencies.shaderloom]
version = "0.1.2"
features = ["build"]
[build-dependencies.waterkit-build]
version = "0.1.1"
[target.'cfg(not(any(target_os = "android", target_arch = "wasm32")))'.dev-dependencies.image]
version = "0.25"
features = [
"png",
"jpeg",
"gif",
"webp",
"bmp",
"ico",
"tiff",
"avif",
]
default-features = false
[target.'cfg(not(any(target_os = "ios", target_os = "android", target_arch = "wasm32")))'.dependencies.avif-parse]
version = "2.1"
optional = true
[target.'cfg(not(any(target_os = "ios", target_os = "android", target_arch = "wasm32")))'.dependencies.moxcms]
version = "0.8.1"
features = ["extended_range"]
optional = true
[target.'cfg(not(any(target_os = "ios", target_os = "android", target_arch = "wasm32")))'.dependencies.rav1d]
version = "1.1"
features = [
"bitdepth_8",
"bitdepth_16",
]
optional = true
default-features = false
[target.'cfg(not(any(target_os = "ios", target_os = "android", target_arch = "wasm32")))'.dependencies.rav1e]
version = "0.8"
features = ["threading"]
optional = true
default-features = false
[target.'cfg(not(any(target_os = "ios", target_os = "android", target_arch = "wasm32")))'.dependencies.yuv]
version = "0.8.16"
optional = true
[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.22"
[target.'cfg(target_os = "android")'.dependencies.ndk]
version = "0.9"
features = [
"media",
"api-level-29",
]
[target.'cfg(target_os = "android")'.dependencies.ndk-sys]
version = "0.6"
[target.'cfg(target_os = "linux")'.dependencies.cros-codecs]
version = "0.0.6"
features = ["vaapi"]
default-features = false
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62"
features = [
"Devices_Geolocation",
"Foundation",
"Win32_Media_MediaFoundation",
"Win32_System_Com",
]
[target.'cfg(target_vendor = "apple")'.dependencies.objc2]
version = "0.6"
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-core-foundation]
version = "0.3"
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-core-media]
version = "0.3"
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-core-video]
version = "0.3"
features = [
"CVMetalTexture",
"CVMetalTextureCache",
]
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-foundation]
version = "0.3"
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-io-surface]
version = "0.3"
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-metal]
version = "0.3"
features = [
"MTLBlitCommandEncoder",
"MTLCommandBuffer",
"MTLCommandEncoder",
"MTLCommandQueue",
"MTLDevice",
"MTLPixelFormat",
"MTLTexture",
"MTLTypes",
]
[target.'cfg(target_vendor = "apple")'.dependencies.objc2-video-toolbox]
version = "0.3"
[target.'cfg(target_vendor = "apple")'.dependencies.swift-bridge]
version = "0.1"
[target.'cfg(target_vendor = "apple")'.dependencies.wgpu-hal]
version = "29.0.4"
features = ["metal"]
[lints.clippy]
multiple_crate_versions = "allow"
unused_async_trait_impl = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.complexity]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.perf]
level = "warn"
priority = -1
[lints.clippy.style]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"