[package]
edition = "2024"
rust-version = "1.85"
name = "zvidlib"
version = "0.4.1"
build = "build.rs"
exclude = [
"/tests",
"/examples/media/BigBuckBunny.av1.mp4",
"/examples/web_canvas/*.mp4",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Frame-accurate video and audio I/O for native and WebAssembly applications"
readme = "README.md"
keywords = [
"video",
"audio",
"webassembly",
"webgl",
"mp4",
]
categories = [
"multimedia",
"wasm",
]
license = "MIT"
repository = "https://github.com/lsegal/zvidlib"
[features]
aac = [
"aac-decoder",
"aac-encoder",
]
aac-decoder = [
"dep:zvidlib-aac-encoder",
"dep:symphonia-codec-aac",
"dep:symphonia-core",
"dep:windows",
]
aac-encoder = ["dep:zvidlib-aac-encoder"]
all = [
"av1",
"vp8",
"vp9",
"hevc",
"opus",
"vorbis",
"aac",
]
av1 = [
"av1-decoder",
"av1-encoder",
]
av1-decoder = [
"dep:zvidlib-av1",
"dep:zvidlib-av1-decoder",
]
av1-encoder = [
"dep:zvidlib-av1",
"dep:zvidlib-av1-encoder",
]
default = [
"all",
"hardware",
]
hardware = [
"zvidlib-vp8?/hardware",
"zvidlib-vp9-decoder?/hardware",
"zvidlib-vp9-encoder?/hardware",
"zvidlib-hevc-decoder?/hardware",
"zvidlib-hevc-encoder?/hardware",
]
hevc = [
"hevc-decoder",
"hevc-encoder",
]
hevc-decoder = ["dep:zvidlib-hevc-decoder"]
hevc-encoder = ["dep:zvidlib-hevc-encoder"]
native = []
opus = [
"opus-decoder",
"opus-encoder",
]
opus-decoder = ["dep:zvidlib-opus"]
opus-encoder = ["dep:zvidlib-opus"]
simd = []
vorbis = [
"vorbis-decoder",
"vorbis-encoder",
]
vorbis-decoder = ["dep:zvidlib-vorbis-decoder"]
vorbis-encoder = ["dep:zvidlib-vorbis-encoder"]
vp8 = [
"vp8-decoder",
"vp8-encoder",
]
vp8-decoder = ["dep:zvidlib-vp8"]
vp8-encoder = ["dep:zvidlib-vp8"]
vp9 = [
"vp9-decoder",
"vp9-encoder",
]
vp9-decoder = ["dep:zvidlib-vp9-decoder"]
vp9-encoder = ["dep:zvidlib-vp9-encoder"]
web = [
"dep:js-sys",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:web-sys",
]
[lib]
name = "zvidlib"
crate-type = [
"rlib",
"cdylib",
]
path = "src/lib.rs"
[[example]]
name = "hevc_decode_profile"
path = "examples/hevc_decode_profile.rs"
required-features = [
"native",
"hevc-decoder",
]
[[example]]
name = "native_encode"
path = "examples/native_encode.rs"
required-features = [
"native",
"av1-encoder",
]
[[example]]
name = "native_gl"
path = "examples/native_gl/main.rs"
test = true
required-features = [
"native",
"hevc-decoder",
"aac-decoder",
"opus-decoder",
]
[[bench]]
name = "audio_decode"
path = "benches/audio_decode.rs"
harness = false
required-features = [
"aac-decoder",
"vorbis-decoder",
]
[[bench]]
name = "audio_mux"
path = "benches/audio_mux.rs"
harness = false
[[bench]]
name = "exact_seek"
path = "benches/exact_seek.rs"
harness = false
required-features = ["hevc-decoder"]
[[bench]]
name = "vpx_decode"
path = "benches/vpx_decode.rs"
harness = false
required-features = [
"av1-decoder",
"vp8-decoder",
"vp8-encoder",
"vp9-decoder",
"vp9-encoder",
]
[dependencies.zvidlib-aac-encoder]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-av1]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-av1-decoder]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-av1-encoder]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-av1-syntax]
version = "=0.4.1"
[dependencies.zvidlib-color]
version = "=0.4.1"
[dependencies.zvidlib-container]
version = "=0.4.1"
[dependencies.zvidlib-core]
version = "=0.4.1"
[dependencies.zvidlib-hevc-decoder]
version = "=0.4.1"
optional = true
default-features = false
[dependencies.zvidlib-hevc-encoder]
version = "=0.4.1"
optional = true
default-features = false
[dependencies.zvidlib-hevc-syntax]
version = "=0.4.1"
[dependencies.zvidlib-opus]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-opus-syntax]
version = "=0.4.1"
[dependencies.zvidlib-vorbis-decoder]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-vorbis-encoder]
version = "=0.4.1"
optional = true
[dependencies.zvidlib-vorbis-syntax]
version = "=0.4.1"
[dependencies.zvidlib-vp8]
version = "=0.4.1"
optional = true
default-features = false
[dependencies.zvidlib-vp9-decoder]
version = "=0.4.1"
optional = true
default-features = false
[dependencies.zvidlib-vp9-encoder]
version = "=0.4.1"
optional = true
default-features = false
[dependencies.zvidlib-vp9-syntax]
version = "=0.4.1"
[build-dependencies.zvidlib-build]
version = "=0.4.1"
[target.'cfg(not(any(target_arch = "wasm32", target_os = "macos", windows)))'.dependencies.symphonia-codec-aac]
version = "0.5.5"
optional = true
[target.'cfg(not(any(target_arch = "wasm32", target_os = "macos", windows)))'.dependencies.symphonia-core]
version = "0.5.5"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.cpal]
version = "0.15.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.criterion]
version = "0.7"
features = ["html_reports"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.glow]
version = "0.18.0"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.glutin]
version = "0.32.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.glutin-winit]
version = "0.5.0"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.raw-window-handle]
version = "0.6.2"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.winit]
version = "0.30.13"
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3.104"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.127"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.77"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.104"
features = [
"AbortController",
"AbortSignal",
"AudioBuffer",
"AudioData",
"AudioDataCopyToOptions",
"AudioDataInit",
"AudioDecoder",
"AudioDecoderConfig",
"AudioDecoderInit",
"AudioDecoderSupport",
"AudioEncoder",
"AudioEncoderConfig",
"AudioEncoderInit",
"AudioSampleFormat",
"BaseAudioContext",
"Blob",
"EncodedAudioChunk",
"EncodedAudioChunkInit",
"EncodedAudioChunkMetadata",
"EncodedAudioChunkType",
"EncodedVideoChunk",
"EncodedVideoChunkInit",
"EncodedVideoChunkMetadata",
"EncodedVideoChunkType",
"OfflineAudioContext",
"Performance",
"PlaneLayout",
"ReadableStream",
"VideoDecoder",
"VideoDecoderConfig",
"VideoDecoderInit",
"VideoDecoderSupport",
"VideoEncoder",
"VideoEncoderConfig",
"VideoEncoderEncodeOptions",
"VideoEncoderInit",
"VideoEncoderSupport",
"VideoFrame",
"VideoFrameBufferInit",
"VideoFrameCopyToOptions",
"VideoPixelFormat",
"Window",
]
optional = true
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3.77"
[target."cfg(windows)".dependencies.windows]
version = "0.62.2"
features = [
"Win32_Foundation",
"Win32_Graphics_Direct3D",
"Win32_Graphics_Direct3D11",
"Win32_Graphics_Dxgi_Common",
"Win32_Media_MediaFoundation",
"Win32_System_Com",
"Win32_System_Ole",
"Win32_System_Variant",
]
optional = true
[profile.bench]
lto = "fat"
codegen-units = 1
[profile.dev]
opt-level = 2
[profile.release]
lto = "fat"
codegen-units = 1