#include <vlc_image.h>
#include <vlc_filter.h>
+#include <vlc_url.h>
#define ALPHAMASK_HELP N_( \
"Use an image's alpha channel as a transparency mask." )
set_category( CAT_VIDEO )
set_subcategory( SUBCAT_VIDEO_VFILTER )
set_capability( "video filter2", 0 )
- add_shortcut( "alphamask" )
- add_shortcut( "mask" )
+ add_shortcut( "alphamask", "mask" )
set_callbacks( Create, Destroy )
- add_string( CFG_PREFIX "mask", NULL, NULL, MASK_TEXT,
+ add_string( CFG_PREFIX "mask", NULL, MASK_TEXT,
MASK_LONGTEXT, false )
vlc_module_end ()
if( p_filter->fmt_in.video.i_chroma != VLC_CODEC_YUVA )
{
msg_Err( p_filter,
- "Unsupported input chroma \"%4s\". "
+ "Unsupported input chroma \"%4.4s\". "
"Alphamask can only use \"YUVA\".",
(char*)&p_filter->fmt_in.video.i_chroma );
return VLC_EGENERIC;
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
p_filter->p_cfg );
- p_sys->p_mask = NULL;
+ psz_string =
+ var_CreateGetStringCommand( p_filter, CFG_PREFIX "mask" );
if( psz_string && *psz_string )
{
LoadMask( p_filter, psz_string );
msg_Err( p_filter, "Error while loading mask (%s).",
psz_string );
}
+ else
+ p_sys->p_mask = NULL;
free( psz_string );
vlc_mutex_init( &p_sys->mask_lock );
- psz_string =
- var_CreateGetStringCommand( p_filter, CFG_PREFIX "mask" );
var_AddCallback( p_filter, CFG_PREFIX "mask", MaskCallback,
p_filter );
p_filter->pf_video_filter = Filter;
if( p_filter->p_sys->p_mask )
picture_Release( p_filter->p_sys->p_mask );
p_image = image_HandlerCreate( p_filter );
+ char *psz_url = make_URI( psz_filename, NULL );
p_filter->p_sys->p_mask =
- image_ReadUrl( p_image, psz_filename, &fmt_in, &fmt_out );
+ image_ReadUrl( p_image, psz_url, &fmt_in, &fmt_out );
+ free( psz_url );
image_HandlerDelete( p_image );
}