Commit 77d07c40 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Don't compile sout code if sout is disabled

parent ea0c5c53
......@@ -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) \
......
......@@ -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 )
{
......
......@@ -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 )
{
......
......@@ -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 )
......
......@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment