#define MASK_TEXT N_("Transparency mask")
#define MASK_LONGTEXT N_( \
- "Alpha blending transparency mask. Use's a png alpha channel.")
+ "Alpha blending transparency mask. Uses a png alpha channel.")
#define CFG_PREFIX "alphamask-"
/* Allocate structure */
p_filter->p_sys = malloc( sizeof( filter_sys_t ) );
if( p_filter->p_sys == NULL )
- {
- msg_Err( p_filter, "out of memory" );
return VLC_ENOMEM;
- }
p_sys = p_filter->p_sys;
config_ChainParse( p_filter, CFG_PREFIX, ppsz_filter_options,
vlc_mutex_destroy( &p_sys->mask_lock );
if( p_filter->p_sys->p_mask )
- p_filter->p_sys->p_mask->pf_release( p_filter->p_sys->p_mask );
+ picture_Release( p_filter->p_sys->p_mask );
free( p_filter->p_sys );
}
|| p_mask->i_visible_lines
!= p_apic->i_visible_lines )
{
- msg_Warn( p_filter,
+ msg_Err( p_filter,
"Mask size (%d x %d) and image size (%d x %d) "
"don't match. The mask will not be applied.",
p_mask->i_visible_pitch,
}
else
{
- if( p_mask->i_pitch != p_apic->i_pitch
- || p_mask->i_lines != p_apic->i_lines )
- {
- /* visible plane sizes match ... but not the underlying
- * buffer. I'm not sure that this can happen,
- * but better safe than sorry. */
- int i_line;
- int i_lines = p_mask->i_visible_lines;
- uint8_t *p_src = p_mask->p_pixels;
- uint8_t *p_dst = p_apic->p_pixels;
- int i_src_pitch = p_mask->i_pitch;
- int i_dst_pitch = p_apic->i_pitch;
- int i_visible_pitch = p_mask->i_visible_pitch;
- for( i_line = 0; i_line < i_lines; i_line++,
- p_src += i_src_pitch, p_dst += i_dst_pitch )
- {
- vlc_memcpy( p_dst, p_src, i_visible_pitch );
- }
- }
- else
- {
- /* plane sizes match */
- vlc_memcpy( p_apic->p_pixels, p_mask->p_pixels,
- p_mask->i_pitch * p_mask->i_lines );
- }
+ plane_CopyPixels( p_apic, p_mask );
}
vlc_mutex_unlock( &p_sys->mask_lock );
return p_pic;
memset( &fmt_out, 0, sizeof( video_format_t ) );
fmt_out.i_chroma = VLC_FOURCC('Y','U','V','A');
if( p_filter->p_sys->p_mask )
- p_filter->p_sys->p_mask->pf_release( p_filter->p_sys->p_mask );
+ picture_Release( p_filter->p_sys->p_mask );
p_image = image_HandlerCreate( p_filter );
p_filter->p_sys->p_mask =
image_ReadUrl( p_image, psz_filename, &fmt_in, &fmt_out );
}
else if( p_sys->p_mask )
{
- p_sys->p_mask->pf_release( p_sys->p_mask );
+ picture_Release( p_sys->p_mask );
p_sys->p_mask = NULL;
}
vlc_mutex_unlock( &p_sys->mask_lock );