mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-05-19 08:48:09 +00:00
f3bba21faa
Introduce a new `gstreamer-utils` crate where we implement a `StreamProducer` structure that allows "producing" pipeline (Producers) pushing their data to 0 or several "consuming" pipelines. The Producer needs to push their data to an `appsink` which the `StreamProducer` controls and the "consumer" pipelines need to have an AppSrc which the same StreamProducer controls. It allows similare behavior as a `tee` element but with a simpler to handle addition and removal of "consumers" as well as a total decoupling of the various consumer, both between each others and the producer pipeline. This has simply been extracted from [webrtcsink](https://github.com/centricular/webrtcsink/blob/main/plugins/src/webrtcsink/utils.rs)
34 lines
1.2 KiB
TOML
34 lines
1.2 KiB
TOML
[package]
|
|
name = "gstreamer-utils"
|
|
version = "0.19.0"
|
|
authors = ["Mathieu Duponchelle <mathieu@centricular.com>", "Thibault Saunier <tsaunier@igalia.com>"]
|
|
categories = ["multimedia"]
|
|
description = "Exposes an object to build several Gst pipeline with one producer and several consumer"
|
|
repository = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs"
|
|
license = "MIT/Apache-2.0"
|
|
readme = "README.md"
|
|
homepage = "https://gstreamer.freedesktop.org"
|
|
documentation = "https://gstreamer.pages.freedesktop.org/gstreamer-rs/stable/latest/docs/gstreamer_utils/"
|
|
keywords = ["gstreamer", "multimedia", "audio", "video", "gnome"]
|
|
edition = "2021"
|
|
rust-version = "1.57"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
gst = { package = "gstreamer", path = "../gstreamer" }
|
|
gst_app = { package = "gstreamer-app", path = "../gstreamer-app" }
|
|
gst_video = { package = "gstreamer-video", path = "../gstreamer-video" }
|
|
once_cell = "1"
|
|
|
|
[dev-dependencies]
|
|
futures = { version = "0.3", features = ["executor"] }
|
|
gst_app = { package = "gstreamer-app", path = "../gstreamer-app" }
|
|
|
|
[features]
|
|
default = []
|
|
v1_16 = []
|
|
v1_18 = ['v1_16']
|
|
v1_20 = ['v1_18']
|
|
v1_22 = ['v1_20']
|