Commit graph

34 commits

Author SHA1 Message Date
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
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 b9887e1057 Update versions to 0.8.3 2022-03-08 19:49:16 +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 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 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 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
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