gstreamer-rs/gstreamer-utils/Cargo.toml
Thibault Saunier f3bba21faa Introduce StreamProducer
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)
2022-05-11 10:14:54 -04:00

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']