|
@@ -0,0 +1,70 @@
|
|
|
+From 21d7cf44b1cd83bb0d847515e28ca550404b0033 Mon Sep 17 00:00:00 2001
|
|
|
+From: Wan-Teh Chang <wtc@google.com>
|
|
|
+Date: Tue, 22 Aug 2023 19:39:04 +0000
|
|
|
+Subject: [PATCH] Roll src/third_party/libavif/src/ b33d9ebfc..676aded35 (3
|
|
|
+ commits)
|
|
|
+
|
|
|
+https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git/+log/b33d9ebfc961..676aded3501f
|
|
|
+
|
|
|
+$ git log b33d9ebfc..676aded35 --date=short --no-merges --format='%ad %ae %s'
|
|
|
+2023-08-22 wtc Change imir.mode back to imir.axis
|
|
|
+2023-08-22 wtc Don't use Identity matrix coefficients with 4:0:0
|
|
|
+2023-08-21 yguyon Increase test values in avifstreamtest
|
|
|
+
|
|
|
+Created with:
|
|
|
+ roll-dep src/third_party/libavif/src
|
|
|
+R=dalecurtis@chromium.org,jzern@google.com
|
|
|
+
|
|
|
+Note that imir.mode is renamed imir.axis.
|
|
|
+
|
|
|
+Change-Id: Ie13972640969f123b7e4580f36d6d6bab913c0f8
|
|
|
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4803347
|
|
|
+Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
|
|
|
+Commit-Queue: Wan-Teh Chang <wtc@google.com>
|
|
|
+Cr-Commit-Position: refs/heads/main@{#1186746}
|
|
|
+---
|
|
|
+ .../image-decoders/avif/avif_image_decoder.cc | 14 +++++++-------
|
|
|
+ 1 file changed, 7 insertions(+), 7 deletions(-)
|
|
|
+
|
|
|
+diff --git a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
|
|
|
+index deb3e66d66f..c9f1b185417 100644
|
|
|
+--- a/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
|
|
|
++++ b/third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.cc
|
|
|
+@@ -1005,22 +1005,22 @@ bool AVIFImageDecoder::UpdateDemuxer() {
|
|
|
+ angle = container->irot.angle;
|
|
|
+ CHECK_LT(angle, 4);
|
|
|
+ }
|
|
|
+- // |mode| specifies how the mirroring is performed.
|
|
|
++ // |axis| specifies how the mirroring is performed.
|
|
|
+ // -1: No mirroring.
|
|
|
+ // 0: The top and bottom parts of the image are exchanged.
|
|
|
+ // 1: The left and right parts of the image are exchanged.
|
|
|
+- int mode = -1;
|
|
|
++ int axis = -1;
|
|
|
+ if (container->transformFlags & AVIF_TRANSFORM_IMIR) {
|
|
|
+- mode = container->imir.mode;
|
|
|
+- CHECK_LT(mode, 2);
|
|
|
++ axis = container->imir.axis;
|
|
|
++ CHECK_LT(axis, 2);
|
|
|
+ }
|
|
|
+ // MIAF Section 7.3.6.7 (Clean aperture, rotation and mirror) says:
|
|
|
+ // These properties, if used, shall be indicated to be applied in the
|
|
|
+ // following order: clean aperture first, then rotation, then mirror.
|
|
|
+ //
|
|
|
+- // In the kModeAngleToOrientation array, the first dimension is mode (with an
|
|
|
++ // In the kAxisAngleToOrientation array, the first dimension is axis (with an
|
|
|
+ // offset of 1). The second dimension is angle.
|
|
|
+- constexpr ImageOrientationEnum kModeAngleToOrientation[3][4] = {
|
|
|
++ constexpr ImageOrientationEnum kAxisAngleToOrientation[3][4] = {
|
|
|
+ // No mirroring.
|
|
|
+ {ImageOrientationEnum::kOriginTopLeft,
|
|
|
+ ImageOrientationEnum::kOriginLeftBottom,
|
|
|
+@@ -1037,7 +1037,7 @@ bool AVIFImageDecoder::UpdateDemuxer() {
|
|
|
+ ImageOrientationEnum::kOriginBottomLeft,
|
|
|
+ ImageOrientationEnum::kOriginLeftTop},
|
|
|
+ };
|
|
|
+- orientation_ = kModeAngleToOrientation[mode + 1][angle];
|
|
|
++ orientation_ = kAxisAngleToOrientation[axis + 1][angle];
|
|
|
+
|
|
|
+ // Determine whether the image can be decoded to YUV.
|
|
|
+ // * Alpha channel is not supported.
|