Don't compile sout code if sout is disabled
authorRémi Denis-Courmont <rem@videolan.org>
Thu, 1 May 2008 17:04:27 +0000 (20:04 +0300)
committerRémi Denis-Courmont <rem@videolan.org>
Thu, 1 May 2008 17:04:27 +0000 (20:04 +0300)
src/Makefile.am
src/input/decoder.c
src/input/input.c
src/libvlc-common.c
src/playlist/engine.c

index c5e1e16..16c9611 100644 (file)
@@ -200,6 +200,7 @@ EXTRA_libvlc_la_SOURCES = \
        $(SOURCES_libvlc_win32) \
        $(SOURCES_libvlc_dirent) \
        $(SOURCES_libvlc_getopt) \
+       $(SOURCES_libvlc_sout) \
        $(NULL)
 if HAVE_BEOS
 libvlc_la_SOURCES += $(SOURCES_libvlc_beos)
@@ -219,6 +220,9 @@ endif
 if BUILD_GETOPT
 libvlc_la_SOURCES += $(SOURCES_libvlc_getopt)
 endif
+if ENABLE_SOUT
+libvlc_la_SOURCES += $(SOURCES_libvlc_sout)
+endif
 
 SOURCES_libvlc_beos = \
        misc/beos_specific.cpp \
@@ -292,12 +296,6 @@ SOURCES_libvlc_common = \
        audio_output/mixer.c \
        audio_output/output.c \
        audio_output/intf.c \
-       stream_output/stream_output.c \
-       stream_output/stream_output.h \
-       stream_output/announce.c \
-       stream_output/profiles.c \
-       stream_output/sap.c \
-       stream_output/sdp.c \
        osd/osd.c \
        osd/osd_text.c \
        osd/osd_widgets.c \
@@ -344,12 +342,21 @@ SOURCES_libvlc_common = \
        misc/variables.c \
        misc/error.c \
        misc/update.c \
-       input/vlm.c \
        misc/xml.c \
        misc/devices.c \
        extras/libc.c \
        $(NULL)
 
+SOURCES_libvlc_sout = \
+       input/vlm.c \
+       stream_output/stream_output.c \
+       stream_output/stream_output.h \
+       stream_output/announce.c \
+       stream_output/profiles.c \
+       stream_output/sap.c \
+       stream_output/sdp.c \
+       $(NULL)
+
 SOURCES_libvlc = \
        $(SOURCES_libvlc_common) \
        $(OPT_SOURCES_libvlc_beos) \
index 69dc112..5eaa1b3 100644 (file)
@@ -153,6 +153,9 @@ decoder_t *input_DecoderNew( input_thread_t *p_input,
     decoder_t   *p_dec = NULL;
     vlc_value_t val;
 
+#ifndef ENABLE_SOUT
+    (void)b_force_decoder;
+#else
     /* If we are in sout mode, search for packetizer module */
     if( p_input->p->p_sout && !b_force_decoder )
     {
@@ -167,6 +170,7 @@ decoder_t *input_DecoderNew( input_thread_t *p_input,
         }
     }
     else
+#endif
     {
         /* Create the decoder configuration structure */
         p_dec = CreateDecoder( p_input, fmt, VLC_OBJECT_DECODER );
@@ -775,6 +779,7 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
         return VLC_SUCCESS;
     }
 
+#ifdef ENABLE_SOUT
     if( p_dec->i_object_type == VLC_OBJECT_PACKETIZER )
     {
         block_t *p_sout_block;
@@ -829,7 +834,7 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
                 p_sout_block = p_next;
             }
 
-            /* For now it's enough, as only sout inpact on this flag */
+            /* For now it's enough, as only sout impact on this flag */
             if( p_dec->p_owner->p_sout->i_out_pace_nocontrol > 0 &&
                 p_dec->p_owner->p_input->p->b_out_pace_control )
             {
@@ -844,7 +849,9 @@ static int DecoderDecode( decoder_t *p_dec, block_t *p_block )
             }
         }
     }
-    else if( p_dec->fmt_in.i_cat == AUDIO_ES )
+    else
+#endif
+    if( p_dec->fmt_in.i_cat == AUDIO_ES )
     {
         if( p_block )
             DecoderUpdatePreroll( &p_dec->p_owner->i_preroll_end, p_block );
@@ -1000,11 +1007,13 @@ static void DeleteDecoder( decoder_t * p_dec )
         vout_Request( p_dec, p_dec->p_owner->p_vout, 0 );
     }
 
+#ifdef ENABLE_SOUT
     if( p_dec->p_owner->p_sout_input )
     {
         sout_InputDelete( p_dec->p_owner->p_sout_input );
         es_format_Clean( &p_dec->p_owner->sout );
     }
+#endif
 
     if( p_dec->fmt_in.i_cat == SPU_ES )
     {
index a6ddee4..6121f71 100644 (file)
@@ -319,7 +319,7 @@ static void Destructor( input_thread_t * p_input )
 
     stats_TimerDump( p_input, STATS_TIMER_INPUT_LAUNCHING );
     stats_TimerClean( p_input, STATS_TIMER_INPUT_LAUNCHING );
-
+#ifdef ENABLE_SOUT
     if( priv->b_owns_its_sout && priv->p_sout )
     {
         if( priv->b_sout_keep )
@@ -330,7 +330,7 @@ static void Destructor( input_thread_t * p_input )
             priv->p_sout = NULL;
         }
     }
-
+#endif
     vlc_gc_decref( p_input->p->input.p_item );
 
     vlc_mutex_destroy( &p_input->p->counters.counters_lock );
@@ -819,6 +819,7 @@ static void InitStatistics( input_thread_t * p_input )
     }
 }
 
+#ifdef ENABLE_SOUT
 static int InitSout( input_thread_t * p_input )
 {
     char *psz;
@@ -883,6 +884,7 @@ static int InitSout( input_thread_t * p_input )
 
     return VLC_SUCCESS;
 }
+#endif
 
 static void InitTitle( input_thread_t * p_input )
 {
@@ -1161,10 +1163,11 @@ static int Init( input_thread_t * p_input )
     }
 
     InitStatistics( p_input );
+#ifdef ENABLE_SOUT
     ret = InitSout( p_input );
-
     if( ret != VLC_SUCCESS )
         return ret; /* FIXME: goto error; should be better here */
+#endif
 
     /* Create es out */
     p_input->p->p_es_out = input_EsOutNew( p_input, p_input->p->i_rate );
@@ -1249,13 +1252,13 @@ error:
 
     if( p_input->p->p_es_out )
         input_EsOutDelete( p_input->p->p_es_out );
-
+#ifdef ENABLE_SOUT
     if( p_input->p->p_sout )
     {
         vlc_object_detach( p_input->p->p_sout );
         sout_DeleteInstance( p_input->p->p_sout );
     }
-
+#endif
 
     if( !p_input->b_preparsing && p_input->p_libvlc->b_stats )
     {
index ee4dfe7..2acfc03 100644 (file)
@@ -778,6 +778,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
     }
     free( psz_modules );
 
+#ifdef ENABLE_SOUT
     /* Initialize VLM if vlm-conf is specified */
     psz_parser = config_GetPsz( p_libvlc, "vlm-conf" );
     if( psz_parser && *psz_parser )
@@ -787,6 +788,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
             msg_Err( p_libvlc, "VLM initialization failed" );
     }
     free( psz_parser );
+#endif
 
     /*
      * Load background interfaces
@@ -944,8 +946,6 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
     intf_thread_t      * p_intf = NULL;
     vout_thread_t      * p_vout = NULL;
     aout_instance_t    * p_aout = NULL;
-    announce_handler_t * p_announce = NULL;
-    sout_instance_t    * p_sout = NULL;
 
     /* Ask the interfaces to stop and destroy them */
     msg_Dbg( p_libvlc, "removing all interfaces" );
@@ -980,6 +980,9 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
         aout_Delete( p_aout );
     }
 
+#ifdef ENABLE_SOUT
+    sout_instance_t    * p_sout;
+
     p_sout = vlc_object_find( p_libvlc, VLC_OBJECT_SOUT, FIND_CHILD );
     if( p_sout )
     {
@@ -994,6 +997,7 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
     {
         vlm_Delete( p_libvlc->p_vlm );
     }
+#endif
 
     /* Free interaction */
     msg_Dbg( p_libvlc, "removing interaction" );
@@ -1002,6 +1006,9 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
     stats_TimersDumpAll( p_libvlc );
     stats_TimersCleanAll( p_libvlc );
 
+#ifdef ENABLE_SOUT
+    announce_handler_t * p_announce;
+
     /* Free announce handler(s?) */
     while( (p_announce = vlc_object_find( p_libvlc, VLC_OBJECT_ANNOUNCE,
                                                  FIND_CHILD ) ) )
@@ -1011,6 +1018,7 @@ int libvlc_InternalCleanup( libvlc_int_t *p_libvlc )
         vlc_object_release( p_announce );
         announce_HandlerDestroy( p_announce );
     }
+#endif
 
     bool b_clean = true;
     FOREACH_ARRAY( input_item_t *p_del, p_libvlc->input_items )
index 4359ee5..18d831e 100644 (file)
@@ -231,6 +231,7 @@ static void ObjectGarbageCollector( playlist_t *p_playlist, bool b_force )
         vlc_object_release( p_obj );
         vout_Destroy( (vout_thread_t *)p_obj );
     }
+#ifdef ENABLE_SOUT
     while( ( p_obj = vlc_object_find( p_playlist, VLC_OBJECT_SOUT,
                                                   FIND_CHILD ) ) )
     {
@@ -244,6 +245,7 @@ static void ObjectGarbageCollector( playlist_t *p_playlist, bool b_force )
         vlc_object_release( p_obj );
         sout_DeleteInstance( (sout_instance_t*)p_obj );
     }
+#endif
     p_playlist->b_cant_sleep = false;
     vlc_mutex_unlock( &p_playlist->gc_lock );
 }
@@ -447,6 +449,7 @@ void playlist_LastLoop( playlist_t *p_playlist )
         msleep( INTF_IDLE_SLEEP );
     }
 
+#ifdef ENABLE_SOUT
     /* close all remaining sout */
     while( ( p_obj = vlc_object_find( p_playlist,
                                       VLC_OBJECT_SOUT, FIND_CHILD ) ) )
@@ -455,6 +458,7 @@ void playlist_LastLoop( playlist_t *p_playlist )
         vlc_object_release( p_obj );
         sout_DeleteInstance( (sout_instance_t*)p_obj );
     }
+#endif
 
     /* close all remaining vout */
     while( ( p_obj = vlc_object_find( p_playlist,