bool_t ms_factory_filter_from_name_enabled(const MSFactory *factory, const char *name) { MSFilterDesc *desc=ms_factory_lookup_filter_by_name(factory,name); if (!desc) { ms_error("Cannot get enable/disable state for unknown filter [%s] on factory [%p]",name,factory); return FALSE; } return desc->flags & MS_FILTER_IS_ENABLED; }
int ms_factory_enable_filter_from_name(MSFactory *factory, const char *name, bool_t enable) { MSFilterDesc *desc=ms_factory_lookup_filter_by_name(factory,name); if (!desc) { ms_error("Cannot enable/disable unknown filter [%s] on factory [%p]",name,factory); return -1; } if (enable) desc->flags |= MS_FILTER_IS_ENABLED; else desc->flags &= ~MS_FILTER_IS_ENABLED; ms_message("Filter [%s] %s on factory [%p]",name,(enable ? "enabled" : "disabled"),factory); return 0; }
static void filter_register_tester(void) { MSFilter* filter; MSFactory* factory = NULL; factory = ms_factory_new_with_voip(); BC_ASSERT_PTR_NOT_NULL(ms_factory_lookup_filter_by_name(factory, "MSVoidSource")); BC_ASSERT_PTR_NOT_NULL(ms_factory_lookup_filter_by_name(factory, "MSVoidSource")); filter= ms_factory_create_decoder(factory, "pcma"); BC_ASSERT_PTR_NOT_NULL(filter); ms_filter_destroy(filter); BC_ASSERT_PTR_NOT_NULL(ms_factory_lookup_filter_by_name(factory,"MSVoidSource")); filter= ms_factory_create_decoder(factory, "pcma"); BC_ASSERT_PTR_NOT_NULL(filter); ms_filter_destroy(filter); ms_factory_destroy(factory); }
MSFilter *ms_factory_create_filter_from_name(MSFactory* factory, const char *filter_name){ MSFilterDesc *desc=ms_factory_lookup_filter_by_name(factory, filter_name); if (desc==NULL) return NULL; return ms_factory_create_filter_from_desc(factory,desc); }
MSFilterDesc *ms_filter_lookup_by_name(const char *filter_name){ return ms_factory_lookup_filter_by_name(ms_factory_get_fallback(),filter_name); }