moq-transcode 0.0.13

Just-in-time live transcoding for hang broadcasts over Media over QUIC
Documentation
[package]
name = "moq-transcode"
description = "Just-in-time live transcoding for hang broadcasts over Media over QUIC"
authors = ["Luke Curley <kixelated@gmail.com>"]
repository = "https://github.com/moq-dev/moq"
license = "MIT OR Apache-2.0"

version = "0.0.13"
edition = "2024"
rust-version.workspace = true

keywords = ["quic", "http3", "webtransport", "media", "video"]
categories = ["multimedia", "multimedia::video", "multimedia::encoding"]

[features]
# The NVIDIA codecs are on by default, mirroring moq-video: NVDEC -> NVENC is
# the whole point of a GPU transcode fleet, and it is the zero-copy GPU pipeline
# (NVDEC decodes and scales in hardware, NVENC encodes the CUDA frame in place).
# Disable for a slimmer self-compiled Linux build. VAAPI remains an opt-in.
default = ["nvidia"]
# NVENC + NVDEC (Linux, dlopen'd at runtime; a no-op elsewhere).
nvidia = ["moq-video/nvidia"]
# Compatibility aliases for the pre-consolidation names, kept so a manifest that
# already asks for the old split still resolves. Undocumented on purpose: the
# feature tables name only `nvidia`.
nvenc = ["nvidia"]
nvdec = ["nvidia"]
# Intel/AMD VAAPI hardware encoder (Linux; opt-in because the backend is
# unvalidated on hardware; libva dlopen'd at runtime).
vaapi = ["moq-video/vaapi"]

[dependencies]
bytes = "1"
hang = { workspace = true }
kio = { workspace = true }
moq-mux = { workspace = true }
moq-net = { workspace = true }
moq-video = { workspace = true }
thiserror = "2"
tokio = { workspace = true, features = ["rt", "macros", "sync", "time"] }
tracing = "0.1"

[dev-dependencies]
anyhow = "1"
clap = { version = "4", features = ["derive"] }
# Default features on (unlike the workspace entry) so the example gets a QUIC backend.
moq-native = { path = "../moq-native" }
# test-util unlocks tokio::time::pause for the deterministic live-feed tests.
tokio = { workspace = true, features = ["full", "test-util"] }
url = "2"