summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-01-04 04:15:01 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-01-05 01:45:49 +0100
commit0f931b29f7e969a3c6159cb7173226e806f26f39 (patch)
treeb20f19d7697738fe415025c17afce7c926af07ec /libavfilter
parent9bff052b51f27f6cce04e8d7d8b405c710d7ad67 (diff)
Factorize avpriv_mirror() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/transform.c14
-rw-r--r--libavfilter/vf_owdenoise.c17
-rw-r--r--libavfilter/vf_sab.c19
3 files changed, 9 insertions, 41 deletions
diff --git a/libavfilter/transform.c b/libavfilter/transform.c
index 3fc547e08a..f92fc4d42f 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 5b47f76169..29322b17cc 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 b8af27cdcd..b8bf1bc2ef 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;
}
}