X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_chroma%2Fi420_rgb.c;h=e74ec66eeea9352bc326b02950d6490158a4eadd;hb=139cf222f01e9d0f88d02d706618428b71147ba8;hp=04fef312e4637ea4c6b6dcb0cfd529a748c544cd;hpb=0f65c7cdfc6d4fc5735163bebbfb3898d0f2ce82;p=vlc diff --git a/modules/video_chroma/i420_rgb.c b/modules/video_chroma/i420_rgb.c index 04fef312e4..e74ec66eee 100644 --- a/modules/video_chroma/i420_rgb.c +++ b/modules/video_chroma/i420_rgb.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "i420_rgb.h" #if defined (MODULE_NAME_IS_i420_rgb) @@ -83,16 +84,17 @@ vlc_module_begin () set_description( N_("I420,IYUV,YV12 to " "RGB2,RV15,RV16,RV24,RV32 conversions") ) set_capability( "video filter2", 80 ) +# define CPU_CAPABILITY 0 #elif defined (MODULE_NAME_IS_i420_rgb_mmx) set_description( N_( "MMX I420,IYUV,YV12 to " "RV15,RV16,RV24,RV32 conversions") ) set_capability( "video filter2", 100 ) - add_requirement( MMX ) +# define CPU_CAPABILITY CPU_CAPABILITY_MMX #elif defined (MODULE_NAME_IS_i420_rgb_sse2) set_description( N_( "SSE2 I420,IYUV,YV12 to " "RV15,RV16,RV24,RV32 conversions") ) set_capability( "video filter2", 120 ) - add_requirement( SSE2 ) +# define CPU_CAPABILITY CPU_CAPABILITY_SSE2 #endif set_callbacks( Activate, Deactivate ) vlc_module_end () @@ -109,6 +111,10 @@ static int Activate( vlc_object_t *p_this ) size_t i_tables_size; #endif +#if CPU_CAPABILITY + if( !(vlc_CPU() & CPU_CAPABILITY) ) + return VLC_EGENERIC; +#endif if( p_filter->fmt_out.video.i_width & 1 || p_filter->fmt_out.video.i_height & 1 ) {