Bug 1711750 - Update jpeg-xl to 100e3c7e8a051b7399d0505c22640488287a31a8 r=saschanaz

Differential Revision: https://phabricator.services.mozilla.com/D115394
This commit is contained in:
Updatebot 2021-05-20 12:29:54 +00:00
Родитель 5aecf96709
Коммит 655739c79e
6 изменённых файлов: 16 добавлений и 9 удалений

Просмотреть файл

@ -20,12 +20,12 @@ origin:
# Human-readable identifier for this version/release
# Generally "version NNN", "tag SSS", "bookmark SSS"
release: commit 30ea86ab4c1f1b98c21967a2e3d72a51fe77e454 (2021-05-12T21:50:20.000+02:00).
release: commit 100e3c7e8a051b7399d0505c22640488287a31a8 (2021-05-18T15:01:53.000+02:00).
# Revision to pull in
# Must be a long or short commit SHA (long preferred)
# NOTE(krosylight): Update highway together when updating this!
revision: 30ea86ab4c1f1b98c21967a2e3d72a51fe77e454
revision: 100e3c7e8a051b7399d0505c22640488287a31a8
# The package's license, where possible using the mnemonic from
# https://spdx.org/licenses/

Просмотреть файл

@ -222,6 +222,7 @@ Status DecodeImageAPNG(Span<const uint8_t> bytes, ThreadPool* pool,
bool isAnimated = false;
bool skipFirst = false;
bool hasInfo = false;
bool all_dispose_bg = true;
APNGFrame frameRaw = {};
if (!(f = fmemopen((void*)bytes.data(), bytes.size(), "rb"))) {
@ -292,7 +293,7 @@ Status DecodeImageAPNG(Span<const uint8_t> bytes, ThreadPool* pool,
bundle.origin.x0 = x0;
bundle.origin.y0 = y0;
// TODO(veluca): this could in principle be implemented.
if (last_base_was_none &&
if (last_base_was_none && !all_dispose_bg &&
(x0 != 0 || y0 != 0 || w0 != w || h0 != h || bop != 0)) {
return JXL_FAILURE(
"APNG with dispose-to-0 is not supported for non-full or "
@ -302,9 +303,11 @@ Status DecodeImageAPNG(Span<const uint8_t> bytes, ThreadPool* pool,
case 0:
bundle.use_for_next_frame = true;
last_base_was_none = false;
all_dispose_bg = false;
break;
case 2:
bundle.use_for_next_frame = false;
all_dispose_bg = false;
break;
default:
bundle.use_for_next_frame = false;

Просмотреть файл

@ -61,7 +61,7 @@ static constexpr uint8_t kDefaultColorFactor = 84;
static constexpr uint8_t kCFLFixedPointPrecision = 11;
static constexpr U32Enc kColorFactorDist(Val(kDefaultColorFactor), Val(256),
BitsOffset(2, 8), BitsOffset(258, 12));
BitsOffset(8, 2), BitsOffset(16, 258));
struct ColorCorrelationMap {
ColorCorrelationMap() = default;

Просмотреть файл

@ -193,8 +193,6 @@ Status PatchDictionary::AddTo(Image3F* opsin, const Rect& opsin_rect,
size_t num_ec = shared_->metadata->m.num_extra_channels;
std::vector<const float*> fg_ptrs(3 + num_ec);
std::vector<float*> bg_ptrs(3 + num_ec);
BlendingInfo color_blending;
std::vector<BlendingInfo> ec_blending(num_ec);
for (size_t y = image_rect.y0(); y < image_rect.y0() + image_rect.ysize();
y++) {
if (y + 1 >= patch_starts_.size()) continue;

10
third_party/jpeg-xl/lib/jxl/decode.cc поставляемый
Просмотреть файл

@ -1020,8 +1020,14 @@ JxlDecoderStatus JxlDecoderProcessInternal(JxlDecoder* dec, const uint8_t* in,
new Sections(dec->frame_dec.get(), dec->frame_size, sections_begin));
JXL_API_RETURN_IF_ERROR(dec->sections->Init());
dec->frame_dec_in_progress = true;
dec->frame_stage = FrameStage::kDC;
// If we don't need pixels, we can skip actually decoding the frames
// (kFull / kDC / kFullOut / kDCOut). By not updating frame_stage, none of
// these stages will execute, and the loop will continue from the next
// frame.
if (dec->events_wanted & (JXL_DEC_DC_IMAGE | JXL_DEC_FULL_IMAGE)) {
dec->frame_dec_in_progress = true;
dec->frame_stage = FrameStage::kDC;
}
}
if (dec->frame_stage == FrameStage::kDC) {

2
third_party/jpeg-xl/lib/jxl/passes_state.h поставляемый
Просмотреть файл

@ -90,7 +90,7 @@ struct PassesSharedState {
// now, as they are stored in a vector and thus may be moved. Fix this.
ImageBundle* JXL_RESTRICT frame = &storage;
// ImageBundle doesn't yet have a simple way to state it is in XYB.
bool ib_is_in_xyb = true;
bool ib_is_in_xyb = false;
} reference_frames[4] = {};
// Number of pre-clustered set of histograms (with the same ctx map), per