зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1711750 - Update jpeg-xl to 100e3c7e8a051b7399d0505c22640488287a31a8 r=saschanaz
Differential Revision: https://phabricator.services.mozilla.com/D115394
This commit is contained in:
Родитель
5aecf96709
Коммит
655739c79e
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче