svn commit: r396855 - in head/graphics/jpeg-turbo: . files
Antoine Brodin
antoine at FreeBSD.org
Sun Sep 13 20:27:09 UTC 2015
Author: antoine
Date: Sun Sep 13 20:27:07 2015
New Revision: 396855
URL: https://svnweb.freebsd.org/changeset/ports/396855
Log:
Fix negative shift with IFAST FDCT and qual=100
This fixes regression tests with clang 3.7.0
PR: 202762
Obtained from: https://github.com/libjpeg-turbo/libjpeg-turbo/commit/4cfa3f4c39c2e46eca3a65c67411d15e08a3fc70
Approved by: maintainer timeout (15 days)
Added:
head/graphics/jpeg-turbo/files/patch-jcdctmgr.c (contents, props changed)
Modified:
head/graphics/jpeg-turbo/Makefile
Modified: head/graphics/jpeg-turbo/Makefile
==============================================================================
--- head/graphics/jpeg-turbo/Makefile Sun Sep 13 19:41:01 2015 (r396854)
+++ head/graphics/jpeg-turbo/Makefile Sun Sep 13 20:27:07 2015 (r396855)
@@ -3,7 +3,7 @@
PORTNAME= jpeg-turbo
PORTVERSION= 1.4.0
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= graphics
MASTER_SITES= SF/lib${PORTNAME}/${PORTVERSION}
DISTNAME= lib${PORTNAME}-${PORTVERSION}
Added: head/graphics/jpeg-turbo/files/patch-jcdctmgr.c
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/graphics/jpeg-turbo/files/patch-jcdctmgr.c Sun Sep 13 20:27:07 2015 (r396855)
@@ -0,0 +1,41 @@
+--- jcdctmgr.c.orig 2014-11-06 09:32:38 UTC
++++ jcdctmgr.c
+@@ -6,7 +6,7 @@
+ * libjpeg-turbo Modifications:
+ * Copyright (C) 1999-2006, MIYASAKA Masaru.
+ * Copyright 2009 Pierre Ossman <ossman at cendio.se> for Cendio AB
+- * Copyright (C) 2011, 2014 D. R. Commander
++ * Copyright (C) 2011, 2014-2015 D. R. Commander
+ * For conditions of distribution and use, see the accompanying README file.
+ *
+ * This file contains the forward-DCT management logic.
+@@ -175,6 +175,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;
+
+@@ -395,7 +408,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++) {
More information about the svn-ports-head
mailing list