char *psz_parser, *psz_string;
const char *psz_filter_type;
- /* Please leave p_libvlc_global. This is where cached modules are
- * stored. We're not trying to find a module instance. */
module_t *p_obj = module_Find( p_intf, psz_name );
if( !p_obj )
{
vlc_object_find_name( p_intf->p_libvlc,
qtu( module ),
FIND_CHILD );
+ int i_type;
+ bool b_is_command;
if( !p_obj )
{
- msg_Err( p_intf, "Module %s not found.", qtu( module ) );
- return;
+ msg_Warn( p_intf, "Module %s not found. You'll need to restart the filter to take the change into account.", qtu( module ) );
+ i_type = config_GetType( p_intf, qtu( option ) );
+ b_is_command = false;
+ }
+ else
+ {
+ i_type = var_Type( p_obj, qtu( option ) );
+ b_is_command = ( i_type & VLC_VAR_ISCOMMAND );
}
- int i_type = var_Type( p_obj, qtu( option ) );
- bool b_is_command = ( i_type & VLC_VAR_ISCOMMAND );
if( !b_is_command )
{
msg_Warn( p_intf, "Module %s's %s variable isn't a command. You'll need to restart the filter to take change into account.",
qtu( option ),
i_type );
- vlc_object_release( p_obj );
+ if( p_obj ) vlc_object_release( p_obj );
}
#if 0
N_("Top-Left"), N_("Top-Right"), N_("Bottom-Left"), N_("Bottom-Right") };
vlc_module_begin();
- set_description( N_("Logo video filter") );
- set_capability( "video filter", 0 );
+ set_capability( "sub filter", 0 );
+ set_callbacks( CreateFilter, DestroyFilter );
+ set_description( N_("Logo sub filter") );
set_shortname( N_("Logo overlay") );
set_category( CAT_VIDEO );
set_subcategory( SUBCAT_VIDEO_SUBPIC );
add_shortcut( "logo" );
- set_callbacks( Create, Destroy );
add_file( CFG_PREFIX "file", NULL, NULL, FILE_TEXT, FILE_LONGTEXT, false );
add_integer( CFG_PREFIX "x", 0, NULL, POSX_TEXT, POSX_LONGTEXT, true );
add_integer( CFG_PREFIX "position", -1, NULL, POS_TEXT, POS_LONGTEXT, false );
change_integer_list( pi_pos_values, ppsz_pos_descriptions, NULL );
- /* subpicture filter submodule */
+ /* video output filter submodule */
add_submodule();
- set_capability( "sub filter", 0 );
- set_callbacks( CreateFilter, DestroyFilter );
- set_description( N_("Logo sub filter") );
+ set_capability( "video filter", 0 );
+ set_callbacks( Create, Destroy );
+ set_description( N_("Logo video filter") );
vlc_module_end();
static const char *const ppsz_filter_options[] = {