]> git.sesse.net Git - vlc/blobdiff - modules/access_output/udp.c
Use the right declaration for threaded functions.
[vlc] / modules / access_output / udp.c
index b1f4e9f1fef87d3882f2b5645a356ad0a8e345a6..2cadddf90bbf178a0362174671d64083553164cd 100644 (file)
@@ -29,7 +29,8 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -76,7 +77,7 @@ static void Close( vlc_object_t * );
                           "heavily-loaded systems." )
 
 vlc_module_begin();
-    set_description( _("UDP stream output") );
+    set_description( N_("UDP stream output") );
     set_shortname( "UDP" );
     set_category( CAT_SOUT );
     set_subcategory( SUBCAT_SOUT_ACO );
@@ -113,9 +114,8 @@ static const char *const ppsz_core_options[] = {
 static ssize_t Write   ( sout_access_out_t *, block_t * );
 static int  Seek    ( sout_access_out_t *, off_t  );
 
-static void ThreadWrite( vlc_object_t * );
+static void* ThreadWrite( vlc_object_t * );
 static block_t *NewUDPPacket( sout_access_out_t *, mtime_t );
-static const char *MakeRandMulticast (int family, char *buf, size_t buflen);
 
 typedef struct sout_access_thread_t
 {
@@ -173,14 +173,16 @@ static int Open( vlc_object_t *p_this )
     }
 
     if( !( p_sys = calloc ( 1, sizeof( sout_access_out_sys_t ) ) ) )
-    {
-        msg_Err( p_access, "not enough memory" );
         return VLC_ENOMEM;
-    }
     p_access->p_sys = p_sys;
 
     i_dst_port = DEFAULT_PORT;
     char *psz_parser = psz_dst_addr = strdup( p_access->psz_path );
+    if( !psz_dst_addr )
+    {
+        free( p_sys );
+        return VLC_ENOMEM;
+    }
 
     if (psz_parser[0] == '[')
         psz_parser = strchr (psz_parser, ']');
@@ -196,7 +198,6 @@ static int Open( vlc_object_t *p_this )
         vlc_object_create( p_access, sizeof( sout_access_thread_t ) );
     if( !p_sys->p_thread )
     {
-        msg_Err( p_access, "out of memory" );
         free (p_sys);
         free (psz_dst_addr);
         return VLC_ENOMEM;
@@ -436,14 +437,14 @@ static block_t *NewUDPPacket( sout_access_out_t *p_access, mtime_t i_dts)
 /*****************************************************************************
  * ThreadWrite: Write a packet on the network at the good time.
  *****************************************************************************/
-static void ThreadWrite( vlc_object_t *p_this )
+static void* ThreadWrite( vlc_object_t *p_this )
 {
     sout_access_thread_t *p_thread = (sout_access_thread_t*)p_this;
     mtime_t              i_date_last = -1;
     mtime_t              i_to_send = p_thread->i_group;
     int                  i_dropped_packets = 0;
 
-    while( !p_thread->b_die )
+    while( vlc_object_alive (p_thread) )
     {
         block_t *p_pk;
         mtime_t       i_date, i_sent;
@@ -518,4 +519,5 @@ static void ThreadWrite( vlc_object_t *p_this )
 
         i_date_last = i_date;
     }
+    return NULL;
 }