Sebastian Dröge
9acacbb320
ci: Allow clippy::upper_case_acronyms
...
That would otherwise change a lot of API in confusing ways, e.g. RTSP -> Rtsp
and would be inconsistent with the naming in C.
2021-03-25 21:12:05 +02:00
Sebastian Dröge
5e89d345d8
sodium: Pass &Path instead of &PathBuf
2021-03-25 20:26:15 +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
9d359d9341
ci: Update to dav1d 0.8.2
2021-03-25 18:20:05 +02:00
Sebastian Dröge
3a9a937bfd
Add license files to all new plugins
2021-03-22 20:10:29 +02:00
Sebastian Dröge
b919d226b1
threadshare: Update to socket2 0.4
2021-03-21 12:57:10 +02:00
Mathieu Duponchelle
d9e727050c
video: implement webp decoder around libwebp-sys2 crate
...
Unlike webpdec from -bad, this element inherits from GstElement
and can decode animated webp data.
2021-03-20 10:53:20 +02:00
Matthew Waters
359c07203e
gst: don't use volatile to mean atomic
...
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead. GCC 11 has started warning about using volatile
with atomic operations.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
2021-03-19 17:24:25 +11:00
Mathieu Duponchelle
a500166082
cea608overlay: remove debug prints
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/480 >
2021-03-17 14:22:00 +01:00
Mathieu Duponchelle
0335893559
closedcaption: implement cea608tojson element
...
This element outputs the same format expected by tttocea608 in
json mode.
It notably differs from cea608tott in that it only uses libcaption's
low-level API, as it needs to maintain its own view of the current
state of the screen, and make fine-grained decisions as to when
to output data and how to timestamp it.
It covers a large portion of the 608 spec, with the exception of
a few features that probably haven't ever seen widespread usage,
those are listed in a TODO list at the top.
It has been tested with a reference file produced by CEA and covers
all the features it demonstrates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/480 >
2021-03-17 14:22:00 +01:00
Pablo Nieto
50548c8e6a
Merge pull request #55 from sdroege/sink
...
Add initial version of NDI sink
2021-03-15 13:01:43 +01:00
Mathieu Duponchelle
11238579a5
tttocea608: pad immediately for the duration of the input buffer
...
Pushing the pending padding once we receive the following gap
or buffer means we will push it too late otherwise.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/480 >
2021-03-12 11:20:44 +01:00
Sebastian Dröge
b57c50bdb9
deny: Update
2021-03-10 11:07:39 +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
aa354058f5
Update pretty-assertions to 0.7, async-tungstenite to 0.13 and num-rational to 0.4
...
Also get rid of the funty workaround as nom now depends on the right
version.
2021-03-09 11:42:33 +02:00
Sebastian Dröge
39a75632c8
threadshare: Update for glib subclass API cleanups
2021-03-08 12:50:03 +02:00
Sebastian Dröge
9721b3e762
fallbackswitch: Update bundled aggregator bindings with glib subclass API cleanups
2021-03-08 12:43:05 +02:00
Sebastian Dröge
dc0c5f7611
Update for new #[glib::object_subclass] attribute macro
2021-03-07 18:27:00 +02:00
Sebastian Dröge
2345c455c1
Add initial version of NDI sink
...
The sink can accept audio or video directly, or if both should be
provided at once it is necesary to use the ndisinkcombiner before the
ndisink to merge both audio and video into the same stream.
Fixes https://github.com/teltek/gst-plugin-ndi/issues/10
2021-02-26 11:00:23 +02:00
Sebastian Dröge
e7b3b87757
Add safe bindings for the send API
...
Including creation of frames from GStreamer buffers.
2021-02-26 11:00:23 +02:00
Luke Moscrop
83962cbb8c
Add FFI bindings for NDIlib_send_instance_t and related functions
2021-02-26 11:00:23 +02:00
Sebastian Dröge
84e4fe7f59
Add new timestamp mode based on the receive time and timecode
...
In addition to the old one based on the receive time and timestamp.
Also make that new mode the default as it will usually give more
accurate results because the timestamp is just the send time while the
timecode is usually set by the sender based on the media timestamps.
2021-02-26 11:00:23 +02:00
Samuel Alonso Rodriguez
a02fe56871
Merge pull request #54 from sdroege/cleanups
...
Various minor cleanups
2021-02-26 09:37:16 +01:00
Sebastian Dröge
5dd0a23986
threadshare: Update for glib::Type API changes
2021-02-25 13:12:12 +02:00
Sebastian Dröge
4e93604fe9
Fix various clippy warnings
2021-02-23 12:46:27 +02:00
Sebastian Dröge
bb1e1b1529
Use glib GEnum derive macro instead of implementing this manually
2021-02-23 12:40:28 +02:00
Sebastian Dröge
0aef5152a7
Simplify code for Rust 2018 a bit
2021-02-23 12:37:24 +02:00
Sebastian Dröge
eee4a65d19
Update to byte-slice-cast 1.0 and switch from lazy_static to once_cell
2021-02-23 12:29:04 +02:00
Sebastian Dröge
0616c18703
Update for changed GLib signals API
2021-02-22 17:20:40 +02:00
Mathieu Duponchelle
7c61fd9e7a
awstranscriber: add vocabulary property
...
AWS offers the option of creating "vocabularies", lists of words
that are likely to be encountered. Those can be created through
the AWS console, and are given a name. That name can then be
specified when starting a transcription job.
2021-02-19 21:54:08 +01: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
a7df50e68f
ccdetect: fix 608 detection
...
When cc_type is 00 or 01 the CC is 608 data, the last bit only
denotes the field
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474 >
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle
cc402f769c
cea608overlay: support all VideoCaptionType meta
...
Also expose a field property, to allow selecting CC for a
specific field when the information is available. Defaults
to automatically picking the first field encountered.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474 >
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle
3c982a3de0
ccdetect: extract CDP parser to a separate module
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474 >
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle
19611f0ebe
tttocea608: be more conservative when inserting spaces
...
We don't need to insert a space when starting a new line,
or before punctuation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474 >
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle
20607fe346
tttocea608: expose origin-column and origin-row properties
...
These can be controlled more precisely using json as the input
format, but exposing them as properties is still useful when
the input format is text.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474 >
2021-02-15 19:25:18 +00:00
Mathieu Duponchelle
126df546c0
tttocea608: make mode property mutable in PLAYING
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474 >
2021-02-15 19:25:18 +00: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
1cd5d5ef45
Temporarily depend on funty 1.1.0 to work around breakage in 1.2.0
...
See https://github.com/myrrlyn/funty/issues/3
2021-02-14 11:07:26 +02:00
Sebastian Dröge
bd7cc85e72
deny: Update
2021-02-12 09:59:20 +02:00
Sebastian Dröge
cbda137fbf
Fix various warnings from clippy 1.50
2021-02-09 18:57:34 +02:00
Jan Schmidt
f63c4284c1
fallbackswitch: Fix draining of the backup pad.
...
When not autoswitching between the primary and fallback pad, make sure
to drain the disabled pad to the current running time, and fix the
drain_pad_to_time() function to use the correct running time variable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/472 >
2021-02-05 03:24:02 +11: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
1a826caf75
cea608overlay: Handle errors when rendering captions more gracefully
...
Just don't output anything and log an error instead of panicking.
2021-01-31 11:18:37 +02:00
Sebastian Dröge
78c0ea6a4c
dav1d: Update to dav1d-rs 0.6
2021-01-25 14:55:25 +02:00
Sebastian Dröge
d4ce1a33f2
Update for glib/gstreamer bindings API changes
2021-01-25 14:43:05 +02:00
Mathieu Duponchelle
875c3efb91
tttocea608: implement paint-on mode
...
That mode has been mostly obsoleted by roll-up modes, but let's
include it for completeness' sake.
2021-01-20 02:29:19 +01:00
Mathieu Duponchelle
13efa59252
closedcaption: implement a tttojson element
...
That new element can for example be used to serialize the output
of awstranscribe, ready for further editing
2021-01-20 02:29:19 +01:00