aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authordcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2013-05-07 21:17:35 +0000
committerdcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2013-05-07 21:17:35 +0000
commit6f6a8d9757b784a6e10e0ed4d52737c707a7c7c4 (patch)
tree7f1296535e76fc3d843c99d40b877d0e5c943692 /java
parent1e0687100ad904c2c6d2ca717a5dbcb767367ea5 (diff)
Fix incorrect data output and buffer overruns in the new tjDecompressToYUV2() function whenever scaling is used along with a 4:2:0 JPEG image; extend tjunittest and TJUnitTest to test for these issues.
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@982 632fc199-4ca6-4c93-a231-07263d6284db
Diffstat (limited to 'java')
-rw-r--r--java/TJUnitTest.java13
1 files changed, 7 insertions, 6 deletions
diff --git a/java/TJUnitTest.java b/java/TJUnitTest.java
index 2cce93b..c894b13 100644
--- a/java/TJUnitTest.java
+++ b/java/TJUnitTest.java
@@ -757,14 +757,15 @@ public class TJUnitTest {
String baseName, int subsamp,
int flags) throws Exception {
int i;
- if (subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY) {
- TJScalingFactor[] sf = TJ.getScalingFactors();
- for (i = 0; i < sf.length; i++)
+ TJScalingFactor[] sf = TJ.getScalingFactors();
+ for (i = 0; i < sf.length; i++) {
+ int num = sf[i].getNum();
+ int denom = sf[i].getDenom();
+ if (subsamp == TJ.SAMP_444 || subsamp == TJ.SAMP_GRAY ||
+ (num == 1 && (denom == 4 || denom == 2 || denom == 1)))
decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp,
flags, sf[i]);
- } else
- decompTest(tjd, jpegBuf, jpegSize, w, h, pf, baseName, subsamp,
- flags, new TJScalingFactor(1, 1));
+ }
}
private static void doTest(int w, int h, int[] formats, int subsamp,