From 5183d34db7b6640a79aeb4f919d8825df3694c2b Mon Sep 17 00:00:00 2001
From: Pierre d'Herbemont <pdherbemont@videolan.org>
Date: Wed, 9 Jul 2008 22:05:18 +0200
Subject: [PATCH] dejidjei:

---
 README                          | 2 +-
 modules/gui/macosx/intf.m       | 4 +++-
 src/input/input.c               | 2 ++
 src/libvlc.c                    | 9 ++++++++-
 src/playlist/engine.c           | 1 +
 src/video_output/video_output.c | 1 +
 6 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/README b/README
index 394e9511ea..7bbe93537a 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for the VLC media player
+ddREADME for the VLC media player
 ===============================
 
 The VideoLAN web site . . . http://www.videolan.org/
diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m
index aa529071f5..f903aaa4d5 100644
--- a/modules/gui/macosx/intf.m
+++ b/modules/gui/macosx/intf.m
@@ -1157,10 +1157,11 @@ static VLCMain *_o_sharedMainInstance = nil;
         if( !p_input )
         {
             p_input = playlist_CurrentInput( p_playlist );
-
             /* Refresh the interface */
             if( p_input )
             {
+                printf("yield\n");
+
                 msg_Dbg( p_intf, "input has changed, refreshing interface" );
                 p_intf->p_sys->b_input_update = true;
             }
@@ -1171,6 +1172,7 @@ static VLCMain *_o_sharedMainInstance = nil;
             p_intf->p_sys->b_intf_update = true;
             p_intf->p_sys->i_play_status = END_S;
             msg_Dbg( p_intf, "input has stopped, refreshing interface" );
+            printf("release\n");
             vlc_object_release( p_input );
             p_input = NULL;
         }
diff --git a/src/input/input.c b/src/input/input.c
index d23cd4f13b..42a575ed0c 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -140,6 +140,7 @@ static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item,
               "input launching for '%s'", psz_name );
 
     msg_Dbg( p_input, "Creating an input for '%s'", psz_name);
+    printf("Creating an input for '%s'", psz_name);
 
     free( psz_name );
 
@@ -317,6 +318,7 @@ static void Destructor( input_thread_t * p_input )
 #ifndef NDEBUG
     char * psz_name = input_item_GetName( p_input->p->input.p_item );
     msg_Dbg( p_input, "Destroying the input for '%s'", psz_name);
+    printf("Destroying the input for '%s'", psz_name);
     free( psz_name );
 #endif
 
diff --git a/src/libvlc.c b/src/libvlc.c
index 7340e365f8..496c013c26 100644
--- a/src/libvlc.c
+++ b/src/libvlc.c
@@ -94,6 +94,7 @@
 #include "playlist/playlist_internal.h"
 
 #include <vlc_vlm.h>
+#include <vlc_input.h>
 
 #include <assert.h>
 
@@ -112,6 +113,9 @@ void __vlc_gc_incref( gc_object_t * p_gc )
 {
     assert( p_gc->i_gc_refcount > 0 );
 
+    char * name = input_item_GetName((input_item_t *)p_gc);
+    printf("--- %s++ (%d)\n", name, p_gc->i_gc_refcount+1);
+    free(name);
     /* FIXME: atomic version needed! */
     p_gc->i_gc_refcount ++;
 }
@@ -120,6 +124,9 @@ void __vlc_gc_decref( gc_object_t *p_gc )
 {
     assert( p_gc );
     assert( p_gc->i_gc_refcount > 0 );
+    char * name = input_item_GetName((input_item_t *)p_gc);
+    printf("--- %s-- (%d)\n", name, p_gc->i_gc_refcount-1);
+    free(name);
 
     /* FIXME: atomic version needed! */
     p_gc->i_gc_refcount -- ;
@@ -1053,7 +1060,7 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
     FOREACH_ARRAY( input_item_t *p_del, priv->input_items )
         msg_Err( p_libvlc, "input item %p has not been deleted properly: refcount %d, name %s",
             p_del, p_del->i_gc_refcount, p_del->psz_name ? p_del->psz_name : "(null)" );
-        b_clean = false;
+        //b_clean = false;
     FOREACH_END();
     assert( b_clean );
     ARRAY_RESET( priv->input_items );
diff --git a/src/playlist/engine.c b/src/playlist/engine.c
index 603fdc3dd7..90b552663a 100644
--- a/src/playlist/engine.c
+++ b/src/playlist/engine.c
@@ -233,6 +233,7 @@ void playlist_release_current_input( playlist_t * p_playlist )
 
     /* Release the playlist lock, because we may get stuck
      * in vlc_object_release() for some time. */
+    printf("_______ releasing\n");
     PL_UNLOCK;
     vlc_object_release( p_input );
     PL_LOCK;
diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
index 4c115056e2..17db1c2e47 100644
--- a/src/video_output/video_output.c
+++ b/src/video_output/video_output.c
@@ -1522,6 +1522,7 @@ static int FilterCallback( vlc_object_t *p_this, char const *psz_cmd,
         p_suxor->p_input = p_input;
         p_vout->b_filter_change = true;
         vlc_object_yield( p_input );
+        printf("SUXXXXOR\n");
         vlc_thread_create( p_suxor, "suxor", SuxorRestartVideoES,
                            VLC_THREAD_PRIORITY_LOW, false );
     }
-- 
2.25.4