#define POSY_TEXT N_("Y coordinate")
#define POSY_LONGTEXT N_("Y coordinate of the mask.")
+#define ERASE_HELP N_("Remove zones of the video using a picture as mask")
+
#define CFG_PREFIX "erase-"
vlc_module_begin ()
set_description( N_("Erase video filter") )
set_shortname( N_( "Erase" ))
set_capability( "video filter2", 0 )
+ set_help(ERASE_HELP)
set_category( CAT_VIDEO )
set_subcategory( SUBCAT_VIDEO_VFILTER )
break;
default:
- msg_Err( p_filter, "Unsupported input chroma (%4s)",
+ msg_Err( p_filter, "Unsupported input chroma (%4.4s)",
(char*)&(p_filter->fmt_in.video.i_chroma) );
return VLC_EGENERIC;
}
p_sys->p_mask = NULL;
LoadMask( p_filter, psz_filename );
free( psz_filename );
+
p_sys->i_x = var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "x" );
p_sys->i_y = var_CreateGetIntegerCommand( p_filter, CFG_PREFIX "y" );
if( !p_pic ) return NULL;
- /* If the mask if empty return the picture */
- vlc_mutex_lock( &p_sys->lock );
- if( !p_sys->p_mask )
- {
- vlc_mutex_unlock( &p_sys->lock );
- return p_pic;
- }
-
p_outpic = filter_NewPicture( p_filter );
if( !p_outpic )
{
picture_Release( p_pic );
- vlc_mutex_unlock( &p_sys->lock );
return NULL;
}
- /* Here */
- FilterErase( p_filter, p_pic, p_outpic );
+ /* If the mask is empty: just copy the image */
+ vlc_mutex_lock( &p_sys->lock );
+ if( p_sys->p_mask )
+ FilterErase( p_filter, p_pic, p_outpic );
+ else
+ picture_CopyPixels( p_outpic, p_pic );
vlc_mutex_unlock( &p_sys->lock );
return CopyInfoAndRelease( p_outpic, p_pic );