[package]
name = "gstreamer"
authors = ["Sebastian Dröge <sebastian@centricular.com>"]
description = "Rust bindings for GStreamer"
license = "MIT OR Apache-2.0"
readme = "README.md"
keywords = ["gstreamer", "multimedia", "audio", "video", "gnome"]
documentation = "https://gstreamer.freedesktop.org/documentation/rust/stable/latest/docs/gstreamer/"
version.workspace = true
categories.workspace = true
repository.workspace = true 
homepage.workspace = true 
edition.workspace = true 
rust-version.workspace = true 

[dependencies]
cfg-if = "1.0"
libc = "0.2"
gstreamer-sys.workspace = true
glib.workspace = true
num-integer = { version = "0.1", default-features = false, features = [] }
num-rational = { version = "0.4", default-features = false, features = [] }
futures-core = "0.3"
futures-channel = "0.3"
futures-util = { version = "0.3", default-features = false }
log = { version = "0.4", optional = true }
muldiv = "1"
opt-ops = { package = "option-operations", version = "0.5" }
serde = { version = "1.0", optional = true, features = ["derive"] }
serde_bytes = { version = "0.11", optional = true }
paste = "1.0"
thiserror = "2"
smallvec = { version = "1.0", features = ["write"] }
itertools = "0.13"
pin-project-lite = "0.2"
once_cell = "1"

[dev-dependencies]
ron = "0.8"
serde_json = "1.0"
futures-executor = "0.3.1"
gir-format-check = "0.1"

[features]
default = []
v1_16 = ["gstreamer-sys/v1_16"]
v1_18 = ["gstreamer-sys/v1_18", "v1_16"]
v1_20 = ["gstreamer-sys/v1_20", "v1_18"]
v1_22 = ["gstreamer-sys/v1_22", "v1_20"]
v1_24 = ["gstreamer-sys/v1_24", "v1_22"]
v1_26 = ["gstreamer-sys/v1_26", "v1_24"]
serde = ["num-rational/serde", "dep:serde", "serde_bytes"]
log = ["dep:log"]

[package.metadata.docs.rs]
all-features = true
rustc-args = ["--cfg", "docsrs"]
rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"]
