mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-05-19 00:38:20 +00:00
168af88eda
When swapping between several development branches, compilation times can be frustrating. This commit proposes adding features to control which signaller to include when building the webrtc plugin. By default, all signallers are included, just like before. Compiling the `webrtc-precise-sync` examples with `--no-default-features` reduces compilation to 267 crates instead of 429 when all signallers are compiled in. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1539>
121 lines
4.2 KiB
TOML
121 lines
4.2 KiB
TOML
[package]
|
|
name = "gst-plugin-webrtc"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
authors = ["Mathieu Duponchelle <mathieu@centricular.com>", "Thibault Saunier <tsaunier@igalia.com>"]
|
|
license = "MPL-2.0"
|
|
description = "GStreamer plugin for high level WebRTC elements and a simple signaling server"
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[dependencies]
|
|
gst = { workspace = true, features = ["v1_20", "serde"] }
|
|
gst-app = { workspace = true, features = ["v1_20"] }
|
|
gst-audio = { workspace = true, features = ["v1_20", "serde"] }
|
|
gst-video = { workspace = true, features = ["v1_20", "serde"] }
|
|
gst-net = { workspace = true, features = ["v1_20"] }
|
|
gst-webrtc = { workspace = true, features = ["v1_20"] }
|
|
gst-sdp = { workspace = true, features = ["v1_20"] }
|
|
gst-rtp = { workspace = true, features = ["v1_20"] }
|
|
gst-utils.workspace = true
|
|
gst-base.workspace = true
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
anyhow = "1"
|
|
chrono = "0.4"
|
|
thiserror = "1"
|
|
futures = "0.3"
|
|
tokio = { version = "1", features = ["fs", "macros", "rt-multi-thread", "time"] }
|
|
tokio-native-tls = "0.3.0"
|
|
tokio-stream = "0.1.11"
|
|
async-tungstenite = { version = "0.25", features = ["tokio-runtime", "tokio-native-tls"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
fastrand = "2.0"
|
|
gst_plugin_webrtc_protocol = { path="protocol", package = "gst-plugin-webrtc-signalling-protocol" }
|
|
human_bytes = "0.4"
|
|
once_cell.workspace = true
|
|
rand = "0.8"
|
|
url = "2"
|
|
|
|
aws-config = { version = "1.0", optional = true }
|
|
aws-types = { version = "1.0", optional = true }
|
|
aws-credential-types = { version = "1.0", optional = true }
|
|
aws-sigv4 = { version = "1.0", optional = true }
|
|
aws-smithy-http = { version = "0.60", features = [ "rt-tokio" ], optional = true }
|
|
aws-smithy-types = { version = "1.0", optional = true }
|
|
aws-sdk-kinesisvideo = { version = "1.0", optional = true }
|
|
aws-sdk-kinesisvideosignaling = { version = "1.0", optional = true }
|
|
http = { version = "1.0", optional = true }
|
|
data-encoding = {version = "2.3.3", optional = true }
|
|
url-escape = { version = "0.1.1", optional = true }
|
|
|
|
reqwest = { version = "0.11", features = ["default-tls"], optional = true }
|
|
parse_link_header = {version = "0.3", features = ["url"]}
|
|
async-recursion = { version = "1.0.0", optional = true }
|
|
|
|
livekit-protocol = { version = "0.3", optional = true }
|
|
livekit-api = { version = "0.3", default-features = false, features = ["signal-client", "access-token", "native-tls"], optional = true }
|
|
|
|
warp = {version = "0.3", optional = true }
|
|
crossbeam-channel = { version = "0.5", optional = true }
|
|
|
|
[dev-dependencies]
|
|
gst-plugin-rtp = { path = "../rtp" }
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
tracing-subscriber = { version = "0.3", features = ["registry", "env-filter"] }
|
|
tracing-log = "0.2"
|
|
clap = { version = "4", features = ["derive"] }
|
|
regex = "1"
|
|
|
|
[lib]
|
|
name = "gstrswebrtc"
|
|
crate-type = ["cdylib", "rlib"]
|
|
path = "src/lib.rs"
|
|
|
|
[build-dependencies]
|
|
gst-plugin-version-helper.workspace = true
|
|
|
|
[features]
|
|
default = ["v1_22", "aws", "janus", "livekit", "whip"]
|
|
static = []
|
|
capi = []
|
|
v1_22 = ["gst/v1_22", "gst-app/v1_22", "gst-video/v1_22", "gst-webrtc/v1_22", "gst-sdp/v1_22", "gst-rtp/v1_22"]
|
|
doc = []
|
|
|
|
aws = ["dep:aws-config", "dep:aws-types", "dep:aws-credential-types", "dep:aws-sigv4",
|
|
"dep:aws-smithy-http", "dep:aws-smithy-types", "dep:aws-sdk-kinesisvideo",
|
|
"dep:aws-sdk-kinesisvideosignaling", "dep:data-encoding", "dep:http", "dep:url-escape"]
|
|
janus = ["dep:http"]
|
|
livekit = ["dep:livekit-protocol", "dep:livekit-api"]
|
|
whip = ["dep:async-recursion", "dep:crossbeam-channel", "dep:reqwest", "dep:warp"]
|
|
|
|
[package.metadata.capi]
|
|
min_version = "0.9.21"
|
|
|
|
[package.metadata.capi.header]
|
|
enabled = false
|
|
|
|
[package.metadata.capi.library]
|
|
install_subdir = "gstreamer-1.0"
|
|
versioning = false
|
|
import_library = false
|
|
|
|
[package.metadata.capi.pkg_config]
|
|
requires_private = "gstreamer-rtp-1.0 >= 1.20, gstreamer-webrtc-1.0 >= 1.20, gstreamer-1.0 >= 1.20, gstreamer-app-1.0 >= 1.20, gstreamer-video-1.0 >= 1.20, gstreamer-sdp-1.0 >= 1.20, gobject-2.0, glib-2.0, gmodule-2.0"
|
|
|
|
[[example]]
|
|
name = "webrtcsink-stats-server"
|
|
|
|
[[example]]
|
|
name = "webrtcsink-high-quality-tune"
|
|
|
|
[[example]]
|
|
name = "webrtcsink-custom-signaller"
|
|
|
|
[[example]]
|
|
name = "webrtc-precise-sync-send"
|
|
|
|
[[example]]
|
|
name = "webrtc-precise-sync-recv"
|