Commit graph

1493 commits

Author SHA1 Message Date
Sebastian Dröge
167bc61f26 audiofx: Update to nnnoiseless 0.5 2022-06-07 20:57:09 +03:00
Klaas Jan Russcher
6c23707312 cargo_wrapper.py: added python3 version check for right usage of shutil.move(..) 2022-06-07 20:57:09 +03:00
Sebastian Dröge
583aaa36d1 spotifyaudiosrc: Update to librespot 0.4 2022-06-07 20:57:09 +03:00
Mathieu Duponchelle
11a1bbbe69 ts-jitterbuffer: set jbuf delay when instantiating it
The internal (C) jitterbuffer needs to know about the configured
latency when calculating a PTS, as it otherwise may consider that
the packet is too late, trigger a resync and cause the element to
discard the packet altogether.

I could not identify when this was broken, but the net effect was
that in the current state, ts-jitterbuffer was discarding up to
half of all the incoming packets.
2022-06-07 20:57:09 +03:00
Mathieu Duponchelle
71877934b5 tttocea608: expose roll-up timeout property
In roll-up mode, when no more timed text comes in, the closed
captions may remain displayed on screen indefinitely (unless the
decoder implements a timeout, but that is not mandatory).

Expose a property to erase the display memory after a configurable
amount of time has elapsed instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/754>
2022-06-07 20:41:40 +03:00
Mathieu Duponchelle
a3fad9e028 cea608overlay: handle CLEAR status
+ log errors

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/754>
2022-06-07 20:41:40 +03:00
Sebastian Dröge
3b6ab8f722 tutorial/sinesrc: Use pushsrc as direct superclass in the glib::wrapper macro too 2022-06-07 20:41:40 +03:00
Sebastian Dröge
5c426a3649 mccparse/sccparse: Don't log gst::FlowError::Flushing or Eos as error to the debug logs 2022-06-07 20:41:40 +03:00
Guillaume Desmottes
8fcdfc1d41 uriplaylistbin: disable more tests
Those are not reliable either.
2022-06-07 20:41:40 +03:00
Tim-Philipp Müller
79ed10ba27 threadshare: fix build on Windows 2022-06-07 20:29:13 +03:00
Sebastian Dröge
18c9bd0355 Update versions to 0.8.4 2022-04-26 14:20:02 +03:00
Sebastian Dröge
4d10d95ff9 Update Cargo.lock 2022-04-26 14:19:02 +03:00
Sebastian Dröge
f637c4a65d Update to m3u8-rs 4.0 2022-04-26 14:10:05 +03:00
Thibault Saunier
76043141fc meson: Cleanup our meson integration
Writing a proper "depfile" to follow depending files, based on depfiles
generated by rustc.

This is based on work done while working on gobject-examples-rs
2022-04-26 14:08:16 +03:00
Sebastian Dröge
deed06d82a rusoto: Update to crc 3 and rusoto 0.48 2022-04-26 14:08:02 +03:00
Sebastian Dröge
05f395eef1 closedcaption: Update to uuid 1.0 2022-04-26 14:07:32 +03:00
Guillaume Desmottes
0735908f44 uriplaylistbin: fix number of streaming items
One more item than intended was allowed.
2022-04-22 15:46:01 +02:00
Guillaume Desmottes
cde2e75bcc uriplaylistbin: implement Debug on State
Help debugging.
2022-04-22 15:45:06 +02:00
Thibault Saunier
98174b6cf2 meson: Fix building when git isn't available
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/178
2022-04-22 15:44:45 +02:00
Guillaume Desmottes
6855c48488 uriplaylistbin: disable more tests
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/194
2022-04-22 15:44:38 +02:00
Sebastian Dröge
7a00315664 Update license text in the README.md 2022-04-22 15:44:28 +02:00
Seungha Yang
df941aa0a0 transcriberbin: Protect runtime "passthrough=false" change
There can be small race where transcription-bin is linked with
tee but state change of the transcription-bin is not finished.
And at the same time, upstream pushes event/buffer to the
transcription-bin. Do state change first then link to avoid
the condition

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/716>
2022-04-22 15:43:23 +02:00
Guillaume Desmottes
449649ef75 uriplaylistbin: skip missing_http test
It's not reliable.
2022-04-08 16:53:12 +02:00
Guillaume Desmottes
00416a991c uriplaylistbin: break reference cycle
Passing ownership of item to the probe callback was introducing a reference cycle as the item is owning the sinkpad.
2022-04-08 16:53:12 +02:00
Guillaume Desmottes
8edf13ad3e uriplaylistbin: remove useless uridecodebin clone 2022-04-08 16:53:12 +02:00
Guillaume Desmottes
c86d5c78f4 uriplaylistbin: add Status::ShuttingDown
Fix a race where we were trying to process new decodedin pads while the
element was being shutdown, resulting in a dead lock.
2022-04-08 16:53:12 +02:00
Guillaume Desmottes
e3e4a109f9 uriplaylistbin: replace errored with Status enum 2022-04-08 16:53:12 +02:00
Guillaume Desmottes
2eb4a82093 uridecodebin: stop using crossbeam_channel
I give up on crossbeam_channel. For some reasons some receivers are not
always unblocked and I was not able to reproduce using simpler test
cases.
Use with mpsc channels instead which are more reliable.
2022-04-08 16:53:12 +02:00
Jan Alexander Steffens (heftig)
14a62ec7ce fallbackswitch: Add missing requires_private 2022-04-08 16:53:12 +02:00
Vivia Nikolaidou
f998a7bba4 rustfmt.toml: Add file
This will automatically run `cargo fmt` when a file is saved.
2022-04-08 16:50:13 +02:00
Guillaume Desmottes
990e5bbeac uriplaylistbin: remove pad probe when shutting down
The previous patch was unblocking the receiver in the pad probe but
it could be blocked again as the item streaming status was not changed.
2022-04-01 12:07:44 +02:00
Guillaume Desmottes
354c2862e0 uriplaylistbin: handle waiting items no longer being set
ab96219c19 broke some assertions as
waiting items are now unset when shutting down the element.
2022-03-28 13:48:25 +02:00
Sebastian Dröge
6744497cf6 cea608tott: Don't zero-pad SRT indices but zero-pad hours to at least two digits
Zero-padding is not specified for the indices but all time components
need to be zero-padded (3 digits for fractional seconds, 2 digits for
everything else).
2022-03-28 12:50:57 +03:00
François Laignel
e50686d5db ts: log max throttling when creating Context 2022-03-28 12:50:57 +03:00
François Laignel
e7c62cb1f4 ts/jitterbuffer: don't wake up immediately...
... when next wakeup delay is shorter than the max throttling duration.

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/169
2022-03-28 12:50:57 +03:00
François Laignel
0b615409ac ts/rt/Task: use light weight executor blocking on ack or join handle
Previous version used the Context::block_on_or_add_sub_task which
spawns a full-fledged executor with timer and io Reactor for no
reason when we just need to wait for a Receiver or JoinHandle.
2022-03-28 12:50:57 +03:00
François Laignel
a17cdf9903 ts/rt/Task: awake the iteration loop when it needs to be aborted
When the iteration loop is throttling, the call to `abort` on the
`loop_abort_handle` returns immediately, but the actual `Future`
for the iteration loop is aborted only when the scheduler throttling
completes. State transitions which requires the loop to be aborted &
which are serialized at the pipeline level can incur long delays.

This commit makes sure the Task Context's scheduler is awaken as soon
as the task loop is aborted.
2022-03-28 12:50:57 +03:00
François Laignel
35ec0fc41c ts/examples: add rtp mode with jitter-buffer & trace stop duration 2022-03-28 12:50:57 +03:00
Sebastian Dröge
7a02bf026d Update Cargo.lock 2022-03-28 12:50:57 +03:00
Guillaume Desmottes
e53515cc14 uriplaylistbin: fix deadlock when shutting down
The probes on srcpad was not removed which was preventing the element to
reach the NULL state.
2022-03-28 10:55:24 +02:00
Guillaume Desmottes
2f116591f0 uriplaylistbin: fix race when handling topology change
Keep the state mutex during the whole decodebin pad-added callback.
Fix a race when we were checking if state.waiting_for_ss_eos was set and
it was removed before we actually processed the item.

Fix #184
2022-03-28 10:53:56 +02:00
Sebastian Dröge
111257b81c Correctly check for the DISCONT buffer flag to be set 2022-03-21 13:50:07 +05:30
Arun Raghavan
026b0f9260 rusoto: s3sink: Expose property to control all timeout/retry durations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/690>
2022-03-21 13:50:07 +05:30
Arun Raghavan
724c6d6e32 rusoto: s3sink: Make remaining requests bounded in time
This implements a default timeout and retry duration for the remaining
S3 requests that were still able to be blocked indefinitely. There are 3
classes of operations: multipart upload creation/abort (should not take
too long), uploads (duration depends on part size), multipart upload
completion (can take several minutes according to documentation).

We currently only expose the part upload times as configurable, and hard
code the rest. If it seems sensible, we can expose the other two sets of
parameters as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/690>
2022-03-21 13:50:07 +05:30
Arun Raghavan
7b8d3acf10 s3src: Consolidate stream reading into get object retries
Previously, the actual reading from the streaming body of a GetObject
request was not within the same timeout/retry path as the dispatch of
the HTTP request itself. We consolidate these two into a single async
block and create a sum type to encapsulate the rusoto and std library
error paths within that future.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/690>
2022-03-21 13:50:07 +05:30
Arun Raghavan
1ad277a410 rusoto: s3src: Implement timeout and retries
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/690>
2022-03-21 13:50:07 +05:30
Sebastian Dröge
191b1644d6 fallbacksrc: Flush source before restarting on errors
It might still be blocked downstream for a while, e.g. in the clocksync.

Flushing does not cause any problems as fallbackswitch is not going to
forward it and will only unblock everything up to there.
2022-03-21 13:50:07 +05:30
Arun Raghavan
930f51edbc rusoto: s3sink, s3src: Retry on server errors
We can retry in the case of 500/503/other errors that might occur that
might be recoverable, instead of bailing.
2022-03-21 13:50:07 +05:30
Ray Tiley
cab33768e2 awstranscribe - increase presisigned url duration to 5 mins from 60s
Have seen a few times where machines that are in perfect time sync with a good source the requests fail with `RequestExpired` errors.

https://docs.aws.amazon.com/transcribe/latest/dg/CommonErrors.html

While not perfect, bumping to five minutes gives more a chance that the signed requests to start streaming won't be expired.
2022-03-21 13:50:07 +05:30
Ray Tiley
602dbc7a02 [transcriberbin] - make audioqueue leaky
If transcription runs slow or has issues the queue can fill up and block
all audio processing. This gives the queue a sufficent buffer and allows
it to drop audio if it eventually fills up. This was most noticable with
bad internet connections using the `awstrnascriber` where it would take
quite a while for the websocket to eventually timeout and the bin to
enter `passthrough=true`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/688>
2022-03-21 13:50:07 +05:30