From 463071ae898199e577c3547b741ed5a8fe6bdbfe Mon Sep 17 00:00:00 2001 From: Brendan Szymanski Date: Wed, 24 Jun 2026 00:10:07 -0400 Subject: [PATCH] Remove invalid mpv options and fix event handling --- Sources/CModules/mpv_widget.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Sources/CModules/mpv_widget.c b/Sources/CModules/mpv_widget.c index 7a97287..beb6559 100644 --- a/Sources/CModules/mpv_widget.c +++ b/Sources/CModules/mpv_widget.c @@ -54,10 +54,8 @@ mpv_widget_on_realize(GtkWidget *widget, gpointer user_data) if (!self->mpv) return; - mpv_set_option_string(self->mpv, "vo", "gpu-api"); mpv_set_option_string(self->mpv, "hwdec", "auto"); mpv_set_option_string(self->mpv, "keep-open", "yes"); - mpv_set_option_string(self->mpv, "gpu-context", "drm"); if (mpv_initialize(self->mpv) < 0) { mpv_terminate_destroy(self->mpv); @@ -152,8 +150,20 @@ mpv_widget_tick(gpointer user_data) if (!self->mpv) return G_SOURCE_CONTINUE; - mpv_event *event = mpv_wait_event(self->mpv, 0); - (void)event; + while (self->mpv) { + mpv_event *event = mpv_wait_event(self->mpv, 0); + if (event->event_id == MPV_EVENT_NONE) + break; + if (event->event_id == MPV_EVENT_ERROR) { + const char *msg = "mpv playback error"; + if (event->error && event->error->string) + msg = event->error->string; + g_signal_emit(self, signals[SIGNAL_ERROR], 0, msg); + } + if (event->event_id == MPV_EVENT_END_FILE) { + g_signal_emit(self, signals[SIGNAL_PLAYBACK_STATE_CHANGED], 0, TRUE); + } + } double pos = 0; if (mpv_get_property(self->mpv, "time-pos",