4 #include "attachmentpoint.inc"
6 #include "commonrender.inc"
11 #include "maxchannels.h"
15 #include "pluginarray.inc"
16 #include "pluginserver.inc"
17 #include "pluginset.inc"
18 #include "renderengine.inc"
19 #include "sharedlocation.inc"
25 Module(RenderEngine
*renderengine
,
26 CommonRender
*commonrender
,
27 PluginArray
*plugin_array
,
32 virtual void create_objects();
33 void create_new_attachments();
34 // Swaps in changed plugin servers for old plugins servers during playback.
35 // Allows data in unchanged plugins to continue. Prepares pointers in
36 // plugin server to be added in expansion.
37 void swap_attachments();
38 // Reset processing status of attachments before every buffer is processed.
39 void reset_attachments();
40 virtual AttachmentPoint
* new_attachment(Plugin
*plugin
) { return 0; };
41 virtual int get_buffer_size() { return 0; };
43 AttachmentPoint
* attachment_of(Plugin
*plugin
);
46 // Current_position is relative to the EDL rate.
47 // If direction is REVERSE, the object before current_position is tested.
48 void update_transition(int64_t current_position
, int direction
);
51 // CICache used during effect
53 // EDL used during effect
55 // Not available in menu effects
56 CommonRender
*commonrender
;
57 // Not available in menu effects
58 RenderEngine
*renderengine
;
59 // Not available in realtime playback
60 PluginArray
*plugin_array
;
62 // TRACK_AUDIO or TRACK_VIDEO
65 // Pointer to transition in EDL
67 // PluginServer for transition
68 PluginServer
*transition_server
;
70 // Currently active plugins.
71 // Use one AttachmentPoint for every pluginset to allow shared plugins to create
72 // extra plugin servers.
73 // AttachmentPoints are 0 if there is no plugin on the pluginset.
74 AttachmentPoint
**attachments
;
75 int total_attachments
;
76 // AttachmentPoints are swapped in at render start to keep unchanged modules
78 AttachmentPoint
**new_attachments
;
79 int new_total_attachments
;