/*****************************************************************************
* alphamask.c : Alpha layer mask video filter for vlc
*****************************************************************************
- * Copyright (C) 2007 the VideoLAN team
+ * Copyright (C) 2007 VLC authors and VideoLAN
* $Id$
*
* Authors: Antoine Cellerier <dionoea at videolan tod org>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
#include <vlc_common.h>
#include <vlc_plugin.h>
-#include <vlc_vout.h>
#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_loadfile( CFG_PREFIX "mask", NULL, MASK_TEXT,
MASK_LONGTEXT, false )
vlc_module_end ()
filter_sys_t *p_sys;
char *psz_string;
- if( p_filter->fmt_in.video.i_chroma != VLC_FOURCC('Y','U','V','A') )
+ 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 );
- 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_sys->p_mask = NULL;
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 );
+ var_AddCallback( p_filter, CFG_PREFIX "mask", MaskCallback,
+ p_filter );
p_filter->pf_video_filter = Filter;
return VLC_SUCCESS;
video_format_t fmt_in, fmt_out;
memset( &fmt_in, 0, sizeof( video_format_t ) );
memset( &fmt_out, 0, sizeof( video_format_t ) );
- fmt_out.i_chroma = VLC_FOURCC('Y','U','V','A');
+ fmt_out.i_chroma = VLC_CODEC_YUVA;
if( p_filter->p_sys->p_mask )
picture_Release( p_filter->p_sys->p_mask );
p_image = image_HandlerCreate( p_filter );
+ char *psz_url = vlc_path2uri( 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 );
}