summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/libtiff/libtiff/tif_jpeg_12.c
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2023-06-09 17:08:51 +0300
committerTarja Sundqvist <tarja.sundqvist@qt.io>2023-06-09 17:08:51 +0300
commit6a1af670d52492ab0955933b830026b2a18ed6d6 (patch)
tree14e423ab81da7312ac0f800aaa6afce7e23abc20 /src/3rdparty/libtiff/libtiff/tif_jpeg_12.c
parente57b0df609d744c3ddb2d3f23926a7922e661cb6 (diff)
parent8fb9a4fdcb05984bb6e9e532e4462aa7bfbeb62e (diff)
Merge remote-tracking branch 'origin/tqtc/lts-5.15.11' into tqtc/lts-5.15-opensourcev5.15.11-lts-lgpl
Diffstat (limited to 'src/3rdparty/libtiff/libtiff/tif_jpeg_12.c')
-rw-r--r--src/3rdparty/libtiff/libtiff/tif_jpeg_12.c99
1 files changed, 46 insertions, 53 deletions
diff --git a/src/3rdparty/libtiff/libtiff/tif_jpeg_12.c b/src/3rdparty/libtiff/libtiff/tif_jpeg_12.c
index b458c25..bec5fb9 100644
--- a/src/3rdparty/libtiff/libtiff/tif_jpeg_12.c
+++ b/src/3rdparty/libtiff/libtiff/tif_jpeg_12.c
@@ -3,59 +3,52 @@
#if defined(JPEG_DUAL_MODE_8_12)
-# define TIFFInitJPEG TIFFInitJPEG_12
-# define TIFFJPEGIsFullStripRequired TIFFJPEGIsFullStripRequired_12
-
-int
-TIFFInitJPEG_12(TIFF* tif, int scheme);
-
-# include LIBJPEG_12_PATH
-
-# include "tif_jpeg.c"
-
-int TIFFReInitJPEG_12( TIFF *tif, int scheme, int is_encode )
-
-{
- JPEGState* sp;
-
- assert(scheme == COMPRESSION_JPEG);
-
- sp = JState(tif);
- sp->tif = tif; /* back link */
-
- /*
- * Override parent get/set field methods.
- */
- tif->tif_tagmethods.vgetfield = JPEGVGetField; /* hook for codec tags */
- tif->tif_tagmethods.vsetfield = JPEGVSetField; /* hook for codec tags */
- tif->tif_tagmethods.printdir = JPEGPrintDir; /* hook for codec tags */
-
- /*
- * Install codec methods.
- */
- tif->tif_fixuptags = JPEGFixupTags;
- tif->tif_setupdecode = JPEGSetupDecode;
- tif->tif_predecode = JPEGPreDecode;
- tif->tif_decoderow = JPEGDecode;
- tif->tif_decodestrip = JPEGDecode;
- tif->tif_decodetile = JPEGDecode;
- tif->tif_setupencode = JPEGSetupEncode;
- tif->tif_preencode = JPEGPreEncode;
- tif->tif_postencode = JPEGPostEncode;
- tif->tif_encoderow = JPEGEncode;
- tif->tif_encodestrip = JPEGEncode;
- tif->tif_encodetile = JPEGEncode;
- tif->tif_cleanup = JPEGCleanup;
- tif->tif_defstripsize = JPEGDefaultStripSize;
- tif->tif_deftilesize = JPEGDefaultTileSize;
- tif->tif_flags |= TIFF_NOBITREV; /* no bit reversal, please */
-
- sp->cinfo_initialized = FALSE;
-
- if( is_encode )
- return JPEGSetupEncode(tif);
- else
- return JPEGSetupDecode(tif);
+#define FROM_TIF_JPEG_12
+
+#ifdef TIFFInitJPEG
+#undef TIFFInitJPEG
+#endif
+#define TIFFInitJPEG TIFFInitJPEG_12
+
+#ifdef TIFFJPEGIsFullStripRequired
+#undef TIFFJPEGIsFullStripRequired
+#endif
+#define TIFFJPEGIsFullStripRequired TIFFJPEGIsFullStripRequired_12
+
+int TIFFInitJPEG_12(TIFF *tif, int scheme);
+
+#include LIBJPEG_12_PATH
+
+#include "tif_jpeg.c"
+
+int TIFFReInitJPEG_12(TIFF *tif, const JPEGOtherSettings *otherSettings,
+ int scheme, int is_encode) {
+ JPEGState *sp;
+ uint8_t *new_tif_data;
+
+ (void)scheme;
+ assert(scheme == COMPRESSION_JPEG);
+
+ new_tif_data = (uint8_t *)_TIFFrealloc(tif->tif_data, sizeof(JPEGState));
+
+ if (new_tif_data == NULL) {
+ TIFFErrorExt(tif->tif_clientdata, "TIFFReInitJPEG_12",
+ "No space for JPEG state block");
+ return 0;
+ }
+
+ tif->tif_data = new_tif_data;
+ _TIFFmemset(tif->tif_data, 0, sizeof(JPEGState));
+
+ TIFFInitJPEGCommon(tif);
+
+ sp = JState(tif);
+ sp->otherSettings = *otherSettings;
+
+ if (is_encode)
+ return JPEGSetupEncode(tif);
+ else
+ return JPEGSetupDecode(tif);
}
#endif /* defined(JPEG_DUAL_MODE_8_12) */