Sebastian Dröge
7080fa9fc1
uriplaylistbin: Update to more-asserts 0.3
2022-06-07 20:57:09 +03:00
Guillaume Desmottes
8fcdfc1d41
uriplaylistbin: disable more tests
...
Those are not reliable either.
2022-06-07 20:41:40 +03:00
Sebastian Dröge
18c9bd0355
Update versions to 0.8.4
2022-04-26 14:20:02 +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
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
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
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
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
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
Sebastian Dröge
b9887e1057
Update versions to 0.8.3
2022-03-08 19:49:16 +02:00
Seungha Yang
88262e596d
fallbacksrc: Disconnect signals on ReadyToNull
...
Otherwise multiple signal handlers will be connected to the source
2022-03-08 19:23:26 +02:00
Sebastian Dröge
29006999a4
fallbacksrc: Changing the URI of the video fallback is supported in NULL state
...
And not just during construction.
This fixes switching from a failing video fallback to a dummy fallback,
which was added in c7fe08bf6
.
2022-03-08 19:23:26 +02:00
Guillaume Desmottes
94fce11b25
uriplaylistbin: display invalid state when panicing
...
Will help debugging failing tests such as #184
2022-03-08 18:58:25 +02:00
Guillaume Desmottes
54ebb1c254
fallbackswitch: properly handle GAP events
...
Handle GAP events from the active pad as activity and forward
downstream.
2022-03-03 15:10:20 +01:00
Guillaume Desmottes
4e7141f0e3
fallbackswitch: factor out handle_main_timed_item()
...
No semantic change, I'll re-use this to handle GAP events.
2022-03-03 15:09:18 +01:00
Guillaume Desmottes
e097feea1f
fallbackswitch: add support for buffers without pts
...
Re-use the previously seen PTS.
Fix #186
2022-03-03 15:07:08 +01:00
Guillaume Desmottes
ac1c6e513e
fallbackswitch: export GEnum used in properties
...
Rust applications will be able to use those directly.
2022-03-02 11:08:30 +01:00
Guillaume Desmottes
8c738b7a2e
uriplaylistbin: disable test deadlocking
2022-03-02 11:08:30 +01:00
Sebastian Dröge
4ef0fcd22e
Update versions to 0.8.2
2022-02-21 12:51:40 +02:00
Sebastian Dröge
f0add79b7d
Update versions to 0.8.1
2022-02-04 18:46:12 +02:00
Sebastian Dröge
2ea91e053b
Update to parking_lot 0.12 and hrtf 0.8
2022-02-04 18:07:40 +02:00
Sebastian Dröge
07a7420561
Rename self_
variables to imp
for consistency
2022-01-18 15:48:34 +02:00
Sebastian Dröge
81a571bd8b
Replace Foo::from_instance(foo)
with foo.imp()
2022-01-18 15:48:28 +02:00
Sebastian Dröge
818a508ac5
Re-license LGPL-2.1 plugins to MPL-2
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/168
2022-01-15 21:44:39 +02:00
Sebastian Dröge
8ffb6c1584
Switch to 0.15 branches of gtk-rs, and 0.18 of gstreamer-rs and provide a version
2022-01-15 20:31:40 +02:00
Sebastian Dröge
ab14c50d1c
Ignore clippy::non_send_fields_in_send_ty
lint
...
It's useless in its current shape and wrongly triggering on all types.
See https://github.com/rust-lang/rust-clippy/issues/8045
2022-01-14 12:09:57 +02:00
Guillaume Desmottes
8bab034bc8
uriplaylistbin: fix license when registering plugin
2022-01-03 00:08:53 +01:00
Guillaume Desmottes
b7c08933aa
uriplaylistbin: add properties reporting the current state of the playlist
2021-12-22 15:26:17 +01:00
Guillaume Desmottes
9783d01a35
uriplaylistbin: prevent overflow panic with infinite playlist
...
enumerate() will panic if the index overflows.
2021-12-22 12:53:11 +01:00
Guillaume Desmottes
4a5815cc97
uriplaylistbin: factor out create_items()
2021-12-22 12:53:11 +01:00
François Laignel
7c909e59a9
utils/togglerecord: fix race condition in sink_chain when segment is pending
...
In `sink_chain` when the Segment is pending, attempting to lock
rec state could lead to a dead lock because the stream state is
already locked while the main stream state was not locked.
2021-12-20 09:01:09 +00:00
François Laignel
a1c89dd17b
utils/togglerecord: fix race condition checking other streams EOS state
...
Function `check_and_update_stream_start` checks whether other streams
reached EOS. The stream being checked might already have locked its
state. If it's about to check other streams too, this results in a
deadlock.
The problem was due to the `main_state` guard being dropped handling
event `StreamStart` checking whether the main stream is EOS:
```rust
let main_is_eos = if let Some(main_state) = main_state {
main_state.eos
} else {
false
};
```
In the above code, `main_state` main state is comsumed and dropped
after evaluating `main_state.eos`.
This is also the case before handling event `Eos`.
This revealed another deadlock handling event `Eos` which is under
investigation.
2021-12-20 09:01:09 +00:00
Vivia Nikolaidou
2acb83da8f
togglerecord: Handle stream-start event after EOS
...
It should restart any pending streams instead of keeping everything
EOS'd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/622 >
2021-12-14 14:34:50 +02:00
Sebastian Dröge
86021d637b
fallbacksrc: Actually calculate running times of segment start/stop if the PTS is outside the segment
...
Previously it was just using the segment start/stop without converting
it to the corresponding running time.
2021-12-09 12:30:42 +02:00
Sebastian Dröge
66e987c174
Fix a couple of new clippy warnings
2021-12-02 22:31:52 +02:00
Sebastian Dröge
423fa0d0a9
uriplaylistbin: Remove unnecessary &
to fix clippy warning
2021-12-01 15:57:45 +02:00
Sebastian Dröge
13923051a0
Fix compilation after gst::Pad::sticky_events_foreach
API changes
2021-12-01 15:33:45 +02:00
Sebastian Dröge
c46901d150
Fix or silence various new 1.57 clippy warnings
2021-11-30 16:31:50 +02:00
Guillaume Desmottes
f9a39b1138
add uriplaylistbin plugin
...
uriplaylistbin plays a list of URIs sequentially, ensuring gapless transitions
and proper streams synchronization.
2021-11-29 10:55:01 +01:00
Sebastian Dröge
86f422592b
Update for glib::Enum
/ glib::Boxed
/ glib::flags!
macro renames
2021-11-22 11:04:26 +02:00
Sebastian Dröge
c68f6b2631
Update for GLib signal emit_by_name()
API changes
2021-11-21 18:15:04 +02:00