Commit graph

930 commits

Author SHA1 Message Date
Sebastian Dröge 634d231269 video/gif: Add description to Cargo.toml 2020-07-10 13:02:50 +03:00
Sebastian Dröge c259d75a21 video/gif: Don't set NON_DROPPABLE flag on buffers
It doesn't make sense in this context and the flag only exists since
1.12.
2020-07-10 13:02:50 +03:00
Sebastian Dröge c19a84bee1 video/dav1d/rav1e: Depend on gstreamer-video 1.12 for the 12 bit formats
Can be made conditional if someone needs that.
2020-07-10 13:02:42 +03:00
Sebastian Dröge eee93cd53c utils/fallbackswitch: Enable the v1_18 feature now that it exists 2020-07-10 12:50:48 +03:00
Sebastian Dröge 8fd222c87f Add LICENSE files to each individual crate 2020-07-10 12:50:48 +03:00
Sebastian Dröge 145eb7162c Add Cargo.lock file for the release branch
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/79
2020-07-10 12:50:48 +03:00
Sebastian Dröge 7182b85b41 Update dependency versions from git to releases 2020-07-10 12:50:48 +03:00
Sebastian Dröge 5e1ce7f9a7 utils/fallbacksrc: Proxy the uridecodebin3 buffer-duration property 2020-07-10 11:14:33 +03:00
Sebastian Dröge 2b892ec01a utils/fallbacksrc: Proxy the aggregator min-upstream-latency property as min-latency
The fallback stream will usually have a lower latency than the main
stream, so a too low latency would be configured if the fallback is
activated in the beginning.

This property allows to override this and does not require latency
reconfiguration.
2020-07-08 13:43:06 +03:00
Sebastian Dröge 45f547c4be fallbacksrc: Configure up to 5s of buffering on the fallback stream
imagefreeze in live mode can handle only up to 1 frame of buffering
itself.
2020-07-07 14:29:07 +03:00
Sebastian Dröge 879767599e utils/fallbackswitch: Allow buffers to be up to 40ms too late before considering them too late
This mirrors the processing-deadline property on various elements, but
for now just with a hardcoded value.
2020-07-07 10:21:24 +03:00
Sebastian Dröge 55f3349b39 utils/fallbackswitch: Timeout the main stream if buffers were too late for too long
Buffers are still forwarded until the timeout is reached even if they're
too late, but if they were continuously too late for more than the
duration of the timeout setting then switch to the fallback stream
instead.
2020-07-06 07:59:52 +00:00
Sebastian Dröge daa6cfbb6a utils/fallbacksrc: Add property to optionally restart the source on EOS
EOS might be unexpected and the stream might be supposed to run forever,
in which case it should transparently be restarted on EOS.
2020-07-03 15:37:36 +03:00
Sebastian Dröge 2903d4a66c fallbacksrc: Refactor some code to reduce code duplication 2020-07-03 09:53:55 +03:00
Sebastian Dröge 7945de32eb fallbackswitch: Report None as active-pad if we had no output yet
Instead of the main stream, pretending all to be ok.
2020-07-02 14:46:59 +03:00
Sebastian Dröge 44ad0a2f52 fallbacksrc: Differentiate between fallback and restart timeout
This also fixes the bug that the source wouldn't be restarted another
time if we switched to the fallback stream before and didn't at least
shortly switch to the normal stream. There was no timeout for this.

Based on a patch by Mathieu Duponchelle <mathieu@centricular.com>
2020-07-02 14:46:59 +03:00
Mathieu Duponchelle f7fc5bb0a3 fallbacksrc: add missing assignment to source_pending_timeout
b3138ad041 added the field for
that purpose, let's also use it!
2020-07-02 11:51:16 +03:00
Sebastian Dröge 2192c9d3b4 fallbacksrc: Unset ghost pad targets before removing from the element
Workaround for https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/553
2020-07-02 11:38:01 +03:00
Sebastian Dröge bde998ce50 video/cdgdec: Box CdgInterpreter state to prevent GObject private size to become too big
Only 64k are allowed for the sum of all private instance structs in the
class hierarchy, as well as for the public instance structs.

The CdgInterpreter itself is huge and adding just another two integers
to GstVideoDecoderPrivate in libgstvideo is causing the limit to be
reached, so let's allocate it in a separate memory area.
2020-07-01 01:51:23 +03:00
Sebastian Dröge a28455f0ce Update for Element::post_message() signature change 2020-06-30 21:28:02 +00:00
François Laignel e2f27e77ce threadshare: use tokio tag 2020-06-30 09:25:20 +00:00
Sebastian Dröge 48c20471d5 Fix compilation after flags cleanup 2020-06-30 12:04:50 +03:00
Sebastian Dröge 11d17b8de9 deny: Update for latest version of dependencies 2020-06-30 11:02:23 +03:00
Sebastian Dröge d03c6cb26a Update various dependencies 2020-06-30 10:49:27 +03:00
Sebastian Dröge 86e983ef11 fallbacksrc: Try setting imagefreeze to live mode
Otherwise we would start outputting at running time 0, which is going to
be wrong if the pipeline was already running for a while.

Requires https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/653
2020-06-29 12:03:57 +03:00
Sebastian Dröge f62c11f851 Update for functions returning a Builder being renamed to builder() instead of new()
And new video event APIs.
2020-06-25 19:49:07 +03:00
Sebastian Dröge 392bfc0b1e fallbacksrc: Create an identity sync=true if the new clocksync element can't be found 2020-06-25 13:58:22 +03:00
Sebastian Dröge 2e13e4ce73 fallbacksrc: Mark internal source property for custom sources as write/construct-only
It's only used during construction of the internal bin after all.
Keeping it readable would cause e.g. creating a pipeline graph trying to
read it, which is not implemented.
2020-06-25 13:47:45 +03:00
François Laignel e40267e95d event,message,query: update instantiation
See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/532
2020-06-25 11:26:32 +02:00
Sebastian Dröge fe274ac6e7 fallbacksrc: Use new proxy_pad_chain_function() support when building pads
Less unsafe code.
2020-06-23 10:01:27 +03:00
Sebastian Dröge fc20df294e Remove a few unused dependencies 2020-06-22 16:29:13 +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 c917e77687 rusoto: Update async-tungstenite dependency to 0.6 2020-06-21 18:16:42 +03:00
Sebastian Dröge ecac8002d9 deny: Ignore duplicated num-rational dependency for now
image depends on the old 0.2 version currently.
2020-06-19 09:32:54 +03:00
Sebastian Dröge d9257c2219 deny: Unignore arrayvec/itertools now that nom/rav1e are updated to the new version 2020-06-19 09:31:14 +03:00
Sebastian Dröge f4e7f127d9 flavors: Update num-rational dependency to 0.3 2020-06-18 13:07:09 +03:00
Sebastian Dröge 60321edb8c Update for new_with_XXX/new_from_XXX function renaming 2020-06-16 11:56:48 +03:00
Guillaume Desmottes 61f76548bc ci: check commit using ci-fairy
See https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#checking-commits

In this setup it will check for any leftover fixup!/squash! commits and
that messages don't have the 'Signed-off-by:' tag.
2020-06-15 10:25:09 +02:00
Guillaume Desmottes e85799b9d6 use new constructor names 2020-06-11 13:07:01 +02:00
Mathieu Duponchelle ed4fa7fde4 tttocea608: insert preambles in roll-up mode
I thought I could spare some bandwidth by letting renderers pick
the base row, but it turns out this triggers some unwanted behaviours
with compliant renderers.

Instead, we now follow the protocol laid out in EIA/CEA-608-B,
section B.8.1

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/355>
2020-06-10 22:05:02 +02:00
Sebastian Dröge 321f418518 video: Handle Result returned by VideoMeta::add()
By simply unwrapping for now, which is still better silently having no
VideoMeta.
2020-06-08 11:08:27 +03:00
Philippe Normand 737bd459e4 jitterbuffer: Remove un-needed mut qualifiers 2020-06-06 10:26:06 +01:00
Sebastian Dröge 84a2d8b513 deny: Update to pass again 2020-06-05 12:36:41 +03:00
Sebastian Dröge 0674826376 rusoto: Update to rusoto 0.44 2020-06-05 12:29:54 +03:00
Mathieu Duponchelle 0bb626c653 closedcaption: implement cea608overlay
Useful complement to cea708overlay, that can only render native
708.

The element isn't an aggregator, and simply parses and renders
closed caption meta on its input video buffers.

No property is exposed, the rendering is done using a monospace
font, over a 32 x 15 grid with the font size fitted to fill as
much of the viewport as possible.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/343>
2020-06-04 16:53:04 +02:00
Mathieu Duponchelle f27173e2b9 tttocea608: fix pts incrementation in roll up mode
Simple operator mistake

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/351>
2020-06-03 00:51:40 +02:00
Mathieu Duponchelle 3d26d2f27b sync elements: implement provide_clock
Since those are using the clock for sync, they need to also
provide a clock for good measure. The reason is that even if
downstream elements provide a clock, we don't want to have
that clock selected because it might not be running yet.
2020-06-02 19:31:58 +02:00
François Laignel dfaf59a59b threadshare: simplify Pad{Src,Sink} implementations
Pad{Src,Sink}[Ref] delegate some functions to their respective
Pad{Src,Sink}Inner. Since they act as smart pointers, we can
safely implement the Deref trait to simplify the implementations.
2020-05-30 08:30:27 +00:00
Sebastian Dröge 13d3fd1cc8 Remove now unneeded gobject_sys imports 2020-05-30 11:15:33 +03:00
Mathieu Duponchelle 83b0596242 tttocea608: add roll-up modes
In roll-up mode, the element expects input text without layout
(eg new lines), and the characters it outputs are displayed
immediately, without double-buffering as in pop-on mode.

Once the last column is reached, the element simply outputs
a carriage return and the text scrolls up, potentially splitting
words with no hyphenation.

The main advantage of this mode is its simplicity and the near-zero
latency it introduces.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/347>
2020-05-30 01:36:11 +02:00