8 #include "loadbalance.h"
9 #include "pluginvclient.h"
13 class ChromaKeyWindow
;
21 void copy_from(ChromaKeyConfig
&src
);
22 int equivalent(ChromaKeyConfig
&src
);
23 void interpolate(ChromaKeyConfig
&prev
,
24 ChromaKeyConfig
&next
,
27 int64_t current_frame
);
36 class ChromaKeyHue
: public BC_FSlider
39 ChromaKeyHue(ChromaKey
*plugin
, int x
, int y
);
43 class ChromaKeyThreshold
: public BC_FSlider
46 ChromaKeyThreshold(ChromaKey
*plugin
, int x
, int y
);
50 class ChromaKeyValue
: public BC_FSlider
53 ChromaKeyValue(ChromaKey
*plugin
, int x
, int y
);
57 class ChromaKeySlope
: public BC_FSlider
60 ChromaKeySlope(ChromaKey
*plugin
, int x
, int y
);
64 class ChromaKeyUseValue
: public BC_CheckBox
67 ChromaKeyUseValue(ChromaKey
*plugin
, int x
, int y
);
72 class ChromaKeyWindow
: public BC_Window
75 ChromaKeyWindow(ChromaKey
*plugin
, int x
, int y
);
77 void create_objects();
80 ChromaKeyValue
*value
;
81 ChromaKeyThreshold
*threshold
;
82 ChromaKeyUseValue
*use_value
;
83 ChromaKeySlope
*slope
;
88 PLUGIN_THREAD_HEADER(ChromaKey
, ChromaKeyThread
, ChromaKeyWindow
)
91 class ChromaKeyServer
: public LoadServer
94 ChromaKeyServer(ChromaKey
*plugin
);
96 LoadClient
* new_client();
97 LoadPackage
* new_package();
101 class ChromaKeyPackage
: public LoadPackage
108 class ChromaKeyUnit
: public LoadClient
111 ChromaKeyUnit(ChromaKey
*plugin
, ChromaKeyServer
*server
);
112 void process_package(LoadPackage
*package
);
119 class ChromaKey
: public PluginVClient
122 ChromaKey(PluginServer
*server
);
125 int process_realtime(VFrame
*input
, VFrame
*output
);
127 char* plugin_title();
129 int load_configuration();
132 void save_data(KeyFrame
*keyframe
);
133 void read_data(KeyFrame
*keyframe
);
139 ChromaKeyConfig config
;
140 VFrame
*input
, *output
;
141 ChromaKeyServer
*engine
;
142 ChromaKeyThread
*thread
;