picture_t * (*pf_convert) ( image_handler_t *, picture_t *,
video_format_t *, video_format_t * );
- picture_t * (*pf_filter) ( image_handler_t *, picture_t *,
- video_format_t *, const char * );
/* Private properties */
vlc_object_t *p_parent;
#define image_Write( a, b, c, d ) a->pf_write( a, b, c, d )
#define image_WriteUrl( a, b, c, d, e ) a->pf_write_url( a, b, c, d, e )
#define image_Convert( a, b, c, d ) a->pf_convert( a, b, c, d )
-#define image_Filter( a, b, c, d ) a->pf_filter( a, b, c, d )
VLC_API vlc_fourcc_t image_Type2Fourcc( const char *psz_name );
VLC_API vlc_fourcc_t image_Ext2Fourcc( const char *psz_name );
static picture_t *ImageConvert( image_handler_t *, picture_t *,
video_format_t *, video_format_t * );
-static picture_t *ImageFilter( image_handler_t *, picture_t *,
- video_format_t *, const char *psz_module );
static decoder_t *CreateDecoder( vlc_object_t *, video_format_t * );
static void DeleteDecoder( decoder_t * );
p_image->pf_write = ImageWrite;
p_image->pf_write_url = ImageWriteUrl;
p_image->pf_convert = ImageConvert;
- p_image->pf_filter = ImageFilter;
return p_image;
}
return p_pif;
}
-/**
- * Filter an image with a psz_module filter
- *
- */
-
-static picture_t *ImageFilter( image_handler_t *p_image, picture_t *p_pic,
- video_format_t *p_fmt, const char *psz_module )
-{
- /* Start a filter */
- if( !p_image->p_filter )
- {
- es_format_t fmt;
- es_format_Init( &fmt, VIDEO_ES, p_fmt->i_chroma );
- fmt.video = *p_fmt;
-
- p_image->p_filter =
- CreateFilter( p_image->p_parent, &fmt, &fmt.video, psz_module );
-
- if( !p_image->p_filter )
- {
- return NULL;
- }
- }
- else
- {
- /* Filters should handle on-the-fly size changes */
- p_image->p_filter->fmt_in.video = *p_fmt;
- p_image->p_filter->fmt_out.video = *p_fmt;
- }
-
- picture_Hold( p_pic );
-
- return p_image->p_filter->pf_video_filter( p_image->p_filter, p_pic );
-}
-
/**
* Misc functions
*