2022-08-16 14:44:41 +00:00
|
|
|
[package]
|
|
|
|
name = "gst-plugin-webrtc"
|
2024-02-05 13:35:07 +00:00
|
|
|
version.workspace = true
|
|
|
|
edition.workspace = true
|
2022-08-16 14:44:41 +00:00
|
|
|
authors = ["Mathieu Duponchelle <mathieu@centricular.com>", "Thibault Saunier <tsaunier@igalia.com>"]
|
|
|
|
license = "MPL-2.0"
|
2022-10-23 09:13:23 +00:00
|
|
|
description = "GStreamer plugin for high level WebRTC elements and a simple signaling server"
|
2024-02-05 13:35:07 +00:00
|
|
|
repository.workspace = true
|
|
|
|
rust-version.workspace = true
|
2021-10-05 21:28:05 +00:00
|
|
|
|
2022-08-16 14:44:41 +00:00
|
|
|
[dependencies]
|
2024-02-05 13:35:07 +00:00
|
|
|
gst = { workspace = true, features = ["v1_20", "serde"] }
|
|
|
|
gst-app = { workspace = true, features = ["v1_20"] }
|
2024-04-02 12:10:36 +00:00
|
|
|
gst-audio = { workspace = true, features = ["v1_20", "serde"] }
|
2024-02-05 13:35:07 +00:00
|
|
|
gst-video = { workspace = true, features = ["v1_20", "serde"] }
|
2024-04-12 12:18:09 +00:00
|
|
|
gst-net = { workspace = true, features = ["v1_20"] }
|
2024-02-05 13:35:07 +00:00
|
|
|
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
|
2023-03-08 14:15:53 +00:00
|
|
|
uuid = { version = "1", features = ["v4"] }
|
2022-07-12 21:13:38 +00:00
|
|
|
|
2022-08-16 14:44:41 +00:00
|
|
|
anyhow = "1"
|
2024-04-12 17:10:42 +00:00
|
|
|
chrono = "0.4"
|
2022-08-16 14:44:41 +00:00
|
|
|
thiserror = "1"
|
|
|
|
futures = "0.3"
|
2024-07-05 15:38:30 +00:00
|
|
|
itertools = "0.12"
|
2022-12-12 13:36:11 +00:00
|
|
|
tokio = { version = "1", features = ["fs", "macros", "rt-multi-thread", "time"] }
|
|
|
|
tokio-native-tls = "0.3.0"
|
|
|
|
tokio-stream = "0.1.11"
|
2024-09-10 05:57:55 +00:00
|
|
|
async-tungstenite = { version = "0.28", features = ["tokio-runtime", "tokio-native-tls", "url"] }
|
2023-06-21 19:54:00 +00:00
|
|
|
serde = { version = "1", features = ["derive"] }
|
2022-08-16 14:44:41 +00:00
|
|
|
serde_json = "1"
|
2023-06-09 06:36:51 +00:00
|
|
|
fastrand = "2.0"
|
2022-10-24 16:50:24 +00:00
|
|
|
gst_plugin_webrtc_protocol = { path="protocol", package = "gst-plugin-webrtc-signalling-protocol" }
|
2024-07-17 17:50:16 +00:00
|
|
|
gst_plugin_webrtc_signalling = { path="signalling", package = "gst-plugin-webrtc-signalling" }
|
2022-10-31 09:02:07 +00:00
|
|
|
human_bytes = "0.4"
|
2024-04-12 17:10:42 +00:00
|
|
|
rand = "0.8"
|
2022-07-12 21:13:38 +00:00
|
|
|
url = "2"
|
2022-08-16 14:44:41 +00:00
|
|
|
|
2024-04-12 17:10:42 +00:00
|
|
|
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 }
|
2023-04-06 22:41:16 +00:00
|
|
|
parse_link_header = {version = "0.3", features = ["url"]}
|
2024-04-12 17:10:42 +00:00
|
|
|
async-recursion = { version = "1.0.0", optional = true }
|
2023-04-06 22:41:16 +00:00
|
|
|
|
2024-07-11 16:45:16 +00:00
|
|
|
livekit-protocol = { version = "0.3, < 0.3.4", optional = true }
|
2024-04-12 17:10:42 +00:00
|
|
|
livekit-api = { version = "0.3", default-features = false, features = ["signal-client", "access-token", "native-tls"], optional = true }
|
2023-06-21 19:54:00 +00:00
|
|
|
|
2024-07-18 19:55:38 +00:00
|
|
|
warp = {version = "0.3", optional = true, features = ["tls"] }
|
2023-10-16 06:22:58 +00:00
|
|
|
ctrlc = {version = "3.4.0", optional = true }
|
|
|
|
|
2024-07-17 17:50:16 +00:00
|
|
|
tracing = { version = "0.1", features = ["log"] }
|
|
|
|
tracing-subscriber = { version = "0.3", features = ["registry", "env-filter"] }
|
|
|
|
tracing-log = "0.2"
|
2023-07-19 05:05:33 +00:00
|
|
|
|
2022-08-16 14:44:41 +00:00
|
|
|
[dev-dependencies]
|
2024-04-03 17:10:40 +00:00
|
|
|
gst-plugin-rtp = { path = "../rtp" }
|
2024-04-14 14:50:33 +00:00
|
|
|
tokio = { version = "1", features = ["signal"] }
|
2022-08-16 14:44:41 +00:00
|
|
|
clap = { version = "4", features = ["derive"] }
|
2024-04-12 17:10:42 +00:00
|
|
|
regex = "1"
|
2022-08-16 14:44:41 +00:00
|
|
|
|
|
|
|
[lib]
|
|
|
|
name = "gstrswebrtc"
|
|
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
path = "src/lib.rs"
|
|
|
|
|
|
|
|
[build-dependencies]
|
2024-02-05 13:35:07 +00:00
|
|
|
gst-plugin-version-helper.workspace = true
|
2022-08-16 14:44:41 +00:00
|
|
|
|
|
|
|
[features]
|
2024-07-18 19:55:38 +00:00
|
|
|
default = ["v1_22", "aws", "janus", "livekit", "whip", "web_server"]
|
2022-08-16 14:44:41 +00:00
|
|
|
static = []
|
|
|
|
capi = []
|
2023-06-12 13:17:25 +00:00
|
|
|
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"]
|
2022-11-07 17:51:48 +00:00
|
|
|
doc = []
|
2022-08-16 14:44:41 +00:00
|
|
|
|
2024-04-12 17:10:42 +00:00
|
|
|
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"]
|
2023-10-16 06:22:58 +00:00
|
|
|
whip = ["dep:async-recursion", "dep:reqwest", "dep:warp", "dep:ctrlc"]
|
2024-07-18 19:55:38 +00:00
|
|
|
web_server = ["dep:warp"]
|
2024-04-12 17:10:42 +00:00
|
|
|
|
2022-08-16 14:44:41 +00:00
|
|
|
[package.metadata.capi]
|
2023-08-09 10:54:34 +00:00
|
|
|
min_version = "0.9.21"
|
2022-08-16 14:44:41 +00:00
|
|
|
|
|
|
|
[package.metadata.capi.header]
|
|
|
|
enabled = false
|
|
|
|
|
|
|
|
[package.metadata.capi.library]
|
|
|
|
install_subdir = "gstreamer-1.0"
|
|
|
|
versioning = false
|
2023-08-09 10:54:34 +00:00
|
|
|
import_library = false
|
2022-08-16 14:44:41 +00:00
|
|
|
|
|
|
|
[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"
|
2023-05-23 22:10:03 +00:00
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "webrtcsink-high-quality-tune"
|
2023-09-28 14:58:45 +00:00
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "webrtcsink-custom-signaller"
|
2024-04-03 17:10:40 +00:00
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "webrtc-precise-sync-send"
|
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "webrtc-precise-sync-recv"
|
2023-10-16 06:22:58 +00:00
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "whipserver"
|
|
|
|
required-features = [ "whip" ]
|
2024-09-20 13:45:38 +00:00
|
|
|
|
|
|
|
[[example]]
|
|
|
|
name = "webrtcsink-define-encoder-bitrates"
|