- Effect* effect = GlslManager::get_effect( MLT_FILTER_SERVICE( filter ), frame );
- if ( effect ) {
- mlt_position position = mlt_filter_get_position( filter, frame );
- mlt_position length = mlt_filter_get_length2( filter, frame );
- bool ok = effect->set_int( "matrix_size",
- mlt_properties_anim_get_int( properties, "matrix_size", position, length ) );
- ok |= effect->set_float( "cirlce_radius",
- mlt_properties_anim_get_double( properties, "circle_radius", position, length ) );
- ok |= effect->set_float( "gaussian_radius",
- mlt_properties_anim_get_double( properties, "gaussian_radius", position, length ) );
- ok |= effect->set_float( "correlation",
- mlt_properties_anim_get_double( properties, "correlation", position, length ) );
- ok |= effect->set_float( "noise",
- mlt_properties_anim_get_double( properties, "noise", position, length ) );
- assert(ok);
- }
+ mlt_position position = mlt_filter_get_position( filter, frame );
+ mlt_position length = mlt_filter_get_length2( filter, frame );
+ int matrix_size = mlt_properties_anim_get_int( properties, "matrix_size", position, length );
+ mlt_properties_set_int( properties, "movit.parms.int.matrix_size", matrix_size );
+ mlt_properties_set_double( properties, "movit.parms.float.circle_radius",
+ mlt_properties_anim_get_double( properties, "circle_radius", position, length ) );
+ mlt_properties_set_double( properties, "movit.parms.float.gaussian_radius",
+ mlt_properties_anim_get_double( properties, "gaussian_radius", position, length ) );
+ mlt_properties_set_double( properties, "movit.parms.float.correlation",
+ mlt_properties_anim_get_double( properties, "correlation", position, length ) );
+ mlt_properties_set_double( properties, "movit.parms.float.noise",
+ mlt_properties_anim_get_double( properties, "noise", position, length ) );
+
+ // DeconvolutionSharpenEffect compiles the matrix size into the shader,
+ // so we need to regenerate the chain if this changes.
+ char fingerprint[256];
+ snprintf( fingerprint, sizeof( fingerprint ), "s=%d", matrix_size );
+ mlt_properties_set( properties, "_movit fingerprint", fingerprint );
+