diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-01-04 04:15:01 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-01-05 01:45:49 +0100 |
commit | 0f931b29f7e969a3c6159cb7173226e806f26f39 (patch) | |
tree | b20f19d7697738fe415025c17afce7c926af07ec /libavfilter | |
parent | 9bff052b51f27f6cce04e8d7d8b405c710d7ad67 (diff) | |
download | ffmpeg-streaming-0f931b29f7e969a3c6159cb7173226e806f26f39.zip ffmpeg-streaming-0f931b29f7e969a3c6159cb7173226e806f26f39.tar.gz |
Factorize avpriv_mirror() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/transform.c | 14 | ||||
-rw-r--r-- | libavfilter/vf_owdenoise.c | 17 | ||||
-rw-r--r-- | libavfilter/vf_sab.c | 19 |
3 files changed, 9 insertions, 41 deletions
diff --git a/libavfilter/transform.c b/libavfilter/transform.c index 3fc547e..f92fc4d 100644 --- a/libavfilter/transform.c +++ b/libavfilter/transform.c @@ -136,16 +136,6 @@ void avfilter_mul_matrix(const float *m1, float scalar, float *result) result[i] = m1[i] * scalar; } -static inline int mirror(int v, int m) -{ - while ((unsigned)v > (unsigned)m) { - v = -v; - if (v < 0) - v += 2 * m; - } - return v; -} - int avfilter_transform(const uint8_t *src, uint8_t *dst, int src_stride, int dst_stride, int width, int height, const float *matrix, @@ -186,8 +176,8 @@ int avfilter_transform(const uint8_t *src, uint8_t *dst, def = src[(int)y_s * src_stride + (int)x_s]; break; case FILL_MIRROR: - x_s = mirror(x_s, width-1); - y_s = mirror(y_s, height-1); + x_s = avpriv_mirror(x_s, width-1); + y_s = avpriv_mirror(y_s, height-1); av_assert2(x_s >= 0 && y_s >= 0); av_assert2(x_s < width && y_s < height); diff --git a/libavfilter/vf_owdenoise.c b/libavfilter/vf_owdenoise.c index 5b47f76..29322b1 100644 --- a/libavfilter/vf_owdenoise.c +++ b/libavfilter/vf_owdenoise.c @@ -98,15 +98,6 @@ static const double icoeff[2][5] = { } }; -static inline int mirror(int x, int w) -{ - while ((unsigned)x > (unsigned)w) { - x = -x; - if (x < 0) - x += 2 * w; - } - return x; -} static inline void decompose(float *dst_l, float *dst_h, const float *src, int linesize, int w) @@ -116,8 +107,8 @@ static inline void decompose(float *dst_l, float *dst_h, const float *src, double sum_l = src[x * linesize] * coeff[0][0]; double sum_h = src[x * linesize] * coeff[1][0]; for (i = 1; i <= 4; i++) { - const double s = src[mirror(x - i, w - 1) * linesize] - + src[mirror(x + i, w - 1) * linesize]; + const double s = src[avpriv_mirror(x - i, w - 1) * linesize] + + src[avpriv_mirror(x + i, w - 1) * linesize]; sum_l += coeff[0][i] * s; sum_h += coeff[1][i] * s; @@ -135,8 +126,8 @@ static inline void compose(float *dst, const float *src_l, const float *src_h, double sum_l = src_l[x * linesize] * icoeff[0][0]; double sum_h = src_h[x * linesize] * icoeff[1][0]; for (i = 1; i <= 4; i++) { - const int x0 = mirror(x - i, w - 1) * linesize; - const int x1 = mirror(x + i, w - 1) * linesize; + const int x0 = avpriv_mirror(x - i, w - 1) * linesize; + const int x1 = avpriv_mirror(x + i, w - 1) * linesize; sum_l += icoeff[0][i] * (src_l[x0] + src_l[x1]); sum_h += icoeff[1][i] * (src_h[x0] + src_h[x1]); diff --git a/libavfilter/vf_sab.c b/libavfilter/vf_sab.c index b8af27c..b8bf1bc 100644 --- a/libavfilter/vf_sab.c +++ b/libavfilter/vf_sab.c @@ -220,19 +220,6 @@ static int config_props(AVFilterLink *inlink) #define NB_PLANES 4 -static inline int mirror(int x, int w) -{ - if (!w) - return 0; - - while ((unsigned)x > (unsigned)w) { - x = -x; - if (x < 0) - x += 2 * w; - } - return x; -} - static void blur(uint8_t *dst, const int dst_linesize, const uint8_t *src, const int src_linesize, const int w, const int h, FilterParam *fp) @@ -266,7 +253,7 @@ static void blur(uint8_t *dst, const int dst_linesize, for (dy = 0; dy < radius*2 + 1; dy++) { int dx; int iy = y+dy - radius; - iy = mirror(iy, h-1); + iy = avpriv_mirror(iy, h-1); for (dx = 0; dx < radius*2 + 1; dx++) { const int ix = x+dx - radius; @@ -277,11 +264,11 @@ static void blur(uint8_t *dst, const int dst_linesize, for (dy = 0; dy < radius*2+1; dy++) { int dx; int iy = y+dy - radius; - iy = mirror(iy, h-1); + iy = avpriv_mirror(iy, h-1); for (dx = 0; dx < radius*2 + 1; dx++) { int ix = x+dx - radius; - ix = mirror(ix, w-1); + ix = avpriv_mirror(ix, w-1); UPDATE_FACTOR; } } |