Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-03-07Update for new #[glib::object_subclass] attribute macroSebastian Dröge
2021-02-25threadshare: Update for glib::Type API changesSebastian Dröge
2021-02-22Update for changed GLib signals APISebastian Dröge
2021-02-19awstranscriber: add vocabulary propertyMathieu Duponchelle
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-19text: new element for text processing: regexMathieu Duponchelle
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-15ccdetect: fix 608 detectionMathieu Duponchelle
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-15cea608overlay: support all VideoCaptionType metaMathieu Duponchelle
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-15ccdetect: extract CDP parser to a separate moduleMathieu Duponchelle
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474>
2021-02-15tttocea608: be more conservative when inserting spacesMathieu Duponchelle
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-15tttocea608: expose origin-column and origin-row propertiesMathieu Duponchelle
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-15tttocea608: make mode property mutable in PLAYINGMathieu Duponchelle
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474>
2021-02-15textwrap: use accumulate-time as a latencyMathieu Duponchelle
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-15textwrap: use the lines property in accumulate mode tooMathieu Duponchelle
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-15textwrap: do not insert spaces before punctuationMathieu Duponchelle
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/474>
2021-02-14Temporarily depend on funty 1.1.0 to work around breakage in 1.2.0Sebastian Dröge
See https://github.com/myrrlyn/funty/issues/3
2021-02-12deny: UpdateSebastian Dröge
2021-02-09Fix various warnings from clippy 1.50Sebastian Dröge
2021-02-04fallbackswitch: Fix draining of the backup pad.Jan Schmidt
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-01-31Use gst::PARAM_FLAG_MUTABLE_PLAYING and others consistently everywhereSebastian Dröge
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/139
2021-01-31cea608overlay: Handle errors when rendering captions more gracefullySebastian Dröge
Just don't output anything and log an error instead of panicking.
2021-01-25dav1d: Update to dav1d-rs 0.6Sebastian Dröge
2021-01-25Update for glib/gstreamer bindings API changesSebastian Dröge
2021-01-20tttocea608: implement paint-on modeMathieu Duponchelle
That mode has been mostly obsoleted by roll-up modes, but let's include it for completeness' sake.
2021-01-20closedcaption: implement a tttojson elementMathieu Duponchelle
That new element can for example be used to serialize the output of awstranscribe, ready for further editing
2021-01-20tttocea608: in-depth refactoring, support for new input formatMathieu Duponchelle
Up to now, tttocea608 supported text/utf8, and no interface to control the positioning of closed captions apart from new lines in the input text. CEA 608 supports a larger set of features than that, such as positioning CC precisely in its 32 x 15 grid, styling text, switching from one mode to another, resetting the base row in roll-up mode etc .. A custom, JSON-based format is now supported by the element (caps application/x-json, format=cea608), allowing users to control those features in a pretty advanced manner. A side effect of this is that the approach previously used by the element to ensure frame-accurate CC display is now untenable: where we knew before that an input buffer would at most span 74 buffers and calculate a somewhat reasonable latency based on that, this is no longer possible. Instead we pick the approach most CC encoders seem to pick, and accept a certain latency at display time: for example the flipping of the back buffer to the display buffer for a 10-character text buffer will occur 7 frames after its PTS. This has obvious benefits in terms of code complexity and should generally be acceptable. + Removes a now irrelevant test, updates other tests + Extracts the Mode enum to the root of the crate, it will be used by another element in a follow-up commit
2021-01-20textwrap: expose accumulate-time propertyMathieu Duponchelle
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-20Add new text/json crateMathieu Duponchelle
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-19libcaption: implement eia608_to_textMathieu Duponchelle
2021-01-19libcaption: fix bit set on indent preamblesMathieu Duponchelle
style preambles look like: |P|0|0|1|C|0|ROW| |P|1|N|0|STYLE|U| and column preambles look like: |P|0|0|1|C|0|ROW| |P|1|N|1|CURSR|U| Both preambles go through eia608_row_pramble(), the value they pass as the x parameter is supposed to hold 4 bits, either 0|STYLE or 1|CURSR This value then gets bit-shifted by 1 and or'd in the second byte. The value is also and' with 0x1E to ensure it can't leak into the upper bits. The previous code resulted in x being a 5-bit value, 0x10 (0b10000). This resulted in outputting a style preamble, as 0x10 << 1 & 0x1E is 0b00000. When the indent was 0 (the usual case), this went undetected, but with any other value it resulted in no indent being applied, but the text getting colored or italicized. This patch fixes x to have the correct value of 0x8 | indent.
2021-01-19libcaption: fix parity code calculationMathieu Duponchelle
A misplaced parenthesis was causing the odd parity bit to be set based on an incomplete version of the preamble
2021-01-19fallbackswitch,togglerecord: Don't apply clipped PTS to buffer DTSSeungha Yang
Setting DTS on raw video buffers doesn't make sense and it's even wrong in case of compressed video stream because PTS might be able to go back when B frames are placed, but DTS is expected to be monotonically increased.
2021-01-16deny.toml: UpdateSebastian Dröge
2021-01-15rav1enc: Make use of the opaque API to map frames/packets to the video ↵Sebastian Dröge
encoder frames
2021-01-15rav1enc: Update to rav1e 0.4Sebastian Dröge
2021-01-09deny: UpdateSebastian Dröge
2021-01-09Update to rand 0.8Sebastian Dröge
2021-01-09rusoto: Port to nom 6Sebastian Dröge
2021-01-09rusoto: Port to tokio 1.0Sebastian Dröge
2021-01-09requesthttpsrc: Port to tokio 1.0Sebastian Dröge
2021-01-07togglerecord: Update recording state on EOSSeungha Yang
If all input streams are in EOS state, update recording state to Stopped and notify the change as well
2021-01-07meson: bump minimal version to 0.56Guillaume Desmottes
Needed because of substring(). Fix #138
2021-01-04meson: check if cargo-c is installedGuillaume Desmottes
2021-01-04ci: install cargo-c to proper locationGuillaume Desmottes
Need to define CARGO_HOME so it's installed to the same places as the rest of the Rust tools.
2021-01-04ci: test linking on all static pluginsGuillaume Desmottes
Will ensure that our static libraries and pkg-config files are properly generated.
2021-01-04ci: factor out iterate_plugins()Guillaume Desmottes
Will be re-used for another test. Also explicitly list the 'rs' prefixed plugins.
2021-01-04meson: install plugins pc filesGuillaume Desmottes
2021-01-04meson: use cargo-cGuillaume Desmottes
We now have to run 'cbuild' and 'ctest' on each plugin individually. Replace plugins_rep key by the source path so we can easily discard the excluded plugins.
2021-01-04use cargo-c to produce cdy and static libsGuillaume Desmottes
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-04ci: install cargo-cGuillaume Desmottes
2021-01-02CI: Remove unnecessary lint-ignore for clippy::cast_losslessMarijn Suijten