#define PLACEHOLDER_DELAY_LONGTEXT N_( \
"Delay (in ms) before the placeholder kicks in." )
-#define PLACEHOLDER_IFRAME_TEXT N_( "Wait for I frame before toggling placholder" )
+#define PLACEHOLDER_IFRAME_TEXT N_( "Wait for I frame before toggling placeholder" )
#define PLACEHOLDER_IFRAME_LONGTEXT N_( \
"If enabled, switching between the placeholder and the normal stream " \
"will only occur on I frames. This will remove artifacts on stream " \
ID_OFFSET_LONGTEXT, false )
add_string( SOUT_CFG_PREFIX_IN "name", "default",
NAME_TEXT, NAME_LONGTEXT, false )
- add_bool( SOUT_CFG_PREFIX_IN "placeholder", false, NULL,
+ add_bool( SOUT_CFG_PREFIX_IN "placeholder", false,
PLACEHOLDER_TEXT, PLACEHOLDER_LONGTEXT, false )
add_integer( SOUT_CFG_PREFIX_IN "placeholder-delay", 200,
PLACEHOLDER_DELAY_TEXT, PLACEHOLDER_DELAY_LONGTEXT, false )
- add_bool( SOUT_CFG_PREFIX_IN "placeholder-switch-on-iframe", true, NULL,
+ add_bool( SOUT_CFG_PREFIX_IN "placeholder-switch-on-iframe", true,
PLACEHOLDER_IFRAME_TEXT, PLACEHOLDER_IFRAME_LONGTEXT, false )
set_callbacks( OpenIn, CloseIn )
int i_es_num;
} bridge_t;
+static vlc_mutex_t lock = VLC_STATIC_MUTEX;
/*
* Bridge out
typedef struct out_sout_stream_sys_t
{
- vlc_mutex_t *p_lock;
bridged_es_t *p_es;
int i_id;
bool b_inited;
return VLC_ENOMEM;
p_sys->b_inited = false;
- var_Create( p_this->p_libvlc, "bridge-lock", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc, "bridge-lock", &val );
- p_sys->p_lock = val.p_address;
-
var_Get( p_stream, SOUT_CFG_PREFIX_OUT "id", &val );
p_sys->i_id = val.i_int;
}
p_sys->b_inited = true;
- vlc_mutex_lock( p_sys->p_lock );
+ vlc_mutex_lock( &lock );
p_bridge = var_GetAddress( p_stream->p_libvlc, p_sys->psz_name );
if ( p_bridge == NULL )
msg_Dbg( p_stream, "bridging out input codec=%4.4s id=%d pos=%d",
(char*)&p_es->fmt.i_codec, p_es->fmt.i_id, i );
- vlc_mutex_unlock( p_sys->p_lock );
+ vlc_mutex_unlock( &lock );
return (sout_stream_id_t *)p_sys;
}
return VLC_SUCCESS;
}
- vlc_mutex_lock( p_sys->p_lock );
+ vlc_mutex_lock( &lock );
p_es = p_sys->p_es;
p_es->p_block = false;
p_es->b_changed = true;
- vlc_mutex_unlock( p_sys->p_lock );
+ vlc_mutex_unlock( &lock );
p_sys->b_inited = false;
return VLC_SUCCESS;
}
- vlc_mutex_lock( p_sys->p_lock );
+ vlc_mutex_lock( &lock );
p_es = p_sys->p_es;
*p_es->pp_last = p_buffer;
p_buffer = p_buffer->p_next;
}
- vlc_mutex_unlock( p_sys->p_lock );
+ vlc_mutex_unlock( &lock );
return VLC_SUCCESS;
}
typedef struct in_sout_stream_sys_t
{
- vlc_mutex_t *p_lock;
int i_id_offset;
mtime_t i_delay;
config_ChainParse( p_stream, SOUT_CFG_PREFIX_IN, ppsz_sout_options_in,
p_stream->p_cfg );
- var_Create( p_this->p_libvlc, "bridge-lock", VLC_VAR_MUTEX );
- var_Get( p_this->p_libvlc, "bridge-lock", &val );
- p_sys->p_lock = val.p_address;
-
var_Get( p_stream, SOUT_CFG_PREFIX_IN "id-offset", &val );
p_sys->i_id_offset = val.i_int;
p_stream->p_next->pf_send( p_stream->p_next, id->id, p_buffer );
/* Then check all bridged streams */
- vlc_mutex_lock( p_sys->p_lock );
+ vlc_mutex_lock( &lock );
p_bridge = var_GetAddress( p_stream->p_libvlc, p_sys->psz_name );
}
}
- vlc_mutex_unlock( p_sys->p_lock );
+ vlc_mutex_unlock( &lock );
return VLC_SUCCESS;
}