mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-27 06:43:32 +00:00
Bug 1906728 - Update to libjxl v0.10.3 r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D216168
This commit is contained in:
parent
9a2053b08c
commit
746380e89f
@ -10,9 +10,9 @@ origin:
|
|||||||
|
|
||||||
url: https://github.com/libjxl/libjxl
|
url: https://github.com/libjxl/libjxl
|
||||||
|
|
||||||
release: e1489592a770b989303b0edc5cc1dc447bbe0515 (2024-03-08T08:10:58Z).
|
release: v0.10.3 (2024-06-27T14:10:08+02:00).
|
||||||
|
|
||||||
revision: e1489592a770b989303b0edc5cc1dc447bbe0515
|
revision: v0.10.3
|
||||||
|
|
||||||
license: Apache-2.0
|
license: Apache-2.0
|
||||||
|
|
||||||
|
5
third_party/jpeg-xl/CHANGELOG.md
vendored
5
third_party/jpeg-xl/CHANGELOG.md
vendored
@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [0.10.3] - 2024-06-27
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- fix decoding of some special images (#3662)
|
||||||
|
|
||||||
## [0.10.2] - 2024-03-08
|
## [0.10.2] - 2024-03-08
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
2
third_party/jpeg-xl/WORKSPACE
vendored
2
third_party/jpeg-xl/WORKSPACE
vendored
@ -1,5 +1,5 @@
|
|||||||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
||||||
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository")
|
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository")
|
||||||
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
||||||
|
|
||||||
workspace(name = "libjxl")
|
workspace(name = "libjxl")
|
||||||
|
|
||||||
|
8
third_party/jpeg-xl/debian/changelog
vendored
8
third_party/jpeg-xl/debian/changelog
vendored
@ -1,4 +1,10 @@
|
|||||||
jpeg-xl (0.10.2) UNRELEASED; urgency=medium
|
jpeg-xl (0.10.3) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* Bump JPEG XL version to 0.10.3.
|
||||||
|
|
||||||
|
-- JPEG XL Maintainers <jpegxl@google.com> Thu, 27 Jun 2024 12:23:45 +0200
|
||||||
|
|
||||||
|
jpeg-xl (0.10.2) unstable; urgency=medium
|
||||||
|
|
||||||
* Bump JPEG XL version to 0.10.2.
|
* Bump JPEG XL version to 0.10.2.
|
||||||
|
|
||||||
|
5
third_party/jpeg-xl/lib/BUILD
vendored
5
third_party/jpeg-xl/lib/BUILD
vendored
@ -3,6 +3,9 @@
|
|||||||
# Use of this source code is governed by a BSD-style
|
# Use of this source code is governed by a BSD-style
|
||||||
# license that can be found in the LICENSE file.
|
# license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
|
||||||
|
load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
|
||||||
|
|
||||||
# Load sources/headers/tests lists.
|
# Load sources/headers/tests lists.
|
||||||
load(
|
load(
|
||||||
"jxl_lists.bzl",
|
"jxl_lists.bzl",
|
||||||
@ -56,8 +59,6 @@ load(
|
|||||||
"libjxl_test_shards",
|
"libjxl_test_shards",
|
||||||
"libjxl_test_timeouts",
|
"libjxl_test_timeouts",
|
||||||
)
|
)
|
||||||
load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
|
|
||||||
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
|
|
||||||
|
|
||||||
DEFAULT_VISIBILITY = ["//:__subpackages__"]
|
DEFAULT_VISIBILITY = ["//:__subpackages__"]
|
||||||
|
|
||||||
|
2
third_party/jpeg-xl/lib/CMakeLists.txt
vendored
2
third_party/jpeg-xl/lib/CMakeLists.txt
vendored
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
set(JPEGXL_MAJOR_VERSION 0)
|
set(JPEGXL_MAJOR_VERSION 0)
|
||||||
set(JPEGXL_MINOR_VERSION 10)
|
set(JPEGXL_MINOR_VERSION 10)
|
||||||
set(JPEGXL_PATCH_VERSION 2)
|
set(JPEGXL_PATCH_VERSION 3)
|
||||||
set(JPEGXL_LIBRARY_VERSION
|
set(JPEGXL_LIBRARY_VERSION
|
||||||
"${JPEGXL_MAJOR_VERSION}.${JPEGXL_MINOR_VERSION}.${JPEGXL_PATCH_VERSION}")
|
"${JPEGXL_MAJOR_VERSION}.${JPEGXL_MINOR_VERSION}.${JPEGXL_PATCH_VERSION}")
|
||||||
|
|
||||||
|
@ -138,8 +138,8 @@ Status DecodeModularChannelMAANS(BitReader *br, ANSSymbolReader *reader,
|
|||||||
const Tree &global_tree,
|
const Tree &global_tree,
|
||||||
const weighted::Header &wp_header,
|
const weighted::Header &wp_header,
|
||||||
pixel_type chan, size_t group_id,
|
pixel_type chan, size_t group_id,
|
||||||
TreeLut<uint8_t, true> &tree_lut,
|
TreeLut<uint8_t, true> &tree_lut, Image *image,
|
||||||
Image *image) {
|
uint32_t &fl_run, uint32_t &fl_v) {
|
||||||
Channel &channel = image->channel[chan];
|
Channel &channel = image->channel[chan];
|
||||||
|
|
||||||
std::array<pixel_type, kNumStaticProperties> static_props = {
|
std::array<pixel_type, kNumStaticProperties> static_props = {
|
||||||
@ -222,20 +222,19 @@ Status DecodeModularChannelMAANS(BitReader *br, ANSSymbolReader *reader,
|
|||||||
} else if (uses_lz77 && predictor == Predictor::Gradient && offset == 0 &&
|
} else if (uses_lz77 && predictor == Predictor::Gradient && offset == 0 &&
|
||||||
multiplier == 1 && reader->HuffRleOnly()) {
|
multiplier == 1 && reader->HuffRleOnly()) {
|
||||||
JXL_DEBUG_V(8, "Gradient RLE (fjxl) very fast track.");
|
JXL_DEBUG_V(8, "Gradient RLE (fjxl) very fast track.");
|
||||||
uint32_t run = 0;
|
pixel_type_w sv = UnpackSigned(fl_v);
|
||||||
uint32_t v = 0;
|
|
||||||
pixel_type_w sv = 0;
|
|
||||||
for (size_t y = 0; y < channel.h; y++) {
|
for (size_t y = 0; y < channel.h; y++) {
|
||||||
pixel_type *JXL_RESTRICT r = channel.Row(y);
|
pixel_type *JXL_RESTRICT r = channel.Row(y);
|
||||||
const pixel_type *JXL_RESTRICT rtop = (y ? channel.Row(y - 1) : r - 1);
|
const pixel_type *JXL_RESTRICT rtop = (y ? channel.Row(y - 1) : r - 1);
|
||||||
const pixel_type *JXL_RESTRICT rtopleft =
|
const pixel_type *JXL_RESTRICT rtopleft =
|
||||||
(y ? channel.Row(y - 1) - 1 : r - 1);
|
(y ? channel.Row(y - 1) - 1 : r - 1);
|
||||||
pixel_type_w guess = (y ? rtop[0] : 0);
|
pixel_type_w guess = (y ? rtop[0] : 0);
|
||||||
if (run == 0) {
|
if (fl_run == 0) {
|
||||||
reader->ReadHybridUintClusteredHuffRleOnly(ctx_id, br, &v, &run);
|
reader->ReadHybridUintClusteredHuffRleOnly(ctx_id, br, &fl_v,
|
||||||
sv = UnpackSigned(v);
|
&fl_run);
|
||||||
|
sv = UnpackSigned(fl_v);
|
||||||
} else {
|
} else {
|
||||||
run--;
|
fl_run--;
|
||||||
}
|
}
|
||||||
r[0] = sv + guess;
|
r[0] = sv + guess;
|
||||||
for (size_t x = 1; x < channel.w; x++) {
|
for (size_t x = 1; x < channel.w; x++) {
|
||||||
@ -243,11 +242,12 @@ Status DecodeModularChannelMAANS(BitReader *br, ANSSymbolReader *reader,
|
|||||||
pixel_type top = rtop[x];
|
pixel_type top = rtop[x];
|
||||||
pixel_type topleft = rtopleft[x];
|
pixel_type topleft = rtopleft[x];
|
||||||
pixel_type_w guess = ClampedGradient(top, left, topleft);
|
pixel_type_w guess = ClampedGradient(top, left, topleft);
|
||||||
if (!run) {
|
if (!fl_run) {
|
||||||
reader->ReadHybridUintClusteredHuffRleOnly(ctx_id, br, &v, &run);
|
reader->ReadHybridUintClusteredHuffRleOnly(ctx_id, br, &fl_v,
|
||||||
sv = UnpackSigned(v);
|
&fl_run);
|
||||||
|
sv = UnpackSigned(fl_v);
|
||||||
} else {
|
} else {
|
||||||
run--;
|
fl_run--;
|
||||||
}
|
}
|
||||||
r[x] = sv + guess;
|
r[x] = sv + guess;
|
||||||
}
|
}
|
||||||
@ -484,16 +484,16 @@ Status DecodeModularChannelMAANS(BitReader *br, ANSSymbolReader *reader,
|
|||||||
const Tree &global_tree,
|
const Tree &global_tree,
|
||||||
const weighted::Header &wp_header,
|
const weighted::Header &wp_header,
|
||||||
pixel_type chan, size_t group_id,
|
pixel_type chan, size_t group_id,
|
||||||
TreeLut<uint8_t, true> &tree_lut,
|
TreeLut<uint8_t, true> &tree_lut, Image *image,
|
||||||
Image *image) {
|
uint32_t &fl_run, uint32_t &fl_v) {
|
||||||
if (reader->UsesLZ77()) {
|
if (reader->UsesLZ77()) {
|
||||||
return detail::DecodeModularChannelMAANS</*uses_lz77=*/true>(
|
return detail::DecodeModularChannelMAANS</*uses_lz77=*/true>(
|
||||||
br, reader, context_map, global_tree, wp_header, chan, group_id,
|
br, reader, context_map, global_tree, wp_header, chan, group_id,
|
||||||
tree_lut, image);
|
tree_lut, image, fl_run, fl_v);
|
||||||
} else {
|
} else {
|
||||||
return detail::DecodeModularChannelMAANS</*uses_lz77=*/false>(
|
return detail::DecodeModularChannelMAANS</*uses_lz77=*/false>(
|
||||||
br, reader, context_map, global_tree, wp_header, chan, group_id,
|
br, reader, context_map, global_tree, wp_header, chan, group_id,
|
||||||
tree_lut, image);
|
tree_lut, image, fl_run, fl_v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -619,6 +619,8 @@ Status ModularDecode(BitReader *br, Image &image, GroupHeader &header,
|
|||||||
// Read channels
|
// Read channels
|
||||||
ANSSymbolReader reader(code, br, distance_multiplier);
|
ANSSymbolReader reader(code, br, distance_multiplier);
|
||||||
auto tree_lut = jxl::make_unique<TreeLut<uint8_t, true>>();
|
auto tree_lut = jxl::make_unique<TreeLut<uint8_t, true>>();
|
||||||
|
uint32_t fl_run = 0;
|
||||||
|
uint32_t fl_v = 0;
|
||||||
for (; next_channel < nb_channels; next_channel++) {
|
for (; next_channel < nb_channels; next_channel++) {
|
||||||
Channel &channel = image.channel[next_channel];
|
Channel &channel = image.channel[next_channel];
|
||||||
if (!channel.w || !channel.h) {
|
if (!channel.w || !channel.h) {
|
||||||
@ -631,7 +633,7 @@ Status ModularDecode(BitReader *br, Image &image, GroupHeader &header,
|
|||||||
}
|
}
|
||||||
JXL_RETURN_IF_ERROR(DecodeModularChannelMAANS(
|
JXL_RETURN_IF_ERROR(DecodeModularChannelMAANS(
|
||||||
br, &reader, *context_map, *tree, header.wp_header, next_channel,
|
br, &reader, *context_map, *tree, header.wp_header, next_channel,
|
||||||
group_id, *tree_lut, &image));
|
group_id, *tree_lut, &image, fl_run, fl_v));
|
||||||
|
|
||||||
// Truncated group.
|
// Truncated group.
|
||||||
if (!br->AllReadsWithinBounds()) {
|
if (!br->AllReadsWithinBounds()) {
|
||||||
|
2
third_party/jpeg-xl/lib/jxl_lists.bzl
vendored
2
third_party/jpeg-xl/lib/jxl_lists.bzl
vendored
@ -551,7 +551,7 @@ libjxl_major_version = 0
|
|||||||
|
|
||||||
libjxl_minor_version = 10
|
libjxl_minor_version = 10
|
||||||
|
|
||||||
libjxl_patch_version = 2
|
libjxl_patch_version = 3
|
||||||
|
|
||||||
libjxl_public_headers = [
|
libjxl_public_headers = [
|
||||||
"include/jxl/cms.h",
|
"include/jxl/cms.h",
|
||||||
|
Loading…
Reference in New Issue
Block a user