From: Matthew Fearnley <matthew.w.fearn...@gmail.com> All the values in score_tab are positive or 0, and so should be the sum returned by block_cmp().
The logic in zmbv_me() assumes that all 'bv' values will be non-negative, in order to guarantee an early return if ever bv==0. --- libavcodec/zmbvenc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/zmbvenc.c b/libavcodec/zmbvenc.c index 0ebae1b254..9e1b44f15d 100644 --- a/libavcodec/zmbvenc.c +++ b/libavcodec/zmbvenc.c @@ -63,11 +63,11 @@ typedef struct ZmbvEncContext { * XXX should be optimized and moved to DSPContext * TODO handle out of edge ME */ -static inline int block_cmp(ZmbvEncContext *c, uint8_t *src, int stride, +static inline unsigned int block_cmp(ZmbvEncContext *c, uint8_t *src, int stride, uint8_t *src2, int stride2, int bw, int bh, int *xored) { - int sum = 0; + unsigned int sum = 0; int i, j; uint16_t histogram[256] = {0}; @@ -99,7 +99,8 @@ static inline int block_cmp(ZmbvEncContext *c, uint8_t *src, int stride, static int zmbv_me(ZmbvEncContext *c, uint8_t *src, int sstride, uint8_t *prev, int pstride, int x, int y, int *mx, int *my, int *xored) { - int dx, dy, tx, ty, tv, bv, bw, bh; + int dx, dy, tx, ty, bw, bh; + unsigned int tv, bv; int txored; *mx = *my = 0; -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel