GStreamer plugins written in Rust. *These plugins can be used by applications written in other programming languages as well of course, they are just like any other GStreamer plugins available on the system.*
Find a file
Sebastian Dröge 2dfca38977 threadshare: Turn the single-threaded executor until no futures are left to be run before waiting
Otherwise in e.g. a pipeline like
  ts-udpsrc ! ts-queue ! fakesink
the first turn would only get a packet and queue it up, then we would
wait due to throttling and only then we would forward the packet from
the queue (but not poll the socket again), wait again due to throttling
and only then poll and get the next packet.

See https://github.com/tokio-rs/tokio/issues/310
2018-11-05 13:36:47 +02:00
gst-plugin create plugin_register_static in plugin_define! 2018-11-04 20:24:20 +01:00
gst-plugin-audiofx use BoolError for plugin registration 2018-11-04 20:24:20 +01:00
gst-plugin-file use BoolError for plugin registration 2018-11-04 20:24:20 +01:00
gst-plugin-flv use BoolError for plugin registration 2018-11-04 20:24:20 +01:00
gst-plugin-http use BoolError for plugin registration 2018-11-04 20:24:20 +01:00
gst-plugin-simple use BoolError for plugin registration 2018-11-04 20:24:20 +01:00
gst-plugin-threadshare threadshare: Turn the single-threaded executor until no futures are left to be run before waiting 2018-11-05 13:36:47 +02:00
gst-plugin-togglerecord register plugin static in integration test 2018-11-04 20:24:20 +01:00
gst-plugin-tutorial use BoolError for plugin registration 2018-11-04 20:24:20 +01:00
.gitignore Update gitignore for Cargo.lock and vim files 2018-10-28 10:20:54 +00:00
.gitlab-ci.yml First run lints, then tests 2018-11-04 18:52:31 +02:00
.travis.yml Remove travis cargo cache 2018-10-05 17:19:30 +03:00
Cargo.toml Move gobject-subclass to its own repository 2018-05-01 17:55:27 +03:00
LICENSE-APACHE Change license from LGPLv2.1+ to Apache2/MIT 2017-02-16 17:52:27 +02:00
LICENSE-LGPLv2 Add gst-plugin-togglerecord 2017-12-05 09:56:58 +02:00
LICENSE-MIT Change license from LGPLv2.1+ to Apache2/MIT 2017-02-16 17:52:27 +02:00
Makefile updated Makefile to use cargo build all 2017-08-01 19:15:27 +03:00
README.md Point to the new repo location in README.md 2018-11-03 20:55:29 +02:00

NOTE: The canonical repository for gst-plugin-rs has moved to freedesktop.org GitLab!

gst-plugin-rs crates.io pipeline status

Infrastructure for writing GStreamer plugins and elements in the Rust programming language, and a collection of various GStreamer plugins.

Documentation for the crate containing the infrastructure for writing GStreamer plugins in Rust, gst-plugin, can be found here. The whole API builds upon the application-side GStreamer bindings. Check the README.md of that repository also for details about how to set-up your development environment.

Various example plugins can be found in the GIT repository. A blog post series about writing GStreamer plugins/elements can be found here2.

For background and motivation, see the announcement blogpost and the follow-up blogposts 1, 2, 3. Note that the overall implementation has changed completely since those blogposts were written.

LICENSE

gst-plugin-rs and all crates contained in here that are not listed below are licensed under either of

at your option.

gst-plugin-togglerecord is licensed under the Lesser General Public License (LICENSE-LGPLv2) version 2.1 or (at your option) any later version.

GStreamer itself is licensed under the Lesser General Public License version 2.1 or (at your option) any later version: https://www.gnu.org/licenses/lgpl-2.1.html

Contribution

Any kinds of contributions are welcome as a pull request.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in gst-plugin-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.