Commit graph

86 commits

Author SHA1 Message Date
Sebastian Dröge
427ebcd759 uriplaylistbin: Update to more-asserts 0.3 2022-06-06 11:55:52 +03:00
Guillaume Desmottes
0dd0acd738 uriplaylistbin: disable more tests
Those are not reliable either.
2022-05-30 09:23:52 +02:00
Guillaume Desmottes
d69b4edfbc uriplaylistbin: fix number of streaming items
One more item than intended was allowed.
2022-04-22 14:50:42 +02:00
Guillaume Desmottes
03fcc2cb9a uriplaylistbin: implement Debug on State
Help debugging.
2022-04-22 14:50:28 +02: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
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
803e452889 Update minimum supported GStreamer version to 1.14 2022-04-07 12:41:54 +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
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
Guillaume Desmottes
ab96219c19 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:10:42 +02:00
Guillaume Desmottes
e0d05353e8 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-25 14:33:02 +01:00
Sebastian Dröge
b38f6cc731 Remove now unnecessary Send+Sync impls for element/etc subclasses
This is now automatically implemented.
2022-02-28 18:56:58 +02:00
Guillaume Desmottes
d9f3e8e9e7 uriplaylistbin: disable test deadlocking 2022-02-28 16:48:13 +01:00
Guillaume Desmottes
52f5dc0185 uriplaylistbin: display invalid state when panicing
Will help debugging failing tests such as #184
2022-02-22 17:29:02 +01:00
François Laignel
422ea740ca Update to gst::_log_macro_
See the details:
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/980
2022-02-21 20:50:01 +01:00
Sebastian Dröge
65fcd55160 Update for event/message/query view API changes 2022-01-19 15:07:45 +02:00
Sebastian Dröge
763ad0cb18 Rename self_ variables to imp for consistency 2022-01-17 20:09:18 +02:00
Sebastian Dröge
b2d0172422 Replace Foo::from_instance(foo) with foo.imp() 2022-01-17 19:36:41 +02:00
Sebastian Dröge
0c7764fa40 Update versions to 0.9.0 2022-01-15 20:33:49 +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
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