X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fstream_out%2Fes.c;h=9002d3abede5040edfef0eea069a5831e6899830;hb=7686840e5c2b384eab661455a5e532a97c669e96;hp=222bfa33a73848ad235933c5187ab3c83ea3052b;hpb=99fab9089e9e1709d9c3a4bc5ced0c137ac59134;p=vlc diff --git a/modules/stream_out/es.c b/modules/stream_out/es.c index 222bfa33a7..9002d3abed 100644 --- a/modules/stream_out/es.c +++ b/modules/stream_out/es.c @@ -29,7 +29,8 @@ # include "config.h" #endif -#include +#include +#include #include #include #include @@ -75,34 +76,34 @@ static void Close ( vlc_object_t * ); vlc_module_begin(); set_shortname( "ES" ); - set_description( _("Elementary stream output") ); + set_description( N_("Elementary stream output") ); set_capability( "sout stream", 50 ); add_shortcut( "es" ); set_category( CAT_SOUT ); set_subcategory( SUBCAT_SOUT_STREAM ); add_string( SOUT_CFG_PREFIX "access", "", NULL, ACCESS_TEXT, - ACCESS_LONGTEXT, VLC_TRUE ); + ACCESS_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "access-audio", "", NULL, ACCESSA_TEXT, - ACCESSA_LONGTEXT, VLC_TRUE ); + ACCESSA_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "access-video", "", NULL, ACCESSV_TEXT, - ACCESSV_LONGTEXT, VLC_TRUE ); + ACCESSV_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "mux", "", NULL, MUX_TEXT, - MUX_LONGTEXT, VLC_TRUE ); + MUX_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "mux-audio", "", NULL, MUXA_TEXT, - MUXA_LONGTEXT, VLC_TRUE ); + MUXA_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "mux-video", "", NULL, MUXV_TEXT, - MUXV_LONGTEXT, VLC_TRUE ); + MUXV_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "dst", "", NULL, DEST_TEXT, - DEST_LONGTEXT, VLC_TRUE ); + DEST_LONGTEXT, true ); change_unsafe(); add_string( SOUT_CFG_PREFIX "dst-audio", "", NULL, DESTA_TEXT, - DESTA_LONGTEXT, VLC_TRUE ); + DESTA_LONGTEXT, true ); change_unsafe(); add_string( SOUT_CFG_PREFIX "dst-video", "", NULL, DESTV_TEXT, - DESTV_LONGTEXT, VLC_TRUE ); + DESTV_LONGTEXT, true ); change_unsafe(); set_callbacks( Open, Close ); @@ -111,7 +112,7 @@ vlc_module_end(); /***************************************************************************** * Exported prototypes *****************************************************************************/ -static const char *ppsz_sout_options[] = { +static const char *const ppsz_sout_options[] = { "access", "access-audio", "access-video", "mux", "mux-audio", "mux-video", "dst", "dst-audio", "dst-video", @@ -228,6 +229,8 @@ static char * es_print_url( char *psz_fmt, vlc_fourcc_t i_fourcc, int i_count, } p = psz_dst = malloc( 4096 ); + if( !psz_dst ) + return NULL; memset( p, 0, 4096 ); for( ;; ) { @@ -366,7 +369,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) { msg_Err( p_stream, "no suitable sout access module for `%s/%s://%s'", psz_access, psz_mux, psz_dst ); - intf_UserFatal( p_stream, VLC_FALSE, + intf_UserFatal( p_stream, false, _("Streaming / Transcoding failed"), _("There is no suitable stream-output access module for \"%s/%s://%s\"."), psz_access, @@ -380,7 +383,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) { msg_Err( p_stream, "no suitable sout mux module for `%s/%s://%s'", psz_access, psz_mux, psz_dst ); - intf_UserFatal( p_stream, VLC_FALSE, + intf_UserFatal( p_stream, false, _("Streaming / Transcoding failed"), _("There is no suitable stream-output access module "\ "for \"%s/%s://%s\"."), @@ -390,13 +393,17 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) } id = malloc( sizeof( sout_stream_id_t ) ); + if( !id ) + { + sout_MuxDelete( p_mux ); + sout_AccessOutDelete( p_access ); + return NULL; + } id->p_mux = p_mux; id->p_input = sout_MuxAddStream( p_mux, p_fmt ); if( id->p_input == NULL ) { - free( id ); - sout_MuxDelete( p_mux ); sout_AccessOutDelete( p_access ); free( id ); @@ -408,6 +415,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) static int Del( sout_stream_t *p_stream, sout_stream_id_t *id ) { + VLC_UNUSED(p_stream); sout_access_out_t *p_access = id->p_mux->p_access; sout_MuxDelete( id->p_mux ); sout_MuxDeleteStream( id->p_mux, id->p_input ); @@ -420,6 +428,7 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_t *id ) static int Send( sout_stream_t *p_stream, sout_stream_id_t *id, block_t *p_buffer ) { + VLC_UNUSED(p_stream); sout_MuxSendBuffer( id->p_mux, id->p_input, p_buffer ); return VLC_SUCCESS;