$(SOURCES_libvlc_win32) \
$(SOURCES_libvlc_dirent) \
$(SOURCES_libvlc_getopt) \
+ $(SOURCES_libvlc_sout) \
$(NULL)
if HAVE_BEOS
libvlc_la_SOURCES += $(SOURCES_libvlc_beos)
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 \
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 \
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) \
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 )
{
}
}
else
+#endif
{
/* Create the decoder configuration structure */
p_dec = CreateDecoder( p_input, fmt, VLC_OBJECT_DECODER );
return VLC_SUCCESS;
}
+#ifdef ENABLE_SOUT
if( p_dec->i_object_type == VLC_OBJECT_PACKETIZER )
{
block_t *p_sout_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 )
{
}
}
}
- 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 );
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 )
{
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 )
priv->p_sout = NULL;
}
}
-
+#endif
vlc_gc_decref( p_input->p->input.p_item );
vlc_mutex_destroy( &p_input->p->counters.counters_lock );
}
}
+#ifdef ENABLE_SOUT
static int InitSout( input_thread_t * p_input )
{
char *psz;
return VLC_SUCCESS;
}
+#endif
static void InitTitle( 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 );
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 )
{
}
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 )
msg_Err( p_libvlc, "VLM initialization failed" );
}
free( psz_parser );
+#endif
/*
* Load background interfaces
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" );
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 )
{
{
vlm_Delete( p_libvlc->p_vlm );
}
+#endif
/* Free interaction */
msg_Dbg( p_libvlc, "removing interaction" );
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 ) ) )
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 )
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 ) ) )
{
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 );
}
msleep( INTF_IDLE_SLEEP );
}
+#ifdef ENABLE_SOUT
/* close all remaining sout */
while( ( p_obj = vlc_object_find( p_playlist,
VLC_OBJECT_SOUT, FIND_CHILD ) ) )
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,