4 #include "condition.inc"
18 RotateFrame(int cpus
, int width
, int height
);
21 void rotate(VFrame
*output
, VFrame
*input
, double angle
, int interpolate
);
22 int rotate_rightangle(VFrame
*input
,
25 int rotate_obliqueangle(VFrame
*input
,
29 int get_rightdimensions(VFrame
*frame
,
41 RotateEngine
**engine
;
42 // Matrix of source pixel offsets
43 int *int_matrix
, **int_rows
;
44 // Interpolation uses input coordinates for each output coordinate.
45 SourceCoord
*float_matrix
, **float_rows
;
46 VFrame
*output
, *input
;
49 // Compare new angle with old angle
55 class RotateEngine
: public Thread
58 RotateEngine(RotateFrame
*plugin
, int row1
, int row2
);
61 int generate_matrix(int interpolate
);
62 int perform_rotation(VFrame
*input
,
65 int wait_completion();
67 int coords_to_pixel(int &input_y
, int &input_x
);
68 int coords_to_pixel(SourceCoord
&float_pixel
, float &input_y
, float &input_x
);
69 int perform_rotation();
74 int do_matrix
, do_rotation
;
77 Condition
*input_lock
;
78 Condition
*output_lock
;