skia/skia/30eb4a236177b23f8adf83658982c4628474fb3c Budget interlaced row buffers in SkPngRustCodec
- Replace the single-row std::vector<uint8_t> buffers in
expandDecodedInterlacedRow() and incrementalDecode() with
SkCodecPriv::BudgetedBuffer fields in DecodingState
(fDecodedInterlacedFullWidthRow and fXformedInterlacedRow),
allocated once per decode in initializeDecodingDst()
- Re-zero fXformedInterlacedRow before each row only with
kYes_ZeroInitialized, where fSwizzler skips writing leading
transparent pixels
- Add unit tests verifying fMaxDecodeMemory accounting for both the
canReadRow() and incrementalDecodeXForm() interlaced decode paths,
and that kYes_ZeroInitialized matches kNo_ZeroInitialized on the
incrementalDecodeXForm() interlaced path
Bug: b/565484678
Change-Id: I2742ea7d5e94e5f7ada51c8d3fd0571e71b45c4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1375536
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Elliot Sisteron <elliotsisteron@google.com>
3 files changed