]> git.sesse.net Git - vlc/commitdiff
Destroyed the spu object inside vout_Close.
authorLaurent Aimar <fenrir@videolan.org>
Tue, 25 May 2010 20:00:35 +0000 (22:00 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Tue, 25 May 2010 20:00:35 +0000 (22:00 +0200)
It avoids a vlc_object_detach.

src/video_output/video_output.c

index b3f54d751248a9c7dbbb56ee54387d04630f57cc..aab5e0c77b0dc3470fa2229e5566a490acc2121a 100644 (file)
@@ -155,6 +155,7 @@ static vout_thread_t *VoutCreate(vlc_object_t *object,
     /* */
     if (vlc_clone(&vout->p->thread, Thread, vout,
                   VLC_THREAD_PRIORITY_OUTPUT)) {
+        spu_Destroy(vout->p->p_spu);
         vlc_object_release(vout);
         return NULL;
     }
@@ -228,12 +229,13 @@ void vout_Close(vout_thread_t *vout)
 
     if (vout->p->input)
         spu_Attach(vout->p->p_spu, vout->p->input, false);
-    vlc_object_detach(vout->p->p_spu);
 
     vout_snapshot_End(&vout->p->snapshot);
 
     vout_control_PushVoid(&vout->p->control, VOUT_CONTROL_CLEAN);
     vlc_join(vout->p->thread, NULL);
+
+    spu_Destroy(vout->p->p_spu);
 }
 
 /* */
@@ -246,9 +248,6 @@ static void VoutDestructor(vlc_object_t *object)
 
     free(vout->p->splitter_name);
 
-    /* */
-    spu_Destroy(vout->p->p_spu);
-
     /* Destroy the locks */
     vlc_mutex_destroy(&vout->p->picture_lock);
     vlc_mutex_destroy(&vout->p->vfilter_lock);