}
}
-void avfilter_get_matrix(float x_shift, float y_shift, float angle, float zoom, float *matrix) {
- matrix[0] = zoom * cos(angle);
+void ff_get_matrix(
+ float x_shift,
+ float y_shift,
+ float angle,
+ float scale_x,
+ float scale_y,
+ float *matrix
+) {
+ matrix[0] = scale_x * cos(angle);
matrix[1] = -sin(angle);
matrix[2] = x_shift;
matrix[3] = -matrix[1];
- matrix[4] = matrix[0];
+ matrix[4] = scale_y * cos(angle);
matrix[5] = y_shift;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 1;
}
-void avfilter_add_matrix(const float *m1, const float *m2, float *result)
-{
- int i;
- for (i = 0; i < 9; i++)
- result[i] = m1[i] + m2[i];
-}
-
-void avfilter_sub_matrix(const float *m1, const float *m2, float *result)
-{
- int i;
- for (i = 0; i < 9; i++)
- result[i] = m1[i] - m2[i];
-}
-
-void avfilter_mul_matrix(const float *m1, float scalar, float *result)
-{
- int i;
- for (i = 0; i < 9; i++)
- result[i] = m1[i] * scalar;
-}
-
-int avfilter_transform(const uint8_t *src, uint8_t *dst,
+int ff_affine_transform(const uint8_t *src, uint8_t *dst,
int src_stride, int dst_stride,
int width, int height, const float *matrix,
enum InterpolateMethod interpolate,