mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-11-29 15:01:07 +00:00
625fce3934
Task state machines used to execute in an executor from the Futures crate. State transitions actions and iteration functions were then spawned on the target threadshare Context. This commit directly spawns the task state machine on the threadshare Context. This simplifies code a bit and paves the way for the changes described in [1]. Also introduces struct `StateMachineHandle`, which gather together fields to communicate and synchronize with the StateMachine. Renamed `StateMachine::run` as `spawn` and return `StateMachineHandle`. [1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/793#note_1464400
73 lines
2 KiB
TOML
73 lines
2 KiB
TOML
[package]
|
|
name = "gst-plugin-threadshare"
|
|
version = "0.9.0"
|
|
authors = ["Sebastian Dröge <sebastian@centricular.com>"]
|
|
license = "LGPL-2.1-or-later"
|
|
description = "Threadshare Plugin"
|
|
repository = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs"
|
|
edition = "2021"
|
|
rust-version = "1.57"
|
|
|
|
[dependencies]
|
|
async-task = "4.3.0"
|
|
concurrent-queue = "1.2.2"
|
|
flume = "0.10.13"
|
|
futures = "0.3.21"
|
|
libc = "0.2"
|
|
gio = { git = "https://github.com/gtk-rs/gtk-rs-core" }
|
|
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
|
|
gst-net = { package = "gstreamer-net", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
|
|
gst-rtp = { package = "gstreamer-rtp", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
|
|
once_cell = "1"
|
|
pin-project-lite = "0.2.0"
|
|
polling = "2.2.0"
|
|
rand = "0.8"
|
|
slab = "0.4.7"
|
|
socket2 = {features = ["all"], version = "0.4"}
|
|
waker-fn = "1.1"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
winapi = { version = "0.3.9", features = ["winsock2", "processthreadsapi"] }
|
|
|
|
[dev-dependencies]
|
|
gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
|
|
gst-app = { package = "gstreamer-app", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
|
|
|
|
[lib]
|
|
name = "gstthreadshare"
|
|
crate-type = ["cdylib", "rlib"]
|
|
path = "src/lib.rs"
|
|
|
|
[[example]]
|
|
name = "benchmark"
|
|
path = "examples/benchmark.rs"
|
|
|
|
[[example]]
|
|
name = "udpsrc-benchmark-sender"
|
|
path = "examples/udpsrc_benchmark_sender.rs"
|
|
|
|
[[example]]
|
|
name = "tcpclientsrc-benchmark-sender"
|
|
path = "examples/tcpclientsrc_benchmark_sender.rs"
|
|
|
|
[build-dependencies]
|
|
gst-plugin-version-helper = { path="../../version-helper" }
|
|
cc = "1.0.38"
|
|
pkg-config = "0.3.15"
|
|
|
|
[features]
|
|
static = []
|
|
capi = []
|
|
|
|
[package.metadata.capi]
|
|
min_version = "0.8.0"
|
|
|
|
[package.metadata.capi.header]
|
|
enabled = false
|
|
|
|
[package.metadata.capi.library]
|
|
install_subdir = "gstreamer-1.0"
|
|
versioning = false
|
|
|
|
[package.metadata.capi.pkg_config]
|
|
requires_private = "gstreamer-1.0, gstreamer-net-1.0, gstreamer-rtp-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
|