]> git.sesse.net Git - vlc/blobdiff - modules/access/dv.c
vcdx: Fix memleaks.
[vlc] / modules / access / dv.c
index a0c8209a05857ed8b40bb1542e224ab9535ceb11..911a7f8673522035da130fed4800c6d219627cf2 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <vlc/vlc.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+#include <vlc_plugin.h>
 #include <vlc_access.h>
 
 #include <errno.h>
@@ -69,13 +74,12 @@ static int Control( access_t *, int, va_list );
     "value should be set in milliseconds." )
 
 vlc_module_begin();
-    set_description( _("Digital Video (Firewire/ieee1394)  input") );
-    set_shortname( _("dv") );
+    set_description( N_("Digital Video (Firewire/ieee1394)  input") );
+    set_shortname( N_("dv") );
     set_category( CAT_INPUT );
     set_subcategory( SUBCAT_INPUT_ACCESS );
-    add_integer( "dv-caching", 60000 / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT, VLC_TRUE );
-        change_safe();
-    set_capability( "access2", 0 );
+    add_integer( "dv-caching", 60000 / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT, true );
+    set_capability( "access", 0 );
     add_shortcut( "dv" );
     add_shortcut( "dv1394" );
     add_shortcut( "raw1394" );
@@ -143,7 +147,7 @@ static int Open( vlc_object_t *p_this )
     /* Set up p_access */
     access_InitFields( p_access );
     ACCESS_SET_CALLBACKS( NULL, Block, Control, NULL );
-    p_access->info.b_prebuffered = VLC_FALSE;
+    p_access->info.b_prebuffered = false;
 
     p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );
     if( !p_sys )
@@ -162,7 +166,7 @@ static int Open( vlc_object_t *p_this )
     p_sys->p_frame = NULL;
     p_sys->p_ev = NULL;
 
-    vlc_mutex_init( p_access, &p_sys->lock );
+    vlc_mutex_init( &p_sys->lock );
 
     p_sys->i_node = DiscoverAVC( p_access, &p_sys->i_port, p_sys->i_guid );
     if( p_sys->i_node < 0 )
@@ -232,9 +236,9 @@ static int Open( vlc_object_t *p_this )
     p_sys->p_ev->p_frame = NULL;
     p_sys->p_ev->pp_last = &p_sys->p_ev->p_frame;
     p_sys->p_ev->p_access = p_access;
-    vlc_mutex_init( p_access, &p_sys->p_ev->lock );
+    vlc_mutex_init( &p_sys->p_ev->lock );
     vlc_thread_create( p_sys->p_ev, "dv event thread handler", Raw1394EventThread,
-                       VLC_THREAD_PRIORITY_OUTPUT, VLC_FALSE );
+                       VLC_THREAD_PRIORITY_OUTPUT, false );
 
     free( psz_name );
     return VLC_SUCCESS;
@@ -268,7 +272,7 @@ static void Close( vlc_object_t *p_this )
             p_sys->p_ev->pp_last = &p_sys->p_frame;
             vlc_mutex_unlock( &p_sys->p_ev->lock );
         }
-        vlc_object_destroy( p_sys->p_ev );
+        vlc_object_release( p_sys->p_ev );
     }
 
     if( p_sys->p_frame )
@@ -288,22 +292,22 @@ static void Close( vlc_object_t *p_this )
 static int Control( access_t *p_access, int i_query, va_list args )
 {
     access_sys_t *p_sys = p_access->p_sys;
-    vlc_bool_t   *pb_bool;
+    bool   *pb_bool;
     int64_t      *pi_64;
 
     switch( i_query )
     {
         /* */
         case ACCESS_CAN_PAUSE:
-            pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
-            *pb_bool = VLC_TRUE;
+            pb_bool = (bool*)va_arg( args, bool* );
+            *pb_bool = true;
             break;
 
        case ACCESS_CAN_SEEK:
        case ACCESS_CAN_FASTSEEK:
        case ACCESS_CAN_CONTROL_PACE:
-            pb_bool = (vlc_bool_t*)va_arg( args, vlc_bool_t* );
-            *pb_bool = VLC_FALSE;
+            pb_bool = (bool*)va_arg( args, bool* );
+            *pb_bool = false;
             break;
 
         case ACCESS_GET_PTS_DELAY:
@@ -336,8 +340,13 @@ static block_t *Block( access_t *p_access )
     access_sys_t *p_sys = p_access->p_sys;
     block_t *p_block = NULL;
 
-//     if( !p_access->psz_demux )
-//         p_access->psz_demux = strdup( "rawdv" );
+#if 0
+    if( !p_access->psz_demux )
+    {
+        free( p_access->psz_demux );
+        p_access->psz_demux = strdup( "rawdv" );
+    }
+#endif
 
     vlc_mutex_lock( &p_sys->lock );
     p_block = p_sys->p_frame;
@@ -359,7 +368,7 @@ static int Raw1394EventThread( vlc_object_t *p_this )
 
     vlc_thread_ready( p_this );
 
-    while( !p_sys->p_ev->b_die )
+    while( vlc_object_alive (p_sys->p_ev) )
     {
         while( ( result = poll( &(p_sys->raw1394_poll), 1, 200 ) ) < 0 )
         {
@@ -368,10 +377,8 @@ static int Raw1394EventThread( vlc_object_t *p_this )
                 perror( "error: raw1394 poll" );
                 msg_Err( p_access, "retrying device raw1394" );
             }
-            if( p_sys->p_ev->b_die )
-                break;
         }
-        if( p_sys->p_ev->b_die )
+        if( !vlc_object_alive (p_sys->p_ev) )
                 break;
         if( result > 0 && ( ( p_sys->raw1394_poll.revents & POLLIN )
                 || ( p_sys->raw1394_poll.revents & POLLPRI ) ) )