Michael Gruner 53c145a158 gstelement: protect async state changes against spurious wake ups
When a pipeline is pre-rolling, it waits for all sink elements to report
they have received a buffer before completing the transition to paused.
This async wait is done using a state condition variable. The way this
waits are currently implemented do not protect against spurious conditional
wake ups, which may happen due to external factors in the kernel.

This change implements the wait within a loop that iterates over the protected
variable to reinitiates the wait if the wakeup was spurious. More details in
the [GCond docs](https://docs.gtk.org/glib/struct.Cond.html).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4086>
2023-04-04 07:24:57 +00:00
..
2023-01-24 15:25:05 +00:00
2022-11-09 16:03:58 +00:00
2022-12-20 14:03:35 +00:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:05 +00:00
2022-10-18 13:51:16 +03:00
2022-10-22 22:06:13 +09:00
2023-01-24 15:25:05 +00:00
2023-01-24 15:25:06 +00:00
2023-01-24 15:25:06 +00:00
2023-01-24 15:25:06 +00:00
2023-01-24 15:25:06 +00:00
2023-01-24 15:25:05 +00:00