From 99d7aa655620a8cc4962123df5823905043d2375 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 23 Feb 2012 11:43:09 +0100 Subject: [PATCH] seek: Directly use the XOverlay interface on playbin2 --- tests/examples/seek/seek.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/examples/seek/seek.c b/tests/examples/seek/seek.c index 4ec50d8..e1c861e 100644 --- a/tests/examples/seek/seek.c +++ b/tests/examples/seek/seek.c @@ -2762,6 +2762,8 @@ draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data) if (xoverlay_element) gst_x_overlay_expose (GST_X_OVERLAY (xoverlay_element)); + else if (pipeline_type == 16) + gst_x_overlay_expose (GST_X_OVERLAY (pipeline)); return FALSE; } @@ -2929,9 +2931,11 @@ connect_bus_signals (GstElement * pipeline) GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); #if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32) || defined (GDK_WINDOWING_QUARTZ) - /* handle prepare-xwindow-id element message synchronously */ - gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler, - pipeline); + if (pipeline_type != 16) { + /* handle prepare-xwindow-id element message synchronously, but only for non-playbin2 */ + gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler, + pipeline); + } #endif gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH); @@ -3641,6 +3645,11 @@ main (int argc, char **argv) #if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32) || defined (GDK_WINDOWING_QUARTZ) /* we should have the XID now */ g_assert (embed_xid != 0); + + if (pipeline_type == 16) { + gst_x_overlay_set_window_handle (GST_X_OVERLAY (pipeline), embed_xid); + gst_x_overlay_handle_events (GST_X_OVERLAY (pipeline), FALSE); + } #endif if (verbose) { -- 2.7.4