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
);
49 // Start plugin rendering
51 // Stop plugin rendering in case any resources have to be freed.
53 // Current_position is relative to the EDL rate.
54 // If direction is REVERSE, the object before current_position is tested.
55 void update_transition(int64_t current_position
, int direction
);
58 // CICache used during effect
60 // EDL used during effect
62 // Not available in menu effects
63 CommonRender
*commonrender
;
64 // Not available in menu effects
65 RenderEngine
*renderengine
;
66 // Not available in realtime playback
67 PluginArray
*plugin_array
;
69 // TRACK_AUDIO or TRACK_VIDEO
72 // Pointer to transition in EDL
74 // PluginServer for transition
75 PluginServer
*transition_server
;
77 // Currently active plugins.
78 // Use one AttachmentPoint for every pluginset to allow shared plugins to create
79 // extra plugin servers.
80 // AttachmentPoints are 0 if there is no plugin on the pluginset.
81 AttachmentPoint
**attachments
;
82 int total_attachments
;
83 // AttachmentPoints are swapped in at render start to keep unchanged modules
85 AttachmentPoint
**new_attachments
;
86 int new_total_attachments
;