[vlc-devel] [PATCH] qt: force signals from the player callbacks to be emitted from a queued connection
Alexandre Janniaux
ajanni at videolabs.io
Tue Oct 22 10:10:43 CEST 2019
LGTM
Regards,
--
Alexandre Janniaux
Videolabs
On Tue, Oct 22, 2019 at 09:52:48AM +0200, Pierre Lamot wrote:
> Callbacks are called with the player locked, if the callback comes from Qt thread
> the signal emitted by Qt may be handled within the same thread directly and ask for
> the player lock again.
> ---
> modules/gui/qt/components/player_controller.cpp | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/modules/gui/qt/components/player_controller.cpp b/modules/gui/qt/components/player_controller.cpp
> index 3bfafcc338..1b3b0d820a 100644
> --- a/modules/gui/qt/components/player_controller.cpp
> +++ b/modules/gui/qt/components/player_controller.cpp
> @@ -239,7 +239,9 @@ static void on_player_current_media_changed(vlc_player_t *, input_item_t *new_m
>
> if (!new_media)
> {
> - emit that->q_func()->inputChanged(false);
> + that->callAsync([that] () {
> + emit that->q_func()->inputChanged(false);
> + });
> return;
> }
>
> @@ -721,7 +723,9 @@ static void on_player_media_epg_changed(vlc_player_t *, input_item_t *, void *da
> {
> PlayerControllerPrivate* that = static_cast<PlayerControllerPrivate*>(data);
> msg_Dbg( that->p_intf, "on_player_item_epg_changed");
> - emit that->q_func()->epgChanged();
> + that->callAsync([that] () {
> + emit that->q_func()->epgChanged();
> + });
> }
>
> static void on_player_subitems_changed(vlc_player_t *, input_item_t *, input_item_node_t *, void *data)
> --
> 2.17.1
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list