- EffectChain* effect_chain = (EffectChain*) chain;
- mlt_properties properties = MLT_SERVICE_PROPERTIES( service );
- if ( !mlt_properties_get_int( properties, "_movit finalized" ) ) {
- mlt_properties_set_int( properties, "_movit finalized", 1 );
- effect_chain->add_effect( new Mlt::VerticalFlip() );
- effect_chain->finalize();
- }
- effect_chain->render_to_fbo( fbo, width, height );
+ return (mlt_service) get_frame_specific_data( service, frame, "_movit effect input", NULL );
+}
+
+void GlslManager::set_effect_input( mlt_service service, mlt_frame frame, mlt_service input_service )
+{
+ set_frame_specific_data( service, frame, "_movit effect input", input_service, 0, NULL, NULL );
+}
+
+void GlslManager::get_effect_secondary_input( mlt_service service, mlt_frame frame, mlt_service *input_service, mlt_frame *input_frame)
+{
+ *input_service = (mlt_service) get_frame_specific_data( service, frame, "_movit effect secondary input", NULL );
+ *input_frame = (mlt_frame) get_frame_specific_data( service, frame, "_movit effect secondary input frame", NULL );
+}
+
+void GlslManager::set_effect_secondary_input( mlt_service service, mlt_frame frame, mlt_service input_service, mlt_frame input_frame )
+{
+ set_frame_specific_data( service, frame, "_movit effect secondary input", input_service, 0, NULL, NULL );
+ set_frame_specific_data( service, frame, "_movit effect secondary input frame", input_frame, 0, NULL, NULL );