Sebastian Dröge
f5260f9b36
fallbackswitch: Explictly set priority of pads in the test
2022-04-14 08:14:26 +00:00
Sebastian Dröge
0ca0d485a0
fallbackswitch: Log affected pad when scheduling buffer waiting for it
2022-04-14 08:14:26 +00:00
Sebastian Dröge
d73bce2985
fallbackswitch: Only update the output running time if it's increasing
2022-04-14 08:14:26 +00:00
Sebastian Dröge
930cdca750
fallbackswitch: Only drop raw audio/video buffers if they're trailing
...
Otherwise this can cause decoding errors further downstream.
2022-04-14 08:14:26 +00:00
Sebastian Dröge
bbb7ced95a
fallbackswitch: Improve some debug outputs
...
Don't print "buffer buffer ...".
2022-04-14 08:14:26 +00:00
Sebastian Dröge
ca7cf7dee7
fallbackswitch: Fix clipping of buffers against the output running time
...
To handle buffers outside the segment correctly.
Also fix debug output to print the correct value.
2022-04-14 08:14:26 +00:00
Sebastian Dröge
617a2ef49e
fallbackswitch: Clip buffers against the segment
...
Also clip raw audio/video buffers according to the caps if they have the
relevant information in the caps, and drop raw audio samples if they're
outside the segment too.
In addition also set durations on raw audio/video buffers based on the
caps if no duration is set.
2022-04-14 08:14:26 +00:00
Sebastian Dröge
6ce523a7a8
fallbackswitch: Improve debug output of clock times and simplify some code
2022-04-14 08:14:26 +00:00
Sebastian Dröge
9e3f713aa9
Update to m3u8-rs 4.0
2022-04-14 07:41:18 +00:00
Thibault Saunier
94b7677318
meson: Fix building when git isn't available
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/178
2022-04-13 17:01:34 -04:00
Guillaume Desmottes
5004479c6f
uriplaylistbin: disable more tests
...
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/194
2022-04-13 07:55:27 +00:00
Sebastian Dröge
a4fd144647
deny: Remove now unneeded miniz_oxide override
2022-04-13 10:40:29 +03:00
Seungha Yang
930cc41aaa
fallbacksrc: Don't forward manual flush events to downstream
...
fallbackswitch might forward flush event if it's for the currently
active pad. But forwarded flush event will be problematic in various
reasons and that's not a behavior we expected.
2022-04-12 23:21:32 +09:00
Sebastian Dröge
5788837fb6
fallbacksrc: Unflush downstream pads of the source after shutting down everything
...
Otherwise the pads might still be flushing on the next try and the
source would never recover.
2022-04-12 14:40:08 +03:00
Sebastian Dröge
7233d6936c
fallbacksrc: Remove imagefreeze if it becomes unneeded
2022-04-12 14:37:29 +03:00
Sebastian Dröge
874063668b
Update license text in the README.md
2022-04-12 12:24:55 +03:00
Sebastian Dröge
28dbbe33db
Update README.md with all the new plugins/elements
2022-04-12 12:21:00 +03:00
Vivia Nikolaidou
de936f42e9
fallbackswitch: Minor cleanup in get_sync_time
2022-04-11 15:57:20 +03:00
Sebastian Dröge
3de317b3c9
fallbacksrc: Don't panic when shutting down the source and there are source pad blocks but no actual source pads
...
This can happen if the source removed the actual source pad already but
our downstream pad that is blocked still exists.
2022-04-11 11:01:27 +00:00
Sebastian Dröge
84402f39ef
fallbacksrc: Reset state in fallbacksrc custom source also if changing the state to READY before failed
...
Otherwise it will panic on the next try because always pads are already
linked to the ghostpads.
2022-04-11 11:01:27 +00:00
Vivia Nikolaidou
0ba6ebb10f
fallbackswitch: Notify active-pad without state lock held
...
Can otherwise deadlock.
2022-04-11 10:48:28 +00:00
Vivia Nikolaidou
b5a3a99825
m3u8-rs: Depend on version exactly 3.0.0
...
https://github.com/rutgersc/m3u8-rs/pull/46#issuecomment-1094867533
2022-04-11 13:22:44 +03:00
Sebastian Dröge
5af52f94a8
threadshare: Remove glib::SendUnique usage
...
It's being removed from the GLib bindings because it does not add much
value.
2022-04-09 08:41:58 +00:00
Seungha Yang
558656deb5
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-08 21:55:54 +00:00
Sebastian Dröge
08379ab389
fallbacksrc: Request the main pad first from fallbackswitch
...
By default the first created pad is the active one before the
fallbackswitch is actually processing data.
2022-04-08 20:24:03 +03:00
Sebastian Dröge
96c28a5728
fallbackswitch: Only notify active-pad property on state changes if it actually changed
2022-04-08 20:23:28 +03:00
Sebastian Dröge
452ea76a69
fallbackswitch: Rename debug category from fallback-switch to fallbackswitch
...
The element name is without hyphen so the debug category should ideally
too to reduce confusion.
2022-04-08 20:07:01 +03:00
Sebastian Dröge
d3d98c73ca
fallbacksrc: Connect to notify::active-pad
after requesting pads
...
Requesting the first pad will emit the property because the first pad is
then selected. That will cause the callback to be called, which tries to
take the same mutex that is already locked during element setup and
causes a deadlock.
2022-04-08 19:53:38 +03:00
Guillaume Desmottes
7daab76f17
uriplaylistbin: skip missing_http test
...
It's not reliable.
2022-04-08 16:18:03 +02:00
Guillaume Desmottes
00b3199727
Revert "Revert "uriplaylistbin: disable test deadlocking""
...
This reverts commit 821ec857e1
.
Looks like the test is still unreliable. :(
2022-04-08 16:16:05 +02:00
Guillaume Desmottes
cde5fdf202
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 15:50:48 +02:00
Guillaume Desmottes
ffdcc8167c
uriplaylistbin: remove useless uridecodebin clone
2022-04-08 15:50:48 +02:00
Guillaume Desmottes
821ec857e1
Revert "uriplaylistbin: disable test deadlocking"
...
This reverts commit d9f3e8e9e7
.
The test seems to work reliably so hopefully it's been fixed with the
latest dead lock fixes.
Fix #191
2022-04-08 12:58:13 +02:00
Guillaume Desmottes
69ceaa3a5e
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 12:58:13 +02:00
Guillaume Desmottes
0ed72a360d
uriplaylistbin: replace errored with Status enum
2022-04-08 12:58:13 +02:00
Guillaume Desmottes
97dba9046b
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 12:58:13 +02:00
Sebastian Dröge
e8f15eb1e8
ci: Rebuild image and move coverage job to the stable image
2022-04-07 19:48:57 +03:00
Sebastian Dröge
803e452889
Update minimum supported GStreamer version to 1.14
2022-04-07 12:41:54 +03:00
Jan Alexander Steffens (heftig)
0a3e9c81f9
fallbackswitch: Add missing requires_private
2022-04-06 11:11:25 +02:00
Sebastian Dröge
584daeaa81
deny: Update for tokio-util
2022-04-06 11:46:09 +03:00
Vivia Nikolaidou
f8d162d909
rustfmt.toml: Add file
...
This will automatically run `cargo fmt` when a file is saved.
2022-04-05 19:13:59 +03:00
Jan Schmidt
bd2ff494c7
fallbackswitch: Replace with priorityswitch
...
fallbackswitch now supports multiple sink pads, and on a timeout of the
active pad, it will automatically switch to the next lowest priority pad
that has data available.
fallbackswitch sink pads follow the `sink_%u` template and have
`priority` as a pad property.
Co-authored-by: Vivia Nikolaidou <vivia.nikolaidou@ltnglobal.com>
2022-04-05 18:52:31 +03:00
Guillaume Desmottes
bf14939b9b
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 11:58:50 +02:00
Vivia Nikolaidou
d48d732038
.gitlab-ci.yml: Fix deprecated -Zinstrument-coverage switch
2022-03-30 16:16:25 +03:00
Guillaume Desmottes
5dab4bc502
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:02:40 +02:00
Sebastian Dröge
518e43fc5f
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:17:34 +03:00
François Laignel
59ca466081
ts: log max throttling when creating Context
2022-03-28 08:47:32 +00:00
François Laignel
1ef9ae6398
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 08:47:32 +00:00
François Laignel
8eb8ea0e7d
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 08:47:32 +00:00
François Laignel
c1615d01e6
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 08:47:32 +00:00