Commit graph

87 commits

Author SHA1 Message Date
Markus Ebner 750b29b76c gif: Add initial implementation of a gif encoder
- Implemented a simple gif encoder based on the rust crate "gif".
- Currently supported input pixel formats are RGB and RGBA
- The encoder dynamically changes frame delays to approximate the actual
  input framerate
- For the moment, each frame uses its own local colorpalette, leading to
  good image quality, but big files
- Every frame is currently a full frame. No incremental frames for now
- The produced GIF is currently compressed (LZW)
2020-02-25 08:45:22 +00:00
Ruben Gonzalez 7d3ab342d2 Add claxon based FLAC decoder.
Audio decoder element structure is based in `gst-plugin-lewton` (a lewton based Vorbis decoder created by @slomo)

The element assumes correctly parsed input from `flacparse`.

Implementation details:

* Claxon returned frames does not contain audio channels interleaved, the reorganization of the channels is done by the element.
* Claxon output buffers are always Vec<i32>, mapping to the correct type (depending on the audio format) is also done by the element.

Mono s16 and stereo_s32 test are provided.

Complete pipelines to test are:

```
gst-launch-1.0  -v souphttpsrc location=https://archive.org/download/MLKDream/MLKDream.flac ! queue2 !  flacparse ! flacdec ! audioconvert ! autoaudiosink
gst-launch-1.0  -v audiotestsrc ! audio/x-raw, format=S16LE, layout=interleaved, rate=44100, channels=1 ! audioconvert ! flacenc ! flacparse ! claxondec ! autoaudiosink
```

Fixes #71
2020-01-19 16:01:23 +00:00
Philippe Normand 84c40b872d dav1d: Add dav1ddec element
This element uses the Dav1d AV1 decoder library to decode AV1 video.
2019-12-24 15:10:58 +01:00
Arun Raghavan d18dbb85d8 rusoto: Rename s3 as rusoto
Will disambiguate from any other S3 plugins, and matches how we name
other plugins (soup, lewton, rav1e, ...).

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/issues/76
2019-10-21 13:10:28 +05:30
Sebastian Dröge d0978473d3 Add initial version of lewton based Vorbis decoder 2019-09-14 20:08:18 +03:00
Sebastian Dröge b401b2f243 fallbackswitch: New plugin providing a fallbackswitch element
Allows having a live input stream and falling back to another input
stream after a configurable timeout without any buffers received on the
main input.
2019-08-19 15:59:02 +00:00
ahamedsajeer.15 42d4d10b43 rshttpsrc: rename to reqwesthttpsrc 2019-06-26 18:28:12 +05:30
ahamedsajeer.15 dc45b7f8ac Add build.rs that provides a version number, release date and other details 2019-06-03 11:11:29 +00:00
Arun Raghavan a7d24506c2 Add a plugin to read data from Amazon S3
Moving from https://github.com/ford-prefect/gst-plugin-s3/ to have these
plugins in a central location.
2019-05-25 16:57:39 +02:00
Sebastian Dröge 150f672fde rav1e: Add AV1 encoder around rav1e crate 2019-05-25 15:01:18 +02:00
Guillaume Desmottes d7125aee68 Cargo: set opt-level to 1 in dev builds
We need some level of optimizations so the CDG decoder is usable in dev
build. '1' is suitable for debugging according to the doc.
2019-05-23 16:49:13 +02:00
Guillaume Desmottes cfe660ae82 cdg: add cdgdec element
CDG video decoder used to render karaoke videos.

Acting as a parser for now as we don't have cdgparse yet. I'll probably
implement it at some point once we have GstBaseParse bindings.
2019-05-23 16:49:13 +02:00
Jordan Petridis 8c03237949 Add libsodium-based encrypter/decrypter elements
With some changes by Sebastian Dröge <sebastian@centricular.com>
2019-05-09 12:29:39 +03:00
Sebastian Dröge 774110ec0a closedcaption: Add closed caption plugin with an MCC parser and encoder 2019-01-13 14:23:31 +02:00
Sebastian Dröge abe87fae12 Remove gst-plugin and gst-plugin-simple crates
They're not used anymore.
2019-01-03 23:58:00 +02:00
Sebastian Dröge 20bec35c68 Merge gst-plugin-threadshare into gst-plugin-rs 2018-11-05 13:40:43 +02:00
Sebastian Dröge 6803cb5fac Move gobject-subclass to its own repository 2018-05-01 17:55:27 +03:00
Dirk Van Haerenborgh 31a48c4baa Split out base object traits
This allows using this independent from GStreamer for subclassing e.g.
GIO or GTK GObjects.

Fixes https://github.com/sdroege/gst-plugin-rs/issues/28
Fixes https://github.com/sdroege/gst-plugin-rs/pull/32
2018-05-01 17:11:18 +03:00
Sebastian Dröge 20743b29c0 Add gst-plugin-tutorial sub-crate and rgb2gray element 2018-01-13 20:12:37 +02:00
Sebastian Dröge b25309a66a Add gst-plugin-togglerecord 2017-12-05 09:56:58 +02:00
Sebastian Dröge 393cd6236a Move simple Source/Sink/Demuxer traits to a separate crate
Fixes https://github.com/sdroege/gst-plugin-rs/issues/20
2017-10-11 13:32:44 +03:00
Sebastian Dröge 16b6d61e10 Improve release configuration a bit 2017-10-07 12:43:38 +03:00
Sebastian Dröge 80341fd90e Add audiofx plugin with audioecho element 2017-10-07 01:04:33 +03:00
Sebastian Dröge 19936e4eae Do LTO for release builds 2017-02-02 21:11:06 +02:00
Sebastian Dröge 89b0220e26 Build each component into its own GStreamer plugin 2016-12-23 19:04:32 +02:00
Sebastian Dröge 7ef2679cb5 Implement metadata handling 2016-12-23 17:36:14 +02:00
Sebastian Dröge 9e53c0a926 Simplify state handling
This is not too nice now as we have None values to unwrap, but the code
is at least less convoluted.
2016-12-23 17:36:14 +02:00
Sebastian Dröge 62d24efc04 WIP demuxer 2016-12-23 17:35:57 +02:00
Sebastian Dröge ed2bcf875a Use reqwest 0.2 release
It has the needed changes now
2016-12-23 17:35:31 +02:00
Sebastian Dröge f7148bd910 Port HTTP source from hyper to reqwest 2016-11-14 20:57:54 +02:00
Sebastian Dröge b23385e88f Add some more Buffer API and use explicit bitflags instead of magic numbers 2016-09-18 10:23:14 -04:00
Sebastian Dröge 3d83de761f Switch to cdylib crate type 2016-08-22 23:03:45 +03:00
Sebastian Dröge 546d67fa5a Add license and copyright notices 2016-05-15 18:54:09 +03:00
Sebastian Dröge b2b8332043 Add initial HTTP source based on Hyper
No seeking yet
2016-05-14 17:04:53 +03:00
Sebastian Dröge 15865ab86b Implement parsing of URIs in Rust 2016-05-14 12:34:50 +03:00
Sebastian Dröge 0b67ffc9c7 Add location property handling 2016-05-13 18:02:19 +03:00
Sebastian Dröge 9bb2d32c75 Initial commit 2016-05-13 16:35:48 +03:00