/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <errno.h> /* ENOMEM */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
+#include <errno.h> /* ENOMEM */
+
#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_filter.h>
*****************************************************************************/
static int Activate ( vlc_object_t * );
static void I420_YMGA ( filter_t *, picture_t *, picture_t * );
+static picture_t *I420_YMGA_Filter( filter_t *, picture_t * );
/*****************************************************************************
* Module descriptor
*****************************************************************************/
-vlc_module_begin();
+vlc_module_begin ()
#if defined (MODULE_NAME_IS_i420_ymga)
- set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) );
- set_capability( "chroma", 80 );
+ set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) )
+ set_capability( "video filter2", 80 )
#elif defined (MODULE_NAME_IS_i420_ymga_mmx)
- set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) );
- set_capability( "chroma", 100 );
- add_requirement( MMX );
+ set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) )
+ set_capability( "video filter2", 100 )
+ add_requirement( MMX )
#endif
- set_callbacks( Activate, NULL );
-vlc_module_end();
+ set_callbacks( Activate, NULL )
+vlc_module_end ()
/*****************************************************************************
* Activate: allocate a chroma function
return -1;
}
+ if( p_filter->fmt_in.video.i_width != p_filter->fmt_out.video.i_width
+ || p_filter->fmt_in.video.i_height != p_filter->fmt_out.video.i_height )
+ return -1;
+
switch( p_filter->fmt_in.video.i_chroma )
{
case VLC_FOURCC('Y','V','1','2'):
switch( p_filter->fmt_out.video.i_chroma )
{
case VLC_FOURCC('Y','M','G','A'):
- p_filter->pf_video_filter_io = I420_YMGA;
+ p_filter->pf_video_filter = I420_YMGA_Filter;
break;
default:
/* Following functions are local */
+VIDEO_FILTER_WRAPPER( I420_YMGA )
+
/*****************************************************************************
* I420_YMGA: planar YUV 4:2:0 to Matrox's planar/packed YUV 4:2:0
*****************************************************************************/