#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_filter.h>
-#include <vlc_vout.h>
+#include <vlc_cpu.h>
#include "i422_yuy2.h"
#if defined (MODULE_NAME_IS_i422_yuy2)
set_description( N_("Conversions from " SRC_FOURCC " to " DEST_FOURCC) )
set_capability( "video filter2", 80 )
+# define CPU_CAPABILITY 0
+# define VLC_TARGET
#elif defined (MODULE_NAME_IS_i422_yuy2_mmx)
set_description( N_("MMX conversions from " SRC_FOURCC " to " DEST_FOURCC) )
set_capability( "video filter2", 100 )
- add_requirement( MMX )
+# define CPU_CAPABILITY CPU_CAPABILITY_MMX
+# define VLC_TARGET VLC_MMX
#elif defined (MODULE_NAME_IS_i422_yuy2_sse2)
set_description( N_("SSE2 conversions from " SRC_FOURCC " to " DEST_FOURCC) )
set_capability( "video filter2", 120 )
- add_requirement( SSE2 )
+# define CPU_CAPABILITY CPU_CAPABILITY_SSE2
+# define VLC_TARGET VLC_SSE
#endif
set_callbacks( Activate, NULL )
vlc_module_end ()
{
filter_t *p_filter = (filter_t *)p_this;
+#if CPU_CAPABILITY
+ if( !(vlc_CPU() & CPU_CAPABILITY) )
+ return VLC_EGENERIC;
+#endif
if( p_filter->fmt_in.video.i_width & 1
|| p_filter->fmt_in.video.i_height & 1 )
{
p_filter->pf_video_filter = I422_UYVY_Filter;
break;
+ case VLC_FOURCC('I','U','Y','V'):
p_filter->pf_video_filter = I422_IUYV_Filter;
break;
/*****************************************************************************
* I422_YUY2: planar YUV 4:2:2 to packed YUY2 4:2:2
*****************************************************************************/
+VLC_TARGET
static void I422_YUY2( filter_t *p_filter, picture_t *p_source,
picture_t *p_dest )
{
/*****************************************************************************
* I422_YVYU: planar YUV 4:2:2 to packed YVYU 4:2:2
*****************************************************************************/
+VLC_TARGET
static void I422_YVYU( filter_t *p_filter, picture_t *p_source,
picture_t *p_dest )
{
/*****************************************************************************
* I422_UYVY: planar YUV 4:2:2 to packed UYVY 4:2:2
*****************************************************************************/
+VLC_TARGET
static void I422_UYVY( filter_t *p_filter, picture_t *p_source,
picture_t *p_dest )
{
/*****************************************************************************
* I422_cyuv: planar YUV 4:2:2 to upside-down packed UYVY 4:2:2
*****************************************************************************/
+VLC_TARGET
static void I422_cyuv( filter_t *p_filter, picture_t *p_source,
picture_t *p_dest )
{