diff options
author | antoine <antoine@FreeBSD.org> | 2015-09-14 04:37:04 +0800 |
---|---|---|
committer | antoine <antoine@FreeBSD.org> | 2015-09-14 04:37:04 +0800 |
commit | 8caef2a872aa21dade9d759ccc90d3e67643f3bb (patch) | |
tree | ec9500d43fe9c2216010324dc6f9918242101554 /graphics/mozjpeg | |
parent | 6946e74a09d5e2030c786601b8738600dcdbd79f (diff) | |
download | freebsd-ports-gnome-8caef2a872aa21dade9d759ccc90d3e67643f3bb.tar.gz freebsd-ports-gnome-8caef2a872aa21dade9d759ccc90d3e67643f3bb.tar.zst freebsd-ports-gnome-8caef2a872aa21dade9d759ccc90d3e67643f3bb.zip |
Fix negative shift with IFAST FDCT and qual=100
This fixes regression tests with clang 3.7.0
PR: 202763
Obtained from: https://github.com/libjpeg-turbo/libjpeg-turbo/commit/4cfa3f4c39c2e46eca3a65c67411d15e08a3fc70
Submitted upstream in: https://github.com/mozilla/mozjpeg/pull/186
Approved by: maintainer timeout (2 weeks)
Diffstat (limited to 'graphics/mozjpeg')
-rw-r--r-- | graphics/mozjpeg/Makefile | 1 | ||||
-rw-r--r-- | graphics/mozjpeg/files/patch-jcdctmgr.c | 41 |
2 files changed, 42 insertions, 0 deletions
diff --git a/graphics/mozjpeg/Makefile b/graphics/mozjpeg/Makefile index cf290a7a6645..0047c0bd7f77 100644 --- a/graphics/mozjpeg/Makefile +++ b/graphics/mozjpeg/Makefile @@ -4,6 +4,7 @@ PORTNAME= mozjpeg PORTVERSION= 3.1 DISTVERSIONPREFIX= v +PORTREVISION= 1 CATEGORIES= graphics MAINTAINER= horia@racoviceanu.com diff --git a/graphics/mozjpeg/files/patch-jcdctmgr.c b/graphics/mozjpeg/files/patch-jcdctmgr.c new file mode 100644 index 000000000000..ab9513cd625e --- /dev/null +++ b/graphics/mozjpeg/files/patch-jcdctmgr.c @@ -0,0 +1,41 @@ +--- jcdctmgr.c.orig 2015-05-18 14:28:09 UTC ++++ jcdctmgr.c +@@ -6,7 +6,7 @@ + * libjpeg-turbo Modifications: + * Copyright (C) 1999-2006, MIYASAKA Masaru. + * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB +- * Copyright (C) 2011, 2014 D. R. Commander ++ * Copyright (C) 2011, 2014-2015 D. R. Commander + * mozjpeg Modifications: + * Copyright (C) 2014, Mozilla Corporation. + * For conditions of distribution and use, see the accompanying README file. +@@ -185,6 +185,19 @@ compute_reciprocal (UINT16 divisor, DCTE + UDCTELEM c; + int b, r; + ++ if (divisor == 1) { ++ /* divisor == 1 means unquantized, so these reciprocal/correction/shift ++ * values will cause the C quantization algorithm to act like the ++ * identity function. Since only the C quantization algorithm is used in ++ * these cases, the scale value is irrelevant. ++ */ ++ dtbl[DCTSIZE2 * 0] = (DCTELEM) 1; /* reciprocal */ ++ dtbl[DCTSIZE2 * 1] = (DCTELEM) 0; /* correction */ ++ dtbl[DCTSIZE2 * 2] = (DCTELEM) 1; /* scale */ ++ dtbl[DCTSIZE2 * 3] = (DCTELEM) (-sizeof(DCTELEM) * 8); /* shift */ ++ return 0; ++ } ++ + b = flss(divisor) - 1; + r = sizeof(DCTELEM) * 8 + b; + +@@ -589,7 +602,8 @@ quantize (JCOEFPTR coef_block, DCTELEM * + + #if BITS_IN_JSAMPLE == 8 + +- UDCTELEM recip, corr, shift; ++ UDCTELEM recip, corr; ++ int shift; + UDCTELEM2 product; + + for (i = 0; i < DCTSIZE2; i++) { |