video-scaler: Fix upscaling if width & height change and we're starting not at y=0
authorSebastian Dröge <sebastian@centricular.com>
Wed, 15 Feb 2017 19:41:47 +0000 (21:41 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 15 Feb 2017 19:43:32 +0000 (21:43 +0200)
It was taking the initial input y-offset from the output value, which
only works for y=0 (in which case both are the same). If y > 0, we would
always stay behind the requested input offset and never ever read
anything from the input.

gst-libs/gst/video/video-scaler.c

index 1dbae03..cd100c8 100644 (file)
@@ -1505,7 +1505,6 @@ gst_video_scaler_2d (GstVideoScaler * hscale, GstVideoScaler * vscale,
         vfunc (vscale, lines, LINE (dest, dest_stride, i), i, width, n_elems);
       }
     } else {
-      gint tmp_in = y;
       gint s1, s2;
 
       if (hscale->tmpwidth < width)
@@ -1515,6 +1514,8 @@ gst_video_scaler_2d (GstVideoScaler * hscale, GstVideoScaler * vscale,
       s2 = width * height;
 
       if (s1 <= s2) {
+        gint tmp_in = vscale->resampler.offset[y];
+
         for (i = y; i < height; i++) {
           guint in, j;