00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef AVFILTER_TRANSFORM_H
00023 #define AVFILTER_TRANSFORM_H
00024
00037 enum InterpolateMethod {
00038 INTERPOLATE_NEAREST,
00039 INTERPOLATE_BILINEAR,
00040 INTERPOLATE_BIQUADRATIC,
00041 INTERPOLATE_COUNT,
00042 };
00043
00044
00045 #define INTERPOLATE_DEFAULT INTERPOLATE_BILINEAR
00046 #define INTERPOLATE_FAST INTERPOLATE_NEAREST
00047 #define INTERPOLATE_BEST INTERPOLATE_BIQUADRATIC
00048
00049 enum FillMethod {
00050 FILL_BLANK,
00051 FILL_ORIGINAL,
00052 FILL_CLAMP,
00053 FILL_MIRROR,
00054 FILL_COUNT,
00055 };
00056
00057
00058 #define FILL_DEFAULT FILL_ORIGINAL
00059
00074 void avfilter_get_matrix(float x_shift, float y_shift, float angle, float zoom, float *matrix);
00075
00083 void avfilter_add_matrix(const float *m1, const float *m2, float *result);
00084
00092 void avfilter_sub_matrix(const float *m1, const float *m2, float *result);
00093
00101 void avfilter_mul_matrix(const float *m1, float scalar, float *result);
00102
00118 void avfilter_transform(const uint8_t *src, uint8_t *dst,
00119 int src_stride, int dst_stride,
00120 int width, int height, const float *matrix,
00121 enum InterpolateMethod interpolate,
00122 enum FillMethod fill);
00123
00124 #endif