Commit de575da204 for aom

commit de575da20409b4e1fa477c5615837715999c905a
Author: James Zern <jzern@google.com>
Date:   Wed Mar 18 19:10:09 2026 -0700

    aom_image: remove support for AOM{YV12,I420}

    libaom only emits:
      AOM_IMG_FMT_{I420,I422,I444,I42016,I42216,I44416}
    and additionally supports YV12 and NV12 as input.

    The AOMYV12 and AOMI420 variants are unused.

    Ported from libvpx:
      c9a459216 vpx_image: remove unused image formats

    Unlike libvpx, this change keeps the constants and notes they will be
    removed in a future release.

    Change-Id: Ie2ab1099e950c6e696f475d46882f5c47a174042

diff --git a/aom/aom_image.h b/aom/aom_image.h
index 7d0e9fcf3a..6a73298878 100644
--- a/aom/aom_image.h
+++ b/aom/aom_image.h
@@ -43,8 +43,17 @@ typedef enum aom_img_fmt {
   AOM_IMG_FMT_YV12 =
       AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP | 1, /**< planar YVU */
   AOM_IMG_FMT_I420 = AOM_IMG_FMT_PLANAR | 2,
-  AOM_IMG_FMT_AOMYV12 = AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP |
-                        3, /** < planar 4:2:0 format with aom color space */
+  /** Planar 4:2:0 format with aom color space
+   *
+   * \deprecated This value is unsupported and will be removed in a future
+   * release.
+   */
+  AOM_IMG_FMT_AOMYV12 = AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP | 3,
+  /** Planar 4:2:0 format with aom color space
+   *
+   * \deprecated This value is unsupported and will be removed in a future
+   * release.
+   */
   AOM_IMG_FMT_AOMI420 = AOM_IMG_FMT_PLANAR | 4,
   AOM_IMG_FMT_I422 = AOM_IMG_FMT_PLANAR | 5,
   AOM_IMG_FMT_I444 = AOM_IMG_FMT_PLANAR | 6,
diff --git a/aom/src/aom_image.c b/aom/src/aom_image.c
index fa3ab06de1..c25143b115 100644
--- a/aom/src/aom_image.c
+++ b/aom/src/aom_image.c
@@ -35,8 +35,6 @@ static bool is_valid_img_fmt(aom_img_fmt_t fmt) {
   switch (fmt) {
     case AOM_IMG_FMT_YV12:
     case AOM_IMG_FMT_I420:
-    case AOM_IMG_FMT_AOMYV12:
-    case AOM_IMG_FMT_AOMI420:
     case AOM_IMG_FMT_I422:
     case AOM_IMG_FMT_I444:
     case AOM_IMG_FMT_NV12:
@@ -92,9 +90,7 @@ static aom_image_t *img_alloc_helper(
   switch (fmt) {
     case AOM_IMG_FMT_I420:
     case AOM_IMG_FMT_YV12:
-    case AOM_IMG_FMT_NV12:
-    case AOM_IMG_FMT_AOMI420:
-    case AOM_IMG_FMT_AOMYV12: bps = 12; break;
+    case AOM_IMG_FMT_NV12: bps = 12; break;
     case AOM_IMG_FMT_I422: bps = 16; break;
     case AOM_IMG_FMT_I444: bps = 24; break;
     case AOM_IMG_FMT_YV1216:
@@ -111,8 +107,6 @@ static aom_image_t *img_alloc_helper(
     case AOM_IMG_FMT_I420:
     case AOM_IMG_FMT_YV12:
     case AOM_IMG_FMT_NV12:
-    case AOM_IMG_FMT_AOMI420:
-    case AOM_IMG_FMT_AOMYV12:
     case AOM_IMG_FMT_I422:
     case AOM_IMG_FMT_I42016:
     case AOM_IMG_FMT_YV1216:
@@ -124,8 +118,6 @@ static aom_image_t *img_alloc_helper(
     case AOM_IMG_FMT_I420:
     case AOM_IMG_FMT_YV12:
     case AOM_IMG_FMT_NV12:
-    case AOM_IMG_FMT_AOMI420:
-    case AOM_IMG_FMT_AOMYV12:
     case AOM_IMG_FMT_YV1216:
     case AOM_IMG_FMT_I42016: ycs = 1; break;
     default: ycs = 0; break;
diff --git a/av1/decoder/grain_synthesis.c b/av1/decoder/grain_synthesis.c
index 0655b68b81..bbf5895ff9 100644
--- a/av1/decoder/grain_synthesis.c
+++ b/av1/decoder/grain_synthesis.c
@@ -1379,7 +1379,6 @@ int av1_add_film_grain(const aom_film_grain_t *params, const aom_image_t *src,
   int mc_identity = src->mc == AOM_CICP_MC_IDENTITY ? 1 : 0;

   switch (src->fmt) {
-    case AOM_IMG_FMT_AOMI420:
     case AOM_IMG_FMT_I420:
       use_high_bit_depth = 0;
       chroma_subsamp_x = 1;
diff --git a/test/aom_image_test.cc b/test/aom_image_test.cc
index f47d780207..6c0059b0fd 100644
--- a/test/aom_image_test.cc
+++ b/test/aom_image_test.cc
@@ -51,9 +51,10 @@ TEST(AomImageTest, AomImgSetRectOverflow) {
 }

 TEST(AomImageTest, AomImgAllocInvalidImageFormats) {
-  static constexpr std::array<int, 5> kImageFormats = {
-    AOM_IMG_FMT_NONE, AOM_IMG_FMT_NONE - 1, AOM_IMG_FMT_NV12 + 1,
-    AOM_IMG_FMT_I42016 - 1, AOM_IMG_FMT_I44416 + 1
+  static constexpr std::array<int, 7> kImageFormats = {
+    AOM_IMG_FMT_NONE,       AOM_IMG_FMT_NONE - 1,   AOM_IMG_FMT_NV12 + 1,
+    AOM_IMG_FMT_I42016 - 1, AOM_IMG_FMT_I44416 + 1, AOM_IMG_FMT_AOMYV12,
+    AOM_IMG_FMT_AOMI420
   };

   for (const auto img_fmt : kImageFormats) {
diff --git a/test/encode_api_test.cc b/test/encode_api_test.cc
index 06e4048898..914d783ed5 100644
--- a/test/encode_api_test.cc
+++ b/test/encode_api_test.cc
@@ -193,11 +193,10 @@ TEST(EncodeAPI, InvalidControlId) {
 }

 TEST(EncodeAPI, InvalidUVStrides) {
-  static constexpr std::array<aom_img_fmt_t, 11> kAv1ImageFormats = {
-    AOM_IMG_FMT_YV12,    AOM_IMG_FMT_I420,   AOM_IMG_FMT_AOMYV12,
-    AOM_IMG_FMT_AOMI420, AOM_IMG_FMT_I422,   AOM_IMG_FMT_I444,
-    AOM_IMG_FMT_NV12,    AOM_IMG_FMT_I42016, AOM_IMG_FMT_YV1216,
-    AOM_IMG_FMT_I42216,  AOM_IMG_FMT_I44416
+  static constexpr std::array<aom_img_fmt_t, 9> kAv1ImageFormats = {
+    AOM_IMG_FMT_YV12,   AOM_IMG_FMT_I420,   AOM_IMG_FMT_I422,
+    AOM_IMG_FMT_I444,   AOM_IMG_FMT_NV12,   AOM_IMG_FMT_I42016,
+    AOM_IMG_FMT_YV1216, AOM_IMG_FMT_I42216, AOM_IMG_FMT_I44416
   };
   struct UVStride {
     int u_stride;
@@ -256,10 +255,8 @@ TEST(EncodeAPI, InvalidUVStrides) {
         // Monochrome should ignore the U and V planes and NV12 only sets one
         // stride value, they should always succeed. The AOM* aom_img_fmt_t
         // variants are unsupported by the encoder.
-        aom_codec_err_t expected_err =
-            ((cfg.monochrome && img_fmt != AOM_IMG_FMT_AOMYV12 &&
-              img_fmt != AOM_IMG_FMT_AOMI420) ||
-             img_fmt == AOM_IMG_FMT_NV12)
+        const aom_codec_err_t expected_err =
+            (cfg.monochrome || img_fmt == AOM_IMG_FMT_NV12)
                 ? AOM_CODEC_OK
                 : AOM_CODEC_INVALID_PARAM;
         EXPECT_EQ(aom_codec_encode(&enc, &img, /*pts=*/0, /*duration=*/1,
@@ -272,13 +269,9 @@ TEST(EncodeAPI, InvalidUVStrides) {
         // Ensure the encoder can recover when given valid strides.
         img.stride[AOM_PLANE_U] = orig.u_stride;
         img.stride[AOM_PLANE_V] = orig.v_stride;
-        expected_err =
-            (img_fmt == AOM_IMG_FMT_AOMYV12 || img_fmt == AOM_IMG_FMT_AOMI420)
-                ? AOM_CODEC_INVALID_PARAM
-                : AOM_CODEC_OK;
         EXPECT_EQ(aom_codec_encode(&enc, &img, /*pts=*/0, /*duration=*/1,
                                    /*flags=*/0),
-                  expected_err)
+                  AOM_CODEC_OK)
             << "Error: " << aom_codec_error_detail(&enc)
             << ", format: " << img_fmt << ", U stride: " << orig.u_stride
             << ", V stride: " << orig.v_stride;