Files
libjpeg-turbo/libjpeg-turbo-1.3.0-tiff-ojpeg.patch
Petr Gajdos f5d8587507 Accepting request 1198096 from home:dirkmueller:Factory
- update to 3.0.3:
  * The x86-64 SIMD extensions now include support for Intel
    Control-flow Enforcement Technology (CET), which is enabled
    automatically if CET is enabled in the C compiler.
  * Fixed a regression introduced by 3.0 beta2[6] that made it
    impossible for calling applications to supply custom Huffman
    tables when generating 12-bit-per-component lossy JPEG images
    using the libjpeg API.
  * Fixed a segfault that occurred when attempting to use the
    jpegtran `-drop` option with a specially-crafted malformed
    input image or drop image (specifically an image in which all
    of the scans contain fewer components than the number of
    components specified in the Start Of Frame segment.)

OBS-URL: https://build.opensuse.org/request/show/1198096
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=155
2024-09-02 11:06:17 +00:00

39 lines
1.9 KiB
Diff

--- a/jdhuff.c
+++ b/jdhuff.c
@@ -649,3 +649,35 @@
entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL;
}
}
+/*
+ * BEWARE OF KLUDGE: This subroutine is a hack for decoding illegal JPEG-in-
+ * TIFF encapsulations produced by Microsoft's Wang Imaging
+ * for Windows application with the public-domain TIFF Library. Based upon an
+ * examination of selected output files, this program apparently divides a JPEG
+ * bit-stream into consecutive horizontal TIFF "strips", such that the JPEG
+ * encoder's/decoder's DC coefficients for each image component are reset before
+ * each "strip". Moreover, a "strip" is not necessarily encoded in a multiple
+ * of 8 bits, so one must sometimes discard 1-7 bits at the end of each "strip"
+ * for alignment to the next input-Byte storage boundary. IJG JPEG Library
+ * decoder state is not normally exposed to client applications, so this sub-
+ * routine provides the TIFF Library with a "hook" to make these corrections.
+ * It should be called after "jpeg_start_decompress()" and before
+ * "jpeg_finish_decompress()", just before decoding each "strip" using
+ * "jpeg_read_raw_data()" or "jpeg_read_scanlines()".
+ *
+ * This kludge is not sanctioned or supported by the Independent JPEG Group, and
+ * future changes to the IJG JPEG Library might invalidate it. Do not send bug
+ * reports about this code to IJG developers. Instead, contact the author for
+ * advice: Scott B. Marovich <marovich@hpl.hp.com>, Hewlett-Packard Labs, 6/01.
+ */
+GLOBAL(void)
+jpeg_reset_huff_decode (register j_decompress_ptr cinfo,register float *refbw)
+{ register huff_entropy_ptr entropy = (huff_entropy_ptr)cinfo->entropy;
+ register int ci = 0;
+
+ /* Re-initialize DC predictions */
+ do entropy->saved.last_dc_val[ci] = -refbw[ci << 1];
+ while (++ci < cinfo->comps_in_scan);
+ /* Discard encoded input bits, up to the next Byte boundary */
+ entropy->bitstate.bits_left &= ~7;
+}