Example #1
0
int VDXVideoFilterModuleInit2(struct VDXFilterModule *fm, const VDXFilterFunctions *ff, int vdfd_ver) {
  for(int i=0; ; ++i){
    VDXFilterDefinition2* def = VDXGetVideoFilterDefinition(i);
    if(!def) break;
    ff->addFilter(fm, def, sizeof(VDXFilterDefinition));
  }

  VDXVideoFilter::SetAPIVersion(vdfd_ver);
  
  return 0;
}
int VDXVideoFilterModuleInit2(struct VDXFilterModule *fm, const VDXFilterFunctions *ff, int& vdfd_ver, int& vdfd_compat, int ver_compat_target) {
	int def_count = 0;

	while(VDXGetVideoFilterDefinition(def_count))
		++def_count;

	g_VDXRegisteredFilters = (VDXFilterDefinition **)malloc(sizeof(VDXFilterDefinition *) * def_count);
	if (!g_VDXRegisteredFilters)
		return 1;

	memset(g_VDXRegisteredFilters, 0, sizeof(VDXFilterDefinition *) * def_count);

	for(int i=0; i<def_count; ++i)
	    g_VDXRegisteredFilters[i] = ff->addFilter(fm, VDXGetVideoFilterDefinition(i), sizeof(VDXFilterDefinition));

	g_VFVAPIVersion = vdfd_ver;
    vdfd_ver        = VIRTUALDUB_FILTERDEF_VERSION;
	vdfd_compat     = ver_compat_target;
	
	return 0;
}