]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/mediactrl.cpp
don't free "static" alpha data (patch 1738966)
[wxWidgets.git] / src / unix / mediactrl.cpp
index 6a0f4d478697d47a309cf7c8b097ceb6a3a3329a..01a553416fef0641a8e85b3d0156f0aa13244baf 100644 (file)
 #      define DEBUG_MAIN_THREAD
 #   endif // Debug
 
 #      define DEBUG_MAIN_THREAD
 #   endif // Debug
 
+#ifndef __WXGTK20__
 extern void wxapp_install_idle_handler();
 extern bool g_isIdle;
 extern void wxapp_install_idle_handler();
 extern bool g_isIdle;
+#endif
 extern bool g_mainThreadLocked;
 #endif // wxGTK
 
 extern bool g_mainThreadLocked;
 #endif // wxGTK
 
@@ -323,8 +325,10 @@ static gint gtk_window_realize_callback(GtkWidget* theWidget,
 {
     DEBUG_MAIN_THREAD // TODO: Is this neccessary?
 
 {
     DEBUG_MAIN_THREAD // TODO: Is this neccessary?
 
+#ifndef __WXGTK20__
     if (g_isIdle)   // FIXME: Why is needed? For wxYield? ??
         wxapp_install_idle_handler();
     if (g_isIdle)   // FIXME: Why is needed? For wxYield? ??
         wxapp_install_idle_handler();
+#endif
 
     wxYield();    // FIXME: RN: X Server gets an error/crash if I don't do
                   //       this or a messagebox beforehand?!?!??
 
     wxYield();    // FIXME: RN: X Server gets an error/crash if I don't do
                   //       this or a messagebox beforehand?!?!??
@@ -1236,6 +1240,9 @@ bool wxGStreamerMediaBackend::DoLoad(const wxString& locstring)
             return false;
     }
 
             return false;
     }
 
+    // free current media resources
+    gst_element_set_state (m_playbin, GST_STATE_NULL);
+
     // Make sure the passed URI is valid and tell playbin to load it
     // non-file uris are encoded
     wxASSERT(gst_uri_protocol_is_valid("file"));
     // Make sure the passed URI is valid and tell playbin to load it
     // non-file uris are encoded
     wxASSERT(gst_uri_protocol_is_valid("file"));