]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/mediactrl.cpp
make wxChoice and wxListBox inherit from wxControlWithItems and not wxControl for...
[wxWidgets.git] / src / mac / carbon / mediactrl.cpp
index e5cb61a1bc9a01c3dd36bc42b29805fd4c4e1ea8..210b7d930e407c0fbaff5cb9deb1f1e2dae91f23 100644 (file)
@@ -75,7 +75,7 @@ class WXDLLIMPEXP_MEDIA wxQTMediaBackend : public wxMediaBackendCommonBase
 {
 public:
     wxQTMediaBackend();
-    ~wxQTMediaBackend();
+    virtual ~wxQTMediaBackend();
 
     virtual bool CreateControl(wxControl* ctrl, wxWindow* parent,
                                      wxWindowID id,
@@ -323,8 +323,7 @@ wxQTMediaBackend::~wxQTMediaBackend()
         // Dispose of the movie controller
         ::DisposeMovieController(m_mc);
         m_mc = NULL;
-        DisposeMCActionFilterWithRefConUPP(m_mcactionupp);
-
+        
         // Dispose of offscreen GWorld
         ::DisposeGWorld(m_movieWorld);
     }
@@ -431,13 +430,9 @@ bool wxQTMediaBackend::Load(const wxString& fileName)
         newMovieActive,
         NULL); // wasChanged
 
-    //
-    // check GetMoviesStickyError() because it may not find the
-    // proper codec and play black video and other strange effects,
-    // not to mention mess up the dynamic backend loading scheme
-    // of wxMediaCtrl - so it just does what the QuickTime player does
-    //
-    if (err == noErr && ::GetMoviesStickyError() == noErr)
+    // Do not use ::GetMoviesStickyError() here because it returns -2009
+    // a.k.a. invalid track on valid mpegs          
+    if (err == noErr && ::GetMoviesError() == noErr)
     {
         ::CloseMovieFile(movieResFile);
 
@@ -521,8 +516,7 @@ bool wxQTMediaBackend::Load(const wxURI& location)
         //  require it if you don't use a Movie Controller,
         //  which we don't by default.
         //
-        m_preprerollupp =
-            NewMoviePrePrerollCompleteUPP( wxQTMediaBackend::PPRMProc );
+        m_preprerollupp = wxQTMediaBackend::PPRMProc;
         ::PrePrerollMovie( m_movie, timeNow, playRate,
                            m_preprerollupp, (void*)this);
 
@@ -567,8 +561,7 @@ void wxQTMediaBackend::DoNewMovieController()
 
         // Setup a callback so we can tell when the user presses
         // play on the player controls
-        m_mcactionupp =
-            NewMCActionFilterWithRefConUPP( wxQTMediaBackend::MCFilterProc );
+        m_mcactionupp = wxQTMediaBackend::MCFilterProc;
         ::MCSetActionFilterWithRefCon( m_mc, m_mcactionupp, (long)this );
         wxASSERT(::GetMoviesError() == noErr);
 
@@ -625,9 +618,6 @@ void wxQTMediaBackend::DoNewMovieController()
 //---------------------------------------------------------------------------
 void wxQTMediaBackend::FinishLoad()
 {
-    // Dispose of the PrePrerollMovieUPP if we used it
-    DisposeMoviePrePrerollCompleteUPP(m_preprerollupp);
-
     // get the real size of the movie
     DoLoadBestSize();