mlt_filter filter_movit_resample_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) { mlt_filter filter = NULL; GlslManager* glsl = GlslManager::get_instance(); if ( glsl && ( filter = mlt_filter_new() ) ) { mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); glsl->add_ref( properties ); filter->process = process; } return filter; }
mlt_filter filter_movit_vignette_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) { mlt_filter filter = NULL; GlslManager* glsl = GlslManager::get_instance(); if ( glsl && ( filter = mlt_filter_new() ) ) { mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); glsl->add_ref( properties ); filter->process = process; mlt_properties_set_double( MLT_FILTER_PROPERTIES(filter), "radius", 0.3 ); mlt_properties_set_double( MLT_FILTER_PROPERTIES(filter), "inner_radius", 0.3 ); } return filter; }
mlt_filter filter_white_balance_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) { mlt_filter filter = NULL; GlslManager* glsl = GlslManager::get_instance(); if ( glsl && ( filter = mlt_filter_new() ) ) { mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); glsl->add_ref( properties ); mlt_properties_set( properties, "neutral_color", arg? arg : "#7f7f7f" ); mlt_properties_set_double( properties, "color_temperature", 6500.0 ); filter->process = process; } return filter; }
mlt_filter filter_movit_opacity_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) { mlt_filter filter = NULL; GlslManager* glsl = GlslManager::get_instance(); if ( glsl && ( filter = mlt_filter_new() ) ) { mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); glsl->add_ref( properties ); mlt_properties_set( properties, "opacity", arg? arg : "1" ); mlt_properties_set_double( properties, "alpha", -1.0 ); filter->process = process; } return filter; }
mlt_filter filter_movit_glow_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) { mlt_filter filter = NULL; GlslManager* glsl = GlslManager::get_instance(); if ( glsl && ( filter = mlt_filter_new() ) ) { mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); glsl->add_ref( properties ); mlt_properties_set_double( properties, "radius", 20.0 ); mlt_properties_set_double( properties, "blur_mix", 1.0 ); mlt_properties_set_double( properties, "highlight_cutoff", 0.2 ); filter->process = process; } return filter; }
mlt_filter filter_movit_convert_init( mlt_profile profile, mlt_service_type type, const char *id, char *arg ) { mlt_filter filter = NULL; GlslManager* glsl = GlslManager::get_instance(); if ( glsl && ( filter = mlt_filter_new() ) ) { mlt_properties properties = MLT_FILTER_PROPERTIES( filter ); glsl->add_ref( properties ); #ifdef WIN32 // XXX avcolor_space is crashing on Windows in this context! mlt_filter cpu_csc = NULL; #else mlt_filter cpu_csc = create_filter( profile, "avcolor_space" ); #endif if ( !cpu_csc ) cpu_csc = create_filter( profile, "imageconvert" ); if ( cpu_csc ) mlt_properties_set_data( MLT_FILTER_PROPERTIES( filter ), "cpu_csc", cpu_csc, 0, (mlt_destructor) mlt_filter_close, NULL ); filter->process = process; } return filter; }