{
if( !plugin_open ) return;
PluginVClient *vclient = (PluginVClient*)client;
+ to_ram(input);
+ to_ram(output);
vclient->source_position = current_position;
vclient->source_start = 0;
return use_opengl;
}
+int PluginServer::to_ram(VFrame *vframe)
+{
+ if( vframe->get_opengl_state() == VFrame::RAM ) return 0;
+ if( !vdevice ) return -1;
+ VDeviceX11 *vdevice_x11 = (VDeviceX11*) vdevice->get_output_base();
+ int vw = vframe->get_w(), vh = vframe->get_h();
+ vdevice_x11->do_camera(vframe, vframe, 0,0,vw,vh, 0,0,vw,vh); // copy to ram
+ return 1;
+}
void PluginServer::run_opengl(PluginClient *plugin_client)
{
Plugin *plugin = edl->tracks->plugin_exists(plugin_id);
if( !plugin )
keyframe->copy_data(src);
+ else if( plugin->is_transition() )
+ plugin->get_keyframe()->copy_data(src);
else
// Span keyframes
plugin->keyframes->update_parameter(src);