From ff1a6546daf51f36f2bda5df4fa1d6fe6fad7dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Fri, 28 Apr 2017 16:25:42 +0200 Subject: [PATCH] playback/player: don't unref gtk_sink but sink it Commit 5b8ba60c was added because of a memory leak when gtksink was used as renderer. Nonetheless the patch didn't consider two facts: 1\ that the gtk_sink element was in floating state 2\ there is another code path where the gtk_sink element is already sank Thus the correct fix, is not to ref and unref gtk_sink, but sink it. https://bugzilla.gnome.org/show_bug.cgi?id=781904 --- playback/player/gtk/gtk-video-renderer.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/playback/player/gtk/gtk-video-renderer.c b/playback/player/gtk/gtk-video-renderer.c index c62af1cd64..f07d82403c 100644 --- a/playback/player/gtk/gtk-video-renderer.c +++ b/playback/player/gtk/gtk-video-renderer.c @@ -113,14 +113,12 @@ gst_player_gtk_video_renderer_init (GstPlayerGtkVideoRenderer * self) self->sink = sink; } else { gtk_sink = gst_element_factory_make ("gtksink", NULL); - - self->sink = gst_object_ref (gtk_sink); + self->sink = gst_object_ref_sink (gtk_sink); } g_assert (self->sink != NULL); g_object_get (gtk_sink, "widget", &self->widget, NULL); - gst_object_unref (gtk_sink); } static GstElement *gst_player_gtk_video_renderer_create_video_sink