r136: This commit was manufactured by cvs2svn to create tag 'hv_1_1_8'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / pluginvclient.h
blob9200ad1809319e9c42d3ab49c0f8dbb2452a63f9
1 #ifndef PLUGINVCLIENT_H
2 #define PLUGINVCLIENT_H
5 #include "maxbuffers.h"
6 #include "pluginclient.h"
7 #include "vframe.inc"
10 class PluginVClient : public PluginClient
12 public:
13 PluginVClient(PluginServer *server);
14 virtual ~PluginVClient();
16 int get_render_ptrs();
17 int init_realtime_parameters();
18 int delete_nonrealtime_parameters();
19 int is_video();
20 void plugin_process_realtime(VFrame **input,
21 VFrame **output,
22 int64_t current_position,
23 int64_t total_len);
24 virtual int process_realtime(VFrame **input,
25 VFrame **output) { return 0; };
26 virtual int process_realtime(VFrame *input,
27 VFrame *output) { return 0; };
28 // Called by plugin server to render the GUI with rendered data.
29 void plugin_render_gui(void *data);
30 virtual void render_gui(void *data) { };
31 // Called by client to cause GUI to be rendered with data.
32 void send_render_gui(void *data);
33 virtual int process_loop(VFrame **buffers) { return 1; };
34 virtual int process_loop(VFrame *buffer) { return 1; };
35 int plugin_process_loop(VFrame **buffers, int64_t &write_length);
36 int read_frame(VFrame *buffer, int channel, int64_t start_position);
37 int read_frame(VFrame *buffer, int64_t start_position);
41 // Non realtime buffer pointers
42 // Channels of arrays of frames that the client uses.
43 VFrame ***video_in, ***video_out;
45 // point to the start of the buffers
46 ArrayList<VFrame***> input_ptr_master;
47 ArrayList<VFrame***> output_ptr_master;
48 // Pointers to the regions for a single render.
49 // Arrays are channels of arrays of frames.
50 VFrame ***input_ptr_render;
51 VFrame ***output_ptr_render;
53 double project_frame_rate;
54 int project_color_model;
55 int use_float; // Whether user wants floating point calculations.
56 int use_alpha; // Whether user wants alpha calculations.
57 int use_interpolation; // Whether user wants pixel interpolation.
58 float aspect_w, aspect_h; // Aspect ratio
63 #endif