if (vlc_plugin_set (p_module, NULL, VLC_SUBMODULE_CREATE, &p_submodule)) \
goto error;
-#define add_requirement( cap ) \
- if (vlc_module_set (p_module, VLC_MODULE_CPU_REQUIREMENT, \
- (int)(CPU_CAPABILITY_##cap))) \
- goto error;
-
#define add_shortcut( shortcut ) \
if (vlc_module_set (p_submodule, VLC_MODULE_SHORTCUT, \
(const char *)(shortcut))) \
set_description (N_("ARM NEON video chroma conversions"))
set_capability ("video filter2", 250)
set_callbacks (Open, NULL)
- add_requirement (NEON)
vlc_module_end ()
void i420_yuyv_neon (uint8_t *out, const uint8_t **in,
/* Sub-version number
* (only used to avoid breakage in dev version when cache structure changes) */
-#define CACHE_SUBVERSION_NUM 6
+#define CACHE_SUBVERSION_NUM 7
/* Format string for the cache filename */
#define CACHENAME_FORMAT \
}
LOAD_STRING( pp_cache[i]->p_module->psz_capability );
LOAD_IMMEDIATE( pp_cache[i]->p_module->i_score );
- LOAD_IMMEDIATE( pp_cache[i]->p_module->i_cpu );
LOAD_IMMEDIATE( pp_cache[i]->p_module->b_unloadable );
LOAD_IMMEDIATE( pp_cache[i]->p_module->b_submodule );
}
LOAD_STRING( p_module->psz_capability );
LOAD_IMMEDIATE( p_module->i_score );
- LOAD_IMMEDIATE( p_module->i_cpu );
LOAD_IMMEDIATE( p_module->b_unloadable );
}
}
}
SAVE_STRING( pp_cache[i]->p_module->psz_capability );
SAVE_IMMEDIATE( pp_cache[i]->p_module->i_score );
- SAVE_IMMEDIATE( pp_cache[i]->p_module->i_cpu );
SAVE_IMMEDIATE( pp_cache[i]->p_module->b_unloadable );
SAVE_IMMEDIATE( pp_cache[i]->p_module->b_submodule );
SAVE_STRING( p_module->psz_capability );
SAVE_IMMEDIATE( p_module->i_score );
- SAVE_IMMEDIATE( p_module->i_cpu );
SAVE_IMMEDIATE( p_module->b_unloadable );
return 0;
module->pp_shortcuts[i] = NULL;
module->psz_capability = (char*)"";
module->i_score = 1;
- module->i_cpu = 0;
module->b_unloadable = true;
module->b_submodule = false;
module->pf_activate = NULL;
submodule->psz_longname = module->psz_longname;
submodule->psz_capability = module->psz_capability;
submodule->i_score = module->i_score;
- submodule->i_cpu = module->i_cpu;
submodule->b_submodule = true;
return submodule;
}
break;
}
- case VLC_MODULE_CPU_REQUIREMENT:
- assert (!module->b_submodule);
- module->i_cpu |= va_arg (ap, int);
- break;
-
case VLC_MODULE_SHORTCUT:
{
unsigned i;
#include "vlc_charset.h"
#include "vlc_arrays.h"
-#include <vlc_cpu.h>
#include "modules/modules.h"
size_t count;
module_t **p_all = module_list_get (&count);
p_list = malloc( count * sizeof( module_list_t ) );
- unsigned i_cpu = vlc_CPU();
/* Parse the module list for capabilities and probe each of them */
count = 0;
/* Test that this module can do what we need */
if( !module_provides( p_module, psz_capability ) )
continue;
- /* Test if we have the required CPU */
- if( (p_module->i_cpu & i_cpu) != p_module->i_cpu )
- continue;
/* If we required a shortcut, check this plugin provides it. */
if( i_shortcuts > 0 )
char *psz_capability; /**< Capability */
int i_score; /**< Score for the capability */
- uint32_t i_cpu; /**< Required CPU capabilities */
bool b_unloadable; /**< Can we be dlclosed? */
bool b_submodule; /**< Is this a submodule? */