Commit graph

1235 commits

Author SHA1 Message Date
Mathieu Duponchelle
1a4e6d58f4 net/rusoto: implement parser for AWS transcription file
AWS can generate JSON files containing a full transcript, implement
a simple push parser to support the format.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/547>
2021-08-27 19:53:57 +00:00
Vivia Nikolaidou
6f14ebdfee togglerecord: Notify main_stream_cond on release_pad
Otherwise, it would deadlock when releasing first the primary stream and
then the secondary one, because it will wait in the "secondary stream"
handling for the main stream to be fed, which will never happen.
2021-08-27 11:59:33 +03:00
Sebastian Dröge
cfbc062743 deny.toml: Update 2021-08-26 09:44:43 +03:00
Sebastian Dröge
4a870af19c Update various dependencies 2021-08-26 09:44:43 +03:00
Christian Kohlstedde
a8a3a6ec3e ebur128level: Fix mode bitflags
Currently the flag of true peak and sample peak are the same and
therefore true peak always wins, sample peak never.
2021-08-25 08:23:18 +03:00
Sebastian Dröge
4894e7b3ee
Update for fallible Object::set_property_from_str() 2021-08-17 15:01:25 +03:00
Jordan Petridis
6b9f915286
ci: update base image to debian 11
Like it was done for the bindings [1]

Also update the ci-template sha

[1] https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/836
2021-08-17 15:01:25 +03:00
Jan Beich
f5cc0e50fe meson: optionalize pango dependency used by video/closedcaption
Similar to -Dpango=<auto|enabled|disabled> in gst-plugins-base.
2021-08-15 16:05:24 +00:00
Jan Beich
fced787a63 meson: inherit python3 version used by Meson itself
python3 symlink may not be available
2021-08-15 12:57:33 +00:00
Sebastian Dröge
848b296390 Add capi feature to all plugin crates
This fixes the build with cargo-c 0.9.2.
2021-08-11 20:51:36 +03:00
Sebastian Dröge
120f4ab84b json: Add cargo-c metadata 2021-08-05 18:26:47 +03:00
Mathieu Duponchelle
19dcb8159a fallbackswitch: only drop MISSING_DATA gap events pre queue
Regular gap events can be output by sources such as cefsrc in
normal operation, and should not trigger an active pad change.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/538>
2021-08-04 15:12:02 +00:00
Mathieu Duponchelle
b7d1c178a3 tttocea608: clean up locking
Locking order of state and settings was inconsistent, and causing
deadlocks. Fix and document it, consistently drop locks before
chaining up events / pushing and avoid sequentially unlocking /
relocking settings in the same local code path.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/539>
2021-08-03 18:23:53 +02:00
Stephan Seitz
dc28274f65 Fix typo in tutorial for identity plugin 2021-07-30 19:23:06 +02:00
Stephan Seitz
76198f4395 Fix typo in tutorial/src/lib: metdata -> metadata
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/537>
2021-07-30 16:59:41 +00:00
Sebastian Dröge
052365ba1a Fix various needless-borrow clippy warnings and others 2021-07-30 13:53:35 +03:00
Sebastian Dröge
67f566dd28 reqwest: Switch from hyperx to headers
The maintainer of hyperx has kind of special opinions and doesn't want
to play well with the rest of the ecosystem, see
https://github.com/dekellum/hyperx/pull/33 .

This currently causes cargo outdated to fail because of suboptimal
dependencies.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/159
2021-07-29 10:19:05 +03:00
Sebastian Dröge
ca892cf116 reqwest: Require GStreamer 1.10 for the tests
They use `Element::call_async()`
2021-07-29 10:18:25 +03:00
Mathieu Duponchelle
a051127cb1 aws_transcriber: expose lateness property
The default behavior for the transcriber is to output text buffers
synchronized with the input stream, introducing a configurable
latency.

For use cases where synchronization is not crucial, but latency
is, the lateness property can be used instead of or in combination
with the latency property, in order to introduce a configurable
offset with the input stream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/534>
2021-07-28 00:48:14 +02:00
Ruben Gonzalez
6e639dbfee version-helper: Fix repository URL 2021-07-27 19:58:07 +02:00
Mathieu Duponchelle
1123648aae regex: don't hold state lock when pushing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/533>
2021-07-27 02:16:09 +02:00
Ruben Gonzalez
54d8c5f6a9 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-07-20 21:49:24 +02:00
Mathieu Duponchelle
5397f4bfaf transcriberbin: remove leftover debug dot dumps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/531>
2021-07-15 23:24:29 +00:00
Sebastian Dröge
f733f90333 closedcaption/mccenc: Fix unit test
The expected output contains the plugin version.
2021-07-09 14:14:51 +03:00
Sebastian Dröge
24ec79cd1a Update versions to 0.8.0 for the master branch 2021-07-09 13:49:33 +03:00
Sebastian Dröge
1c3ae0f89a Update versions to 0.7.0 2021-07-09 13:49:21 +03:00
Sebastian Dröge
5a640f9f3d gst-plugin-version-helper: Fix documentation 2021-07-09 13:38:35 +03:00
Sebastian Dröge
b372c35f35 gst-plugin-version-helper: Update repository URL 2021-07-09 13:38:35 +03:00
SeaDve
82df25694a gifenc: Add property to configure speed
Fixes #157.
2021-07-05 11:50:41 +03:00
Mathieu Duponchelle
36b346e733 fallbacksrc: update-uri is not an action signal 2021-06-30 17:34:13 +02:00
Mathieu Duponchelle
d38a84ab79 fallbacksrc: add support for still images as primary
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/515>
2021-06-30 00:46:46 +00:00
Mathieu Duponchelle
ef41adf776 fallbacksrc: implement manual unblocking feature
This enables a use case for preparing slow to start up sources
ahead of time in a live cueing system, where a stream is scheduled
to start at some point in the future, and the application wants to
make sure it is ready for prime time by that time, instead of
spinning it up at the last moment and waiting for the stream to
actually come up.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/515>
2021-06-30 00:46:46 +00:00
Mathieu Duponchelle
29052b1acb fallbacksrc: implement send_event to forward EOS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/515>
2021-06-30 00:46:46 +00:00
Mathieu Duponchelle
0b08f855c5 fallbacksrc: send EOS on fallback-only stream
When both audio and video are enabled, but the primary stream
only has either, when that stream ends we want to end the other
fallback-only stream as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/515>
2021-06-30 00:46:46 +00:00
Mathieu Duponchelle
a5a80281f3 fallbackswitch: output buffers ASAP at startup
When only the backup pad is receiving buffers, and the primary
pad is a bit slow to start up (eg network source with buffering),
it makes for a better UX to output buffers from the backup pad
while waiting for the network source to make its move.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/515>
2021-06-30 00:46:46 +00:00
Mathieu Duponchelle
3cdc5870a1 transcriberbin: new high-level bin for speech to Closed Caption
This new element puts together some of the elements we've written
in recent times (awstranscriber, tttocea608, textwrap, cccombiner)
into a convenience high-level element.

The design of the element is AV in -> AV (+ CC metas) out.

The element exposes property to set and unset a "passthrough" mode,
during which the transcriber element's state is set to NULL but kept
in the bin, in order for the user to be able to set properties on
sub elements no matter what the current mode is, using the
GstChildProxy interface.

In addition, the element ensures that the latency it reports stays
fixed so that playback continues uninterrupted.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/528>
2021-06-30 02:07:01 +02:00
Sebastian Dröge
3561c0ee98 gst-plugin-version-helper: Add missing 3 backticks to README.md 2021-06-29 00:24:53 +03:00
Sebastian Dröge
b5375d2f21 gst-plugin-version-helper: Add README.md and fix up docs 2021-06-29 00:23:09 +03:00
Mathieu Duponchelle
23219c3c09 tttocea608: don't pad up to first input timestamp
When receiving data from a live upstream element, the first buffer
may have a non-0 timestamp (running time), and the element incorrectly
pushed padding buffers up to that timestamp, resulting in much confusion

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/527>
2021-06-25 23:26:30 +00:00
Mathieu Duponchelle
9415c50200 awstranscriber: further decouple output from input
As awstranscriber might in theory push out gap events without
any flow of input data, it needs to send its mandatory events
(stream-start, caps, segment) independently.

In addition, track a start time and use it to offset the 0-based
timestamps returned by AWS in order to output buffers timestamped
in the running-time domain, and perform item timing adjustment
only when dequeuing, instead of when queuing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/525>
2021-06-26 00:46:28 +02: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
Arun Raghavan
3a2d16f00c rusoto: s3sink: Bring back bucket, key and region properties
We don't want to drop these entirely while introducing the URI handler,
as that would break backwards compatibility.
2021-06-21 06:58:06 -04:00
Sebastian Dröge
0592e46e65 ci: Update image version 2021-06-20 11:54:06 +03:00
Sebastian Dröge
94ae345701 ci: Update to dav1d 0.9.0 2021-06-20 11:54:06 +03:00
Mathieu Duponchelle
640ce43fee awstranscriber: make use of new result stability AWS API option
<https://aws.amazon.com/blogs/machine-learning/amazon-transcribe-now-supports-partial-results-stabilization-for-streaming-audio/>

Amazon seem to have realized the previous iteration of their API
made it difficult to identify items from one result to the next,
which made the element much more complicated than it should have
been. With that new "stability" option, we can enqueue items as
soon as they stabilize, and simply rely on the current index in
the transcript to output them exactly once.

This also means the "use_partial_results" is now useless, as there
will be no difference in accuracy between a non-partial result and
and of its stable items that might have been pushed from previous
partial versions of the result.

The property is removed, instead a new option is exposed to let
users control how fast results should stabilize.

This greatly simplifies the code, and also improves the output as
punctuation doesn't need to be randomly discarded anymore.
2021-06-19 14:45:22 +02:00
Mathieu Duponchelle
d6f6f1a777 cea608overlay: expose "black-background" property
As stated in the spec:

> In addition, the user must have the capability to select a black
> background over which the captioned letters are displaced.

The property is MUTABLE_PLAYING
2021-06-18 09:48:44 +00:00
Mathieu Duponchelle
d15e97efb8 awstranscriber: expose optional session-id property
When set, it can be used to identify transcription sessions
a posteriori.
2021-06-17 00:54:14 +02:00
Sebastian Dröge
ada328df01 deny: Update 2021-06-08 08:52:31 +03:00
François Laignel
5439f14e57 fix clippy warnings 2021-06-05 10:36:22 +02:00
François Laignel
8f8f5bdff7 Allow clippy::blocks-in-if-conditions
It rejects code such as:

```rust
    if state
        .start_ts
        .zip(accumulate_time)
        .map_or(false, |(start_ts, accumulate_time)| {
            start_ts + accumulate_time < pts
        })
```

because it looks like:

```rust
if { true }
```
2021-06-05 10:36:21 +02:00