[FFmpeg-cvslog] avfilter/vf_minterpolate: do not right shift negative numbers

Davinder Singh git at videolan.org
Mon Aug 29 18:33:47 EEST 2016


ffmpeg | branch: master | Davinder Singh <ds.mudhar at gmail.com> | Mon Aug 29 17:04:54 2016 +0200| [11a631d4a76859e09cd413856e32df6363d25eea] | committer: Paul B Mahol

avfilter/vf_minterpolate: do not right shift negative numbers

It was source of crashes. Use division instead.

Original patch by author. Log message by comitter.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=11a631d4a76859e09cd413856e32df6363d25eea
---

 libavfilter/vf_minterpolate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_minterpolate.c b/libavfilter/vf_minterpolate.c
index 5b41cd8..76a546f 100644
--- a/libavfilter/vf_minterpolate.c
+++ b/libavfilter/vf_minterpolate.c
@@ -936,8 +936,8 @@ static void set_frame_data(MIContext *mi_ctx, int alpha, AVFrame *avf_out)
                 for (i = 0; i < pixel->nb; i++) {
                     Frame *frame = &mi_ctx->frames[pixel->refs[i]];
                     if (chroma) {
-                        x_mv = (x >> mi_ctx->chroma_h_shift) + (pixel->mvs[i][0] >> mi_ctx->chroma_h_shift);
-                        y_mv = (y >> mi_ctx->chroma_v_shift) + (pixel->mvs[i][1] >> mi_ctx->chroma_v_shift);
+                        x_mv = (x >> mi_ctx->chroma_h_shift) + (pixel->mvs[i][0] / (1 << mi_ctx->chroma_h_shift));
+                        y_mv = (y >> mi_ctx->chroma_v_shift) + (pixel->mvs[i][1] / (1 << mi_ctx->chroma_v_shift));
                     } else {
                         x_mv = x + pixel->mvs[i][0];
                         y_mv = y + pixel->mvs[i][1];



More information about the ffmpeg-cvslog mailing list