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;