#define SOUT_CFG_PREFIX_OUT "sout-bridge-out-"
#define SOUT_CFG_PREFIX_IN "sout-bridge-in-"
-vlc_module_begin();
- set_shortname( N_("Bridge"));
- set_description( N_("Bridge stream output"));
- add_submodule();
- set_section( N_("Bridge out"), NULL );
- set_capability( "sout stream", 50 );
- add_shortcut( "bridge-out" );
+vlc_module_begin ()
+ set_shortname( N_("Bridge"))
+ set_description( N_("Bridge stream output"))
+ add_submodule ()
+ set_section( N_("Bridge out"), NULL )
+ set_capability( "sout stream", 50 )
+ add_shortcut( "bridge-out" )
/* Only usable with VLM. No category so not in gui preferences
- set_category( CAT_SOUT );
- set_subcategory( SUBCAT_SOUT_STREAM );*/
+ set_category( CAT_SOUT )
+ set_subcategory( SUBCAT_SOUT_STREAM )*/
add_integer( SOUT_CFG_PREFIX_OUT "id", 0, NULL, ID_TEXT, ID_LONGTEXT,
- false );
+ false )
add_string( SOUT_CFG_PREFIX_OUT "in-name", "default", NULL,
- DEST_TEXT, DEST_LONGTEXT, false );
- set_callbacks( OpenOut, CloseOut );
-
- add_submodule();
- set_section( N_("Bridge in"), NULL );
- set_capability( "sout stream", 50 );
- add_shortcut( "bridge-in" );
- /*set_category( CAT_SOUT );
- set_subcategory( SUBCAT_SOUT_STREAM );*/
+ DEST_TEXT, DEST_LONGTEXT, false )
+ set_callbacks( OpenOut, CloseOut )
+
+ add_submodule ()
+ set_section( N_("Bridge in"), NULL )
+ set_capability( "sout stream", 50 )
+ add_shortcut( "bridge-in" )
+ /*set_category( CAT_SOUT )
+ set_subcategory( SUBCAT_SOUT_STREAM )*/
add_integer( SOUT_CFG_PREFIX_IN "delay", 0, NULL, DELAY_TEXT,
- DELAY_LONGTEXT, false );
+ DELAY_LONGTEXT, false )
add_integer( SOUT_CFG_PREFIX_IN "id-offset", 8192, NULL, ID_OFFSET_TEXT,
- ID_OFFSET_LONGTEXT, false );
+ ID_OFFSET_LONGTEXT, false )
add_string( SOUT_CFG_PREFIX_IN "name", "default", NULL,
- NAME_TEXT, NAME_LONGTEXT, false );
+ NAME_TEXT, NAME_LONGTEXT, false )
add_bool( SOUT_CFG_PREFIX_IN "placeholder", false, NULL,
- PLACEHOLDER_TEXT, PLACEHOLDER_LONGTEXT, false );
+ PLACEHOLDER_TEXT, PLACEHOLDER_LONGTEXT, false )
add_integer( SOUT_CFG_PREFIX_IN "placeholder-delay", 200, NULL,
- PLACEHOLDER_DELAY_TEXT, PLACEHOLDER_DELAY_LONGTEXT, false );
+ PLACEHOLDER_DELAY_TEXT, PLACEHOLDER_DELAY_LONGTEXT, false )
add_bool( SOUT_CFG_PREFIX_IN "placeholder-switch-on-iframe", true, NULL,
- PLACEHOLDER_IFRAME_TEXT, PLACEHOLDER_IFRAME_LONGTEXT, false );
- set_callbacks( OpenIn, CloseIn );
+ PLACEHOLDER_IFRAME_TEXT, PLACEHOLDER_IFRAME_LONGTEXT, false )
+ set_callbacks( OpenIn, CloseIn )
-vlc_module_end();
+vlc_module_end ()
/*****************************************************************************
int i_es_num;
} bridge_t;
-#define GetBridge(a,b) __GetBridge( VLC_OBJECT(a), b )
-static bridge_t *__GetBridge( vlc_object_t *p_object, const char *psz_name )
-{
- bridge_t *p_bridge;
- vlc_value_t val;
-
- if( var_Get( p_object->p_libvlc, psz_name, &val ) )
- {
- p_bridge = NULL;
- }
- else
- {
- p_bridge = val.p_address;
- }
-
- return p_bridge;
-}
-
/*
* Bridge out
p_stream->p_cfg );
p_sys = malloc( sizeof( out_sout_stream_sys_t ) );
+ if( unlikely( !p_sys ) )
+ return VLC_ENOMEM;
p_sys->b_inited = false;
var_Create( p_this->p_libvlc, "bridge-lock", VLC_VAR_MUTEX );
vlc_mutex_lock( p_sys->p_lock );
- p_bridge = GetBridge( p_stream, p_sys->psz_name );
+ p_bridge = var_GetAddress( p_stream->p_libvlc, p_sys->psz_name );
if ( p_bridge == NULL )
{
- vlc_object_t *p_libvlc = VLC_OBJECT( p_stream->p_libvlc );
- vlc_value_t val;
-
- p_bridge = malloc( sizeof( bridge_t ) );
+ p_bridge = xmalloc( sizeof( bridge_t ) );
- var_Create( p_libvlc, p_sys->psz_name, VLC_VAR_ADDRESS );
- val.p_address = p_bridge;
- var_Set( p_libvlc, p_sys->psz_name, val );
+ var_Create( p_stream->p_libvlc, p_sys->psz_name, VLC_VAR_ADDRESS );
+ var_SetAddress( p_stream->p_libvlc, p_sys->psz_name, p_bridge );
p_bridge->i_es_num = 0;
p_bridge->pp_es = NULL;
if ( i == p_bridge->i_es_num )
{
- p_bridge->pp_es = realloc( p_bridge->pp_es,
- (p_bridge->i_es_num + 1)
- * sizeof(bridged_es_t *) );
+ p_bridge->pp_es = xrealloc( p_bridge->pp_es,
+ (p_bridge->i_es_num + 1) * sizeof(bridged_es_t *) );
p_bridge->i_es_num++;
- p_bridge->pp_es[i] = malloc( sizeof(bridged_es_t) );
+ p_bridge->pp_es[i] = xmalloc( sizeof(bridged_es_t) );
}
p_sys->p_es = p_es = p_bridge->pp_es[i];
vlc_value_t val;
p_sys = malloc( sizeof( in_sout_stream_sys_t ) );
+ if( unlikely( !p_sys ) )
+ return VLC_ENOMEM;
p_sys->p_out = sout_StreamNew( p_stream->p_sout, p_stream->psz_next );
if( !p_sys->p_out )
/* Then check all bridged streams */
vlc_mutex_lock( p_sys->p_lock );
- p_bridge = GetBridge( p_stream, p_sys->psz_name );
+ p_bridge = var_GetAddress( p_stream->p_libvlc, p_sys->psz_name );
if( p_bridge )
{
if( b_no_es )
{
- vlc_object_t *p_libvlc = VLC_OBJECT( p_stream->p_libvlc );
for ( i = 0; i < p_bridge->i_es_num; i++ )
free( p_bridge->pp_es[i] );
free( p_bridge->pp_es );
free( p_bridge );
- var_Destroy( p_libvlc, p_sys->psz_name );
+ var_Destroy( p_stream->p_libvlc, p_sys->psz_name );
}
}