in reply to Segfault in Perl_gv_fetchmeth_pvn (in /usr/lib/libperl.so.5.18.2)
Thank to everyone who contributed.
I received a private mesage from davehorner suggesting that SetXOverlay might be the problem. Right on the nose Mr Horner, I checked 3.0.0, the nearly lastest version, against 2.8.11, the version I am using, and there are some threadsafe stabity enahcements. I applied these to my version and recomplied. Voila, everything in the garden is lovely.
For anyone who has the same problem, here is the fixed code:
//-------------------------------------------------------------------- +--------- // wxGStreamerMediaBackend::SetupXOverlay // // Attempts to set the XWindow id of our GstXOverlay to tell it which // window to play video in. //-------------------------------------------------------------------- +--------- void wxGStreamerMediaBackend::SetupXOverlay() { // Use the xoverlay extension to tell gstreamer to play in our win +dow #ifdef __WXGTK__ if (!gtk_widget_get_realized(m_ctrl->m_wxwindow)) { // Not realized yet - set to connect at realization time g_signal_connect (m_ctrl->m_wxwindow, "realize", G_CALLBACK (gtk_window_realize_callback), this); } else { gdk_flush(); GdkWindow* window = gtk_widget_get_window(m_ctrl->m_wxwindow); wxASSERT(window); #endif gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(m_xoverlay), #ifdef __WXGTK__ GDK_WINDOW_XID(window) #else ctrl->GetHandle() #endif ); #ifdef __WXGTK__ g_signal_connect (m_ctrl->m_wxwindow, // m_ctrl->m_wxwindow/*m_ctrl->m_widget*/, "expose_event", G_CALLBACK(gtk_window_expose_callback), this); } // end if GtkPizza realized #endif }
Thanks very much.
Steve
|
|---|