#include <vlc_image.h>
#include <vlc_filter.h>
+#include <vlc_url.h>
#include "filter_picture.h"
/*****************************************************************************
memset( &fmt_out, 0, sizeof( video_format_t ) );
fmt_out.i_chroma = VLC_CODEC_YUVA;
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 );
if( p_filter->p_sys->p_mask )
{
if( p_old_mask )
for( int i_plane = 0; i_plane < p_inpic->i_planes; i_plane++ )
{
- const int i_pitch = p_inpic->p[i_plane].i_pitch;
+ const int i_pitch = p_outpic->p[i_plane].i_pitch;
const int i_2pitch = i_pitch<<1;
const int i_visible_pitch = p_inpic->p[i_plane].i_visible_pitch;
- const int i_lines = p_inpic->p[i_plane].i_lines;
const int i_visible_lines = p_inpic->p[i_plane].i_visible_lines;
- uint8_t *p_inpix = p_inpic->p[i_plane].p_pixels;
uint8_t *p_outpix = p_outpic->p[i_plane].p_pixels;
uint8_t *p_mask = p_sys->p_mask->A_PIXELS;
int i_x = p_sys->i_x, i_y = p_sys->i_y;
i_width = __MIN( i_visible_pitch - i_x, i_width );
/* Copy original pixel buffer */
- vlc_memcpy( p_outpix, p_inpix, i_pitch * i_lines );
+ plane_CopyPixels( &p_outpic->p[i_plane], &p_inpic->p[i_plane] );
/* Horizontal linear interpolation of masked areas */
p_outpix = p_outpic->p[i_plane].p_pixels + i_y*i_pitch + i_x;