diff --git a/libavfilter/vf_vif.c b/libavfilter/vf_vif.c index 64eb39699f..412019a8cf 100644 --- a/libavfilter/vf_vif.c +++ b/libavfilter/vf_vif.c @@ -27,6 +27,7 @@ #include +#include "libavutil/internal.h" #include "libavutil/mem.h" #include "libavutil/opt.h" #include "libavutil/pixdesc.h" @@ -238,7 +239,7 @@ static int vif_filter1d(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) int ii = i - filt_w / 2 + filt_i; float img_coeff; - ii = ii < 0 ? -ii : (ii >= h ? 2 * h - ii - 1 : ii); + ii = avpriv_mirror(ii, h - 1); img_coeff = src[ii * src_stride + j]; sum += filt_coeff * img_coeff; @@ -267,7 +268,7 @@ static int vif_filter1d(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs) int jj = j - filt_w / 2 + filt_j; float img_coeff; - jj = jj < 0 ? -jj : (jj >= w ? 2 * w - jj - 1 : jj); + jj = avpriv_mirror(jj, w - 1); img_coeff = temp[jj]; sum += filt_coeff * img_coeff;