Commit graph

54 commits

Author SHA1 Message Date
Sebastian Dröge 75327b72fa Update versions to 0.7.2 2021-08-30 19:38:37 +03:00
Sebastian Dröge 4e0c3374bd Update various dependencies 2021-08-30 12:47:08 +03:00
Sebastian Dröge 089abdb5d4 Add capi feature to all plugin crates
This fixes the build with cargo-c 0.9.2.
2021-08-12 12:06:30 +03:00
Sebastian Dröge b345f18570 json: Add cargo-c metadata 2021-08-05 18:13:43 +03:00
Sebastian Dröge 0af7a0c913 Update versions to 0.7.1 2021-08-05 18:12:54 +03:00
Mathieu Duponchelle c1e558c93c regex: don't hold state lock when pushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/533>
2021-08-05 15:52:03 +03:00
Ruben Gonzalez 232f0eef96 Delete minimum GStremer required version for some plugins
Tested building the pluging with cargo-c and running gst-inspect-1.0
in a Ubuntu Xenial 18.04 LTS. It contains GStreamer 1.8.3.
2021-08-05 15:51:45 +03:00
Sebastian Dröge afdd000d92 Fix various needless-borrow clippy warnings and others 2021-08-05 14:43:08 +03:00
Sebastian Dröge 2a15127368 Update gst-plugin-version-helper dependency with the correct version 2021-07-09 13:46:10 +03:00
Sebastian Dröge 2ac4f9896d Update versions to 0.7.0 2021-07-09 13:43:29 +03:00
Sebastian Dröge 686196f885 Update crate dependencies from git to released versions 2021-07-02 12:16:59 +03:00
Mathieu Duponchelle 77c59f4f13 textwrap: switch accumulate-time property to uint64
and use 0 instead of -1 to disable accumulation. In practice 0
already had the same effect, and this lets us get rid of unsafe
code that actually breaks inspection of the element.
2021-06-23 16:33:07 +02:00
François Laignel 5439f14e57 fix clippy warnings 2021-06-05 10:36:22 +02:00
François Laignel b8ad30610b text: migrate to new ClockTime design 2021-06-05 10:36:21 +02:00
François Laignel 8dfc872544 use gst::glib where applicable 2021-06-03 20:53:16 +02:00
Sebastian Dröge 04a60b8f46 Update repository URL for gtk-rs "core" crates 2021-05-13 09:50:08 +03:00
Sebastian Dröge 5660df7f70 regex: Fix compilation after array ParamSpec constructor rename 2021-05-07 10:17:14 +03:00
Sebastian Dröge 15cf738616 Update for Value trait refactoring 2021-04-25 15:48:55 +03:00
François Laignel 67c5871957 fix-getters-calls 0.3.0 pass 2021-04-20 18:19:58 +02:00
François Laignel 27bc5c89ca fix-getters-def 0.3.0 pass 2021-04-20 18:19:58 +02:00
François Laignel 7d17f88941 post fix-getters manual updates 2021-04-13 17:24:20 +02:00
François Laignel 06accc8d98 fix-getters-{def,calls} pass 2021-04-12 15:57:19 +02:00
Sebastian Dröge f8adb42f7b json: Don't needlessly create a full-range subslice of a slice 2021-03-25 19:44:56 +02:00
Sebastian Dröge 3a9a937bfd Add license files to all new plugins 2021-03-22 20:10:29 +02:00
Sebastian Dröge 2cada57efc Update for the subclassing glib/gstreamer bindings API changes 2021-03-09 17:07:13 +02:00
Sebastian Dröge dc0c5f7611 Update for new #[glib::object_subclass] attribute macro 2021-03-07 18:27:00 +02:00
Mathieu Duponchelle 77bf0c945e text: new element for text processing: regex
The element expects an array of "commands", as GstStructures,
in the form:

operation, pattern=<pattern>, ...

The only operation implemented for now is replace-all, eg:

replace-all, pattern=foo, replacement=bar

Other operations can be implemented if useful in the future,
eg. "match" could post a message to the bus when the pattern
is encountered.

The main use case for this is automatic speech recognition,
as implemented by eg awstranscribe as users may want to replace
swear words with tamer language.

Commands are applied in order.

The interface is usable through the CLI with the usual escaping
strategies, though trying to pass in actual regular expressions
through it is a bit tricky, as this introduces yet another
level of escaping.
2021-02-19 15:58:14 +01:00
Mathieu Duponchelle 2cde437bee textwrap: use accumulate-time as a latency
This slightly amends the semantic of the property: prior to that
commit it represented the interval since the last accumulated buffer
after which the current line(s) had to be output even if incomplete.

After this commit, it represents the interval between "now" and the
first accumulated buffer, making it possible to report a useful
latency.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474>
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle 75170e5162 textwrap: use the lines property in accumulate mode too
In that mode, textwrap accumulates and pushs out lines of text
up to accumulate-time. We can still make use of the lines property
in that mode, and accumulate as many lines of text as specified.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474>
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle ab251ec573 textwrap: do not insert spaces before punctuation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474>
2021-02-15 19:25:18 +00:00
Sebastian Dröge cbda137fbf Fix various warnings from clippy 1.50 2021-02-09 18:57:34 +02:00
Sebastian Dröge b649e9b076 Use gst::PARAM_FLAG_MUTABLE_PLAYING and others consistently everywhere
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/139
2021-01-31 15:43:00 +02:00
Sebastian Dröge d4ce1a33f2 Update for glib/gstreamer bindings API changes 2021-01-25 14:43:05 +02:00
Mathieu Duponchelle cbf1266a8c textwrap: expose accumulate-time property
In its standard mode, textwrap simply splits up text in chained
buffers into multiple lines / buffers, not keeping any state.

When accumulate-time is specified, multiple input buffers will be
wrapped together, outputting one-line buffers of text once a
sufficient width (specified by the columns property) is reached,
or the interval between two input buffers is greater than
accumulate-time.

This is useful to format the output of an element such as
awstranscribe, which outputs its transcription with one buffer
per word.
2021-01-20 02:29:19 +01:00
Mathieu Duponchelle b062f63ec3 Add new text/json crate
This new crate consists of two elements, jsongstenc and jsongstparse

Both these elements can deal with an ndjson based format, consisting
for now of two item types: "Buffer" and "Header"

eg:

{"Header":{"format":"foobar"}}
{"Buffer":{"pts":0,"duration":43,"data":{"foo":"bar"}}}

jsongstparse will interpret this by first sending caps
application/x-json, format=foobar, then a buffer containing
{"foo":"bar"}, timestamped as required.

Elements further downstream can then interpret the data further.

jsongstenc will simply perform the reverse operation.
2021-01-20 02:29:19 +01:00
Guillaume Desmottes 8bc2e5ebb8 use cargo-c to produce cdy and static libs
cargo-c will produce a pkg-config file making it easier to statically
link plugins.

Also add 'static' features for plugins depending on < 1.14 as this is the
minimal required version to use static linking because of ABI changes in
core.
2021-01-04 12:26:45 +01:00
Sebastian Dröge 514f6ea7ec textwrap: Remove workaround that is not needed anymore with textwrap 0.13.2 2020-12-30 18:49:13 +02:00
Sebastian Dröge 3d617371af Update for macro renames 2020-12-20 20:43:45 +02:00
Sebastian Dröge ea6c05e16c Update everything for glib macro renamings 2020-12-18 00:44:49 +02:00
Sebastian Dröge b5796f5773 textwrap: Update to textwrap 0.13 2020-12-11 12:25:47 +02:00
Sebastian Dröge 810f27886b text: Update to 2018 edition 2020-11-23 10:28:34 +02:00
Sebastian Dröge d56ae71e0e Update for ObjectImpl::get_property() being infallible now 2020-11-19 18:25:53 +02:00
Guillaume Desmottes b9f8ce9995 meson: add support for static build
There is no way to dynamically ask Cargo to build static or dynamic lib
so we have to build both and pick the one we care when doing the meson
processing.

Fix #88
2020-11-16 15:30:32 +01:00
Sebastian Dröge dbf108d9a4 text: Update for subclassing API changes 2020-11-15 18:25:42 +02:00
Sebastian Dröge 1f446f6b64 Switch to the combined gtk-rs and gstreamer-rs repositories 2020-11-01 10:24:57 +02:00
Sebastian Dröge 0eb777cf5a Update for removal of ObjectImpl::get_type_data() 2020-07-26 18:46:32 +03:00
Sebastian Dröge e9b61b733d Add LICENSE files to each individual crate 2020-07-10 13:06:28 +03:00
Sebastian Dröge d03c6cb26a Update various dependencies 2020-06-30 10:49:27 +03:00
Sebastian Dröge 9bb3e75fb9 Update to use the new pad builders for safely setting pad functions
Only two uses of unsafely setting the pad functions is left:
- fallbacksrc for overriding the chain function of the proxy pad of a
  ghost pad
- threadshare for overriding the pad functions after creationg, which
  probably needs some fixing at some point
2020-06-22 11:28:19 +03:00
Sebastian Dröge 60321edb8c Update for new_with_XXX/new_from_XXX function renaming 2020-06-16 11:56:48 +03:00