4 #include "condition.inc"
18 RotateFrame(int cpus
, int width
, int height
);
22 void rotate(VFrame
*output
,
26 int rotate_rightangle(VFrame
*input
,
29 int rotate_obliqueangle(VFrame
*input
,
33 int get_rightdimensions(VFrame
*frame
,
45 RotateEngine
**engine
;
46 // Matrix of source pixel offsets
47 int *int_matrix
, **int_rows
;
48 // Interpolation uses input coordinates for each output coordinate.
49 SourceCoord
*float_matrix
, **float_rows
;
50 VFrame
*output
, *input
;
53 // Compare new angle with old angle
59 class RotateEngine
: public Thread
62 RotateEngine(RotateFrame
*plugin
, int row1
, int row2
);
65 int generate_matrix(int interpolate
);
66 int perform_rotation(VFrame
*input
,
69 int wait_completion();
71 int coords_to_pixel(int &input_y
, int &input_x
);
72 int coords_to_pixel(SourceCoord
&float_pixel
, float &input_y
, float &input_x
);
73 int perform_rotation();
78 int do_matrix
, do_rotation
;
81 Condition
*input_lock
;
82 Condition
*output_lock
;