zvidlib 0.5.0

Frame-accurate video and audio I/O for native and WebAssembly applications
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.85"
name = "zvidlib"
version = "0.5.0"
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.5.0"
optional = true

[dependencies.zvidlib-av1]
version = "=0.5.0"
optional = true

[dependencies.zvidlib-av1-decoder]
version = "=0.5.0"
optional = true

[dependencies.zvidlib-av1-encoder]
version = "=0.5.0"
optional = true

[dependencies.zvidlib-av1-syntax]
version = "=0.5.0"

[dependencies.zvidlib-color]
version = "=0.5.0"

[dependencies.zvidlib-container]
version = "=0.5.0"

[dependencies.zvidlib-core]
version = "=0.5.0"

[dependencies.zvidlib-hevc-decoder]
version = "=0.5.0"
optional = true
default-features = false

[dependencies.zvidlib-hevc-encoder]
version = "=0.5.0"
optional = true
default-features = false

[dependencies.zvidlib-hevc-syntax]
version = "=0.5.0"

[dependencies.zvidlib-opus]
version = "=0.5.0"
optional = true

[dependencies.zvidlib-opus-syntax]
version = "=0.5.0"

[dependencies.zvidlib-vorbis-decoder]
version = "=0.5.0"
optional = true

[dependencies.zvidlib-vorbis-encoder]
version = "=0.5.0"
optional = true

[dependencies.zvidlib-vorbis-syntax]
version = "=0.5.0"

[dependencies.zvidlib-vp8]
version = "=0.5.0"
optional = true
default-features = false

[dependencies.zvidlib-vp9-decoder]
version = "=0.5.0"
optional = true
default-features = false

[dependencies.zvidlib-vp9-encoder]
version = "=0.5.0"
optional = true
default-features = false

[dependencies.zvidlib-vp9-syntax]
version = "=0.5.0"

[build-dependencies.zvidlib-build]
version = "=0.5.0"

[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