]> git.sesse.net Git - vlc/blobdiff - modules/demux/nsv.c
threads: Make sure we don't re-create a thread if the object has already one.
[vlc] / modules / demux / nsv.c
index 1be161a410dd702d7a910d643987d9bb2869cead..19f112019e9148e4d1d0f583fd8f7425ee3b1a16 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>                                      /* malloc(), free() */
 
-#include <vlc/vlc.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+#include <vlc_plugin.h>
 #include <vlc_demux.h>
 
 /* TODO:
@@ -42,8 +46,8 @@ static int  Open    ( vlc_object_t * );
 static void Close  ( vlc_object_t * );
 
 vlc_module_begin();
-    set_description( _("NullSoft demuxer" ) );
-    set_capability( "demux2", 10 );
+    set_description( N_("NullSoft demuxer" ) );
+    set_capability( "demux", 10 );
     set_category( CAT_INPUT );
     set_subcategory( SUBCAT_INPUT_DEMUX );
     set_callbacks( Open, Close );
@@ -94,10 +98,8 @@ static int Open( vlc_object_t *p_this )
     if( memcmp( p_peek, "NSVf", 4 ) && memcmp( p_peek, "NSVs", 4 ) )
     {
        /* In case we had force this demuxer we try to resynch */
-        if( strcmp( p_demux->psz_demux, "nsv" ) || ReSynch( p_demux ) )
-        {
+        if( !p_demux->b_force || ReSynch( p_demux ) )
             return VLC_EGENERIC;
-        }
     }
 
     /* Fill p_demux field */
@@ -385,7 +387,7 @@ static int ReSynch( demux_t *p_demux )
     int      i_skip;
     int      i_peek;
 
-    while( !p_demux->b_die )
+    while( vlc_object_alive (p_demux) )
     {
         if( ( i_peek = stream_Peek( p_demux->s, &p_peek, 1024 ) ) < 8 )
         {
@@ -458,6 +460,7 @@ static int ReadNSVs( demux_t *p_demux )
         case VLC_FOURCC( 'V', 'P', '6', '0' ):
         case VLC_FOURCC( 'V', 'P', '6', '1' ):
         case VLC_FOURCC( 'V', 'P', '6', '2' ):
+        case VLC_FOURCC( 'H', '2', '6', '4' ):
         case VLC_FOURCC( 'N', 'O', 'N', 'E' ):
             break;
         default: