revert
OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=148
This commit is contained in:
parent
5b8774e5c6
commit
fe426f1c9c
@ -1,8 +1,6 @@
|
|||||||
Index: libjpeg-turbo-3.0.1/jdhuff.c
|
--- a/jdhuff.c
|
||||||
===================================================================
|
+++ b/jdhuff.c
|
||||||
--- libjpeg-turbo-3.0.1.orig/jdhuff.c
|
@@ -649,3 +649,35 @@
|
||||||
+++ libjpeg-turbo-3.0.1/jdhuff.c
|
|
||||||
@@ -834,3 +834,35 @@ jinit_huff_decoder(j_decompress_ptr cinf
|
|
||||||
entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL;
|
entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
libjpeg-turbo-2.1.5.1.tar.gz
Normal file
3
libjpeg-turbo-2.1.5.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:2fdc3feb6e9deb17adec9bafa3321419aa19f8f4e5dea7bf8486844ca22207bf
|
||||||
|
size 2264936
|
BIN
libjpeg-turbo-2.1.5.1.tar.gz.sig
Normal file
BIN
libjpeg-turbo-2.1.5.1.tar.gz.sig
Normal file
Binary file not shown.
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75
|
|
||||||
size 2800900
|
|
Binary file not shown.
@ -1,199 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Thu Nov 16 13:09:18 UTC 2023 - pgajdos@suse.com
|
|
||||||
|
|
||||||
- update to 3.0.1
|
|
||||||
3.0.1
|
|
||||||
=====
|
|
||||||
* The x86-64 SIMD functions now use a standard stack frame, prologue, and
|
|
||||||
epilogue so that debuggers and profilers can reliably capture backtraces from
|
|
||||||
within the functions.
|
|
||||||
* Fixed two minor issues in the interblock smoothing algorithm that caused
|
|
||||||
mathematical (but not necessarily perceptible) edge block errors when
|
|
||||||
decompressing progressive JPEG images exactly two MCU blocks in width or that
|
|
||||||
use vertical chrominance subsampling.
|
|
||||||
* Fixed a regression introduced by 3.0 beta2[6] that, in rare cases, caused
|
|
||||||
the C Huffman encoder (which is not used by default on x86 and Arm CPUs) to
|
|
||||||
generate incorrect results if the Neon SIMD extensions were explicitly disabled
|
|
||||||
at build time (by setting the `WITH_SIMD` CMake variable to `0`) in an AArch64
|
|
||||||
build of libjpeg-turbo.
|
|
||||||
3.0.0
|
|
||||||
=====
|
|
||||||
* The TurboJPEG API now supports 4:4:1 (transposed 4:1:1) chrominance
|
|
||||||
subsampling, which allows losslessly transposed or rotated 4:1:1 JPEG images to
|
|
||||||
be losslessly cropped, partially decompressed, or decompressed to planar YUV
|
|
||||||
images.
|
|
||||||
* Fixed various segfaults and buffer overruns (CVE-2023-2804) that occurred
|
|
||||||
when attempting to decompress various specially-crafted malformed
|
|
||||||
12-bit-per-component and 16-bit-per-component lossless JPEG images using color
|
|
||||||
quantization or merged chroma upsampling/color conversion. The underlying
|
|
||||||
cause of these issues was that the color quantization and merged chroma
|
|
||||||
upsampling/color conversion algorithms were not designed with lossless
|
|
||||||
decompression in mind. Since libjpeg-turbo explicitly does not support color
|
|
||||||
conversion when compressing or decompressing lossless JPEG images, merged
|
|
||||||
chroma upsampling/color conversion never should have been enabled for such
|
|
||||||
images. Color quantization is a legacy feature that serves little or no
|
|
||||||
purpose with lossless JPEG images, so it is also now disabled when
|
|
||||||
decompressing such images. (As a result, djpeg can no longer decompress a
|
|
||||||
lossless JPEG image into a GIF image.)
|
|
||||||
* Fixed an oversight in 1.4 beta1[8] that caused various segfaults and buffer
|
|
||||||
overruns when attempting to decompress various specially-crafted malformed
|
|
||||||
12-bit-per-component JPEG images using djpeg with both color quantization and
|
|
||||||
RGB565 color conversion enabled.
|
|
||||||
* Fixed an issue whereby `jpeg_crop_scanline()` sometimes miscalculated the
|
|
||||||
downsampled width for components with 4x2 or 2x4 subsampling factors if
|
|
||||||
decompression scaling was enabled. This caused the components to be upsampled
|
|
||||||
incompletely, which caused the color converter to read from uninitialized
|
|
||||||
memory. With 12-bit data precision, this caused a buffer overrun or underrun
|
|
||||||
and subsequent segfault if the sample value read from uninitialized memory was
|
|
||||||
outside of the valid sample range.
|
|
||||||
* Fixed a long-standing issue whereby the `tj3Transform()` function, when used
|
|
||||||
with the `TJXOP_TRANSPOSE`, `TJXOP_TRANSVERSE`, `TJXOP_ROT90`, or
|
|
||||||
`TJXOP_ROT270` transform operation and without automatic JPEG destination
|
|
||||||
buffer (re)allocation or lossless cropping, computed the worst-case transformed
|
|
||||||
JPEG image size based on the source image dimensions rather than the
|
|
||||||
transformed image dimensions. If a calling program allocated the JPEG
|
|
||||||
destination buffer based on the transformed image dimensions, as the API
|
|
||||||
documentation instructs, and attempted to transform a specially-crafted 4:2:2,
|
|
||||||
4:4:0, 4:1:1, or 4:4:1 JPEG source image containing a large amount of metadata,
|
|
||||||
the issue caused `tj3Transform()` to overflow the JPEG destination buffer
|
|
||||||
rather than fail gracefully. The issue could be worked around by setting
|
|
||||||
`TJXOPT_COPYNONE`. Note that, irrespective of this issue, `tj3Transform()`
|
|
||||||
cannot reliably transform JPEG source images that contain a large amount of
|
|
||||||
metadata unless automatic JPEG destination buffer (re)allocation is used or
|
|
||||||
`TJXOPT_COPYNONE` is set.
|
|
||||||
* Fixed a regression introduced by 3.0 beta2[6] that prevented the djpeg
|
|
||||||
`-map` option from working when decompressing 12-bit-per-component lossy JPEG
|
|
||||||
images.
|
|
||||||
* Fixed an issue that caused the C Huffman encoder (which is not used by
|
|
||||||
default on x86 and Arm CPUs) to read from uninitialized memory when attempting
|
|
||||||
to transform a specially-crafted malformed arithmetic-coded JPEG source image
|
|
||||||
into a baseline Huffman-coded JPEG destination image.
|
|
||||||
2.1.91 (3.0 beta2)
|
|
||||||
==================
|
|
||||||
* Significantly sped up the computation of optimal Huffman tables. This
|
|
||||||
speeds up the compression of tiny images by as much as 2x and provides a
|
|
||||||
noticeable speedup for images as large as 256x256 when using optimal Huffman
|
|
||||||
tables.
|
|
||||||
* All deprecated fields, constructors, and methods in the TurboJPEG Java API
|
|
||||||
have been removed.
|
|
||||||
* Arithmetic entropy coding is now supported with 12-bit-per-component JPEG
|
|
||||||
images.
|
|
||||||
* Overhauled the TurboJPEG API to address long-standing limitations and to
|
|
||||||
make the API more extensible and intuitive:
|
|
||||||
- All C function names are now prefixed with `tj3`, and all version
|
|
||||||
suffixes have been removed from the function names. Future API overhauls will
|
|
||||||
increment the prefix to `tj4`, etc., thus retaining backward API/ABI
|
|
||||||
compatibility without versioning each individual function.
|
|
||||||
- Stateless boolean flags have been replaced with stateful integer API
|
|
||||||
parameters, the values of which persist between function calls. New
|
|
||||||
functions/methods (`tj3Set()`/`TJCompressor.set()`/`TJDecompressor.set()` and
|
|
||||||
`tj3Get()`/`TJCompressor.get()`/`TJDecompressor.get()`) can be used to set and
|
|
||||||
query the value of a particular API parameter.
|
|
||||||
- The JPEG quality and subsampling are now implemented using API
|
|
||||||
parameters rather than stateless function arguments (C) or dedicated set/get
|
|
||||||
methods (Java.)
|
|
||||||
- `tj3DecompressHeader()` now stores all relevant information about the
|
|
||||||
JPEG image, including the width, height, subsampling type, entropy coding
|
|
||||||
algorithm, etc., in API parameters rather than returning that information
|
|
||||||
through pointer arguments.
|
|
||||||
- `TJFLAG_LIMITSCANS`/`TJ.FLAG_LIMITSCANS` has been reimplemented as an
|
|
||||||
API parameter (`TJPARAM_SCANLIMIT`/`TJ.PARAM_SCANLIMIT`) that allows the number
|
|
||||||
of scans to be specified.
|
|
||||||
- Optimized baseline entropy coding (the computation of optimal Huffman
|
|
||||||
tables, as opposed to using the default Huffman tables) can now be specified,
|
|
||||||
using a new API parameter (`TJPARAM_OPTIMIZE`/`TJ.PARAM_OPTIMIZE`), a new
|
|
||||||
transform option (`TJXOPT_OPTIMIZE`/`TJTransform.OPT_OPTIMIZE`), and a new
|
|
||||||
TJBench option (`-optimize`.)
|
|
||||||
- Arithmetic entropy coding can now be specified or queried, using a new
|
|
||||||
API parameter (`TJPARAM_ARITHMETIC`/`TJ.PARAM_ARITHMETIC`), a new transform
|
|
||||||
option (`TJXOPT_ARITHMETIC`/`TJTransform.OPT_ARITHMETIC`), and a new TJBench
|
|
||||||
option (`-arithmetic`.)
|
|
||||||
- The restart marker interval can now be specified, using new API
|
|
||||||
parameters (`TJPARAM_RESTARTROWS`/`TJ.PARAM_RESTARTROWS` and
|
|
||||||
`TJPARAM_RESTARTBLOCKS`/`TJ.PARAM_RESTARTBLOCKS`) and a new TJBench option
|
|
||||||
(`-restart`.)
|
|
||||||
- Pixel density can now be specified or queried, using new API parameters
|
|
||||||
(`TJPARAM_XDENSITY`/`TJ.PARAM_XDENSITY`,
|
|
||||||
`TJPARAM_YDENSITY`/`TJ.PARAM_YDENSITY`, and
|
|
||||||
`TJPARAM_DENSITYUNITS`/`TJ.PARAM_DENSITYUNITS`.)
|
|
||||||
- The accurate DCT/IDCT algorithms are now the default for both
|
|
||||||
compression and decompression, since the "fast" algorithms are considered to be
|
|
||||||
a legacy feature. (The "fast" algorithms do not pass the ISO compliance tests,
|
|
||||||
and those algorithms are not any faster than the accurate algorithms on modern
|
|
||||||
x86 CPUs.)
|
|
||||||
- All C initialization functions have been combined into a single function
|
|
||||||
(`tj3Init()`) that accepts an integer argument specifying the subsystems to
|
|
||||||
initialize.
|
|
||||||
- All C functions now use the `const` keyword for pointer arguments that
|
|
||||||
point to unmodified buffers (and for both dimensions of pointer arguments that
|
|
||||||
point to sets of unmodified buffers.)
|
|
||||||
- All C functions now use `size_t` rather than `unsigned long` to
|
|
||||||
represent buffer sizes, for compatibility with `malloc()` and to avoid
|
|
||||||
disparities in the size of `unsigned long` between LP64 (Un*x) and LLP64
|
|
||||||
(Windows) operating systems.
|
|
||||||
- All C buffer size functions now return 0 if an error occurs, rather than
|
|
||||||
trying to awkwardly return -1 in an unsigned data type (which could easily be
|
|
||||||
misinterpreted as a very large value.)
|
|
||||||
- Decompression scaling is now enabled explicitly, using a new
|
|
||||||
function/method (`tj3SetScalingFactor()`/`TJDecompressor.setScalingFactor()`),
|
|
||||||
rather than implicitly using awkward "desired width"/"desired height"
|
|
||||||
arguments.
|
|
||||||
- Partial image decompression has been implemented, using a new
|
|
||||||
function/method (`tj3SetCroppingRegion()`/`TJDecompressor.setCroppingRegion()`)
|
|
||||||
and a new TJBench option (`-crop`.)
|
|
||||||
- The JPEG colorspace can now be specified explicitly when compressing,
|
|
||||||
using a new API parameter (`TJPARAM_COLORSPACE`/`TJ.PARAM_COLORSPACE`.) This
|
|
||||||
allows JPEG images with the RGB and CMYK colorspaces to be created.
|
|
||||||
- TJBench no longer generates error/difference images, since identical
|
|
||||||
functionality is already available in ImageMagick.
|
|
||||||
- JPEG images with unknown subsampling configurations can now be
|
|
||||||
fully decompressed into packed-pixel images or losslessly transformed (with the
|
|
||||||
exception of lossless cropping.) They cannot currently be partially
|
|
||||||
decompressed or decompressed into planar YUV images.
|
|
||||||
- `tj3Destroy()` now silently accepts a NULL handle.
|
|
||||||
- `tj3Alloc()` and `tj3Free()` now return/accept void pointers, as
|
|
||||||
`malloc()` and `free()` do.
|
|
||||||
- The C image I/O functions now accept a TurboJPEG instance handle, which
|
|
||||||
is used to transmit/receive API parameter values and to receive error
|
|
||||||
information.
|
|
||||||
* Added support for 8-bit-per-component, 12-bit-per-component, and
|
|
||||||
16-bit-per-component lossless JPEG images. A new libjpeg API function
|
|
||||||
(`jpeg_enable_lossless()`), TurboJPEG API parameters
|
|
||||||
(`TJPARAM_LOSSLESS`/`TJ.PARAM_LOSSLESS`,
|
|
||||||
`TJPARAM_LOSSLESSPSV`/`TJ.PARAM_LOSSLESSPSV`, and
|
|
||||||
`TJPARAM_LOSSLESSPT`/`TJ.PARAM_LOSSLESSPT`), and a cjpeg/TJBench option
|
|
||||||
(`-lossless`) can be used to create a lossless JPEG image. (Decompression of
|
|
||||||
lossless JPEG images is handled automatically.) Refer to
|
|
||||||
[libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the TurboJPEG API
|
|
||||||
documentation for more details.
|
|
||||||
* Added support for 12-bit-per-component (lossy and lossless) and
|
|
||||||
16-bit-per-component (lossless) JPEG images to the libjpeg and TurboJPEG APIs:
|
|
||||||
- The existing `data_precision` field in `jpeg_compress_struct` and
|
|
||||||
`jpeg_decompress_struct` has been repurposed to enable the creation of
|
|
||||||
12-bit-per-component and 16-bit-per-component JPEG images or to detect whether
|
|
||||||
a 12-bit-per-component or 16-bit-per-component JPEG image is being
|
|
||||||
decompressed.
|
|
||||||
- New 12-bit-per-component and 16-bit-per-component versions of
|
|
||||||
`jpeg_write_scanlines()` and `jpeg_read_scanlines()`, as well as new
|
|
||||||
12-bit-per-component versions of `jpeg_write_raw_data()`,
|
|
||||||
`jpeg_skip_scanlines()`, `jpeg_crop_scanline()`, and `jpeg_read_raw_data()`,
|
|
||||||
provide interfaces for compressing from/decompressing to 12-bit-per-component
|
|
||||||
and 16-bit-per-component packed-pixel and planar YUV image buffers.
|
|
||||||
- New 12-bit-per-component and 16-bit-per-component compression,
|
|
||||||
decompression, and image I/O functions/methods have been added to the TurboJPEG
|
|
||||||
API, and a new API parameter (`TJPARAM_PRECISION`/`TJ.PARAM_PRECISION`) can be
|
|
||||||
used to query the data precision of a JPEG image. (YUV functions are currently
|
|
||||||
limited to 8-bit data precision but can be expanded to accommodate 12-bit data
|
|
||||||
precision in the future, if such is deemed beneficial.)
|
|
||||||
- A new cjpeg and TJBench command-line argument (`-precision`) can be used
|
|
||||||
to create a 12-bit-per-component or 16-bit-per-component JPEG image.
|
|
||||||
(Decompression and transformation of 12-bit-per-component and
|
|
||||||
16-bit-per-component JPEG images is handled automatically.)
|
|
||||||
Refer to [libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the
|
|
||||||
TurboJPEG API documentation for more details.
|
|
||||||
- modified patches
|
|
||||||
% libjpeg-turbo-1.3.0-tiff-ojpeg.patch (refreshed)
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jun 23 17:39:37 UTC 2023 - pgajdos@suse.com
|
Fri Jun 23 17:39:37 UTC 2023 - pgajdos@suse.com
|
||||||
|
|
||||||
|
@ -23,13 +23,13 @@
|
|||||||
|
|
||||||
%define asan_build 0
|
%define asan_build 0
|
||||||
%define debug_build 0
|
%define debug_build 0
|
||||||
%define srcver 3.0.1
|
%define srcver 2.1.5.1
|
||||||
%if "%{flavor}" == "libjpeg-turbo"
|
%if "%{flavor}" == "libjpeg-turbo"
|
||||||
%define major 8
|
%define major 8
|
||||||
%define minor 3
|
%define minor 2
|
||||||
%define micro 2
|
%define micro 2
|
||||||
%define tmajor 0
|
%define tmajor 0
|
||||||
%define tminor 3
|
%define tminor 2
|
||||||
%define tmicro 0
|
%define tmicro 0
|
||||||
%define tlibver %{tmajor}.%{tminor}.%{tmicro}
|
%define tlibver %{tmajor}.%{tminor}.%{tmicro}
|
||||||
%endif
|
%endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user