summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2011-04-24 18:16:20 -0700
committerDavid Schleef <ds@schleef.org>2011-04-24 18:22:23 -0700
commit7c0b702e14f81b68dd341109af9efcbd714dbf32 (patch)
treeb75c2801aee1b617bdec3c2ee576382cc7b98ccc
parentd4dbebc606bdae6a765eada22e49787b47e277f1 (diff)
videoscale: Fix ARGB bilinear scaling
Fixes #648548. Orc generates bad code for gst_videoscale_orc_resample_merge_bilinear_u32, so we'll use the slightly slower two-stage process. I'd fix Orc, but it's hard to get excited about fixing a feature that I'm planning to deprecate and replace.
-rw-r--r--gst/videoscale/vs_image.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gst/videoscale/vs_image.c b/gst/videoscale/vs_image.c
index 6716ebad1..e2368fe6a 100644
--- a/gst/videoscale/vs_image.c
+++ b/gst/videoscale/vs_image.c
@@ -121,15 +121,12 @@ vs_image_scale_linear_RGBA (const VSImage * dest, const VSImage * src,
y1++;
}
if (j >= y1) {
- gst_videoscale_orc_resample_merge_bilinear_u32 (dest->pixels +
- i * dest->stride, LINE (j + 1), LINE (j),
- src->pixels + (j + 1) * src->stride, (x >> 8), 0, x_increment,
- dest->width);
+ gst_videoscale_orc_resample_bilinear_u32 (LINE (j),
+ src->pixels + j * src->stride, 0, x_increment, dest->width);
y1++;
- } else {
- orc_merge_linear_u8 (dest->pixels + i * dest->stride,
- LINE (j), LINE (j + 1), (x >> 8), dest->width * 4);
}
+ orc_merge_linear_u8 (dest->pixels + i * dest->stride,
+ LINE (j), LINE (j + 1), (x >> 8), dest->width * 4);
}
acc += y_increment;