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
);
45 // Get attachment number or return 0 if out of range.
46 AttachmentPoint
* get_attachment(int number
);
50 // Current_position is relative to the EDL rate.
51 // If direction is REVERSE, the object before current_position is tested.
52 void update_transition(int64_t current_position
, int direction
);
55 // CICache used during effect
57 // EDL used during effect
59 // Not available in menu effects
60 CommonRender
*commonrender
;
61 // Not available in menu effects
62 RenderEngine
*renderengine
;
63 // Not available in realtime playback
64 PluginArray
*plugin_array
;
66 // TRACK_AUDIO or TRACK_VIDEO
69 // Pointer to transition in EDL
71 // PluginServer for transition
72 PluginServer
*transition_server
;
74 // Currently active plugins.
75 // Use one AttachmentPoint for every pluginset to allow shared plugins to create
76 // extra plugin servers.
77 // AttachmentPoints are 0 if there is no plugin on the pluginset.
78 AttachmentPoint
**attachments
;
79 int total_attachments
;
80 // AttachmentPoints are swapped in at render start to keep unchanged modules
82 AttachmentPoint
**new_attachments
;
83 int new_total_attachments
;