Support 8-bit & 12-bit JPEGs using the same build

Partially implements #199

This commit also implements a request from #178 (the ability to compile
the libjpeg example as a standalone program.)
This commit is contained in:
DRC
2022-03-08 12:34:11 -06:00
parent fc562d11f0
commit 7fec5074f9
82 changed files with 3800 additions and 676 deletions

View File

@@ -5,7 +5,7 @@
* Copyright (C) 1991-1998, Thomas G. Lane.
* Modified 2002-2009 by Guido Vollbeding.
* libjpeg-turbo Modifications:
* Copyright (C) 2009-2011, 2013-2014, 2016-2017, 2020, D. R. Commander.
* Copyright (C) 2009-2011, 2013-2014, 2016-2017, 2020, 2022, D. R. Commander.
* Copyright (C) 2015, Google, Inc.
* For conditions of distribution and use, see the accompanying README.ijg
* file.
@@ -70,6 +70,8 @@ typedef JSAMPLE *JSAMPROW; /* ptr to one image row of pixel samples. */
typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */
typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */
#ifndef JPEG12LIB_H
typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */
typedef JBLOCK *JBLOCKROW; /* pointer to one row of coefficient blocks */
typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */
@@ -264,6 +266,8 @@ typedef enum {
JDITHER_FS /* Floyd-Steinberg error diffusion dither */
} J_DITHER_MODE;
#endif /* JPEG12LIB_H */
/* Common fields between JPEG compression and decompression master structs. */
@@ -822,6 +826,8 @@ struct jpeg_source_mgr {
* successful.
*/
#ifndef JPEG12LIB_H
#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */
#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */
#define JPOOL_NUMPOOLS 2
@@ -829,6 +835,8 @@ struct jpeg_source_mgr {
typedef struct jvirt_sarray_control *jvirt_sarray_ptr;
typedef struct jvirt_barray_control *jvirt_barray_ptr;
#endif
struct jpeg_memory_mgr {
/* Method pointers */