5 #include "condition.inc"
6 #include "loadbalance.h"
7 #include "maskautos.inc"
8 #include "maskauto.inc"
14 #define NUM_SPANS 4 /* starting number of spans to be allocated for */
26 class MaskPackage
: public LoadPackage
35 class MaskUnit
: public LoadClient
38 MaskUnit(MaskEngine
*engine
);
41 void process_package(LoadPackage
*package
);
42 void draw_line_clamped(int x1
, int y1
, int x2
, int y2
, int w
, int h
, int hoffset
);
43 void do_feather(VFrame
*output
,
48 int do_feather_2(VFrame
*output
,
53 void blur_strip(float *val_p
,
62 float bd_p
[5], bd_m
[5];
69 class MaskEngine
: public LoadServer
75 void do_mask(VFrame
*output
,
76 int64_t start_position
,
78 double project_frame_rate
,
79 MaskAutos
*keyframe_set
,
81 int points_equivalent(ArrayList
<MaskPoint
*> *new_points
,
82 ArrayList
<MaskPoint
*> *points
);
84 void delete_packages();
86 LoadClient
* new_client();
87 LoadPackage
* new_package();
92 // Temporary for feathering
94 ArrayList
<ArrayList
<MaskPoint
*>*> point_sets
;
96 float feather
; // gui feather
97 float realfeather
; // real feather
100 pthread_mutex_t stage1_finished_mutex
;
101 pthread_cond_t stage1_finished_cond
;
102 int stage1_finished_count
;
103 Mutex protect_data
; // protects the following members
104 int first_nonempty_rowspan
;
105 int last_nonempty_rowspan
;