[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1107069: marked as done (bookworm-pu: package aom/3.6.0-1+deb12u2)



Your message dated Sat, 06 Sep 2025 12:14:50 +0100
with message-id <ee4c0876608d99eb3f8b333b556fbd92e7a652eb.camel@adam-barratt.org.uk>
and subject line Closing p-u requests for fixes included in 12.12
has caused the Debian Bug report #1107069,
regarding bookworm-pu: package aom/3.6.0-1+deb12u2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1107069: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1107069
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Subject: bookworm-pu: package aom/3.6.0-1+deb12u2
Package: release.debian.org
Control: affects -1 + src:aom
X-Debbugs-Cc: aom@packages.debian.org
User: release.debian.org@packages.debian.org
Usertags: pu
Tags: bookworm
X-Debbugs-Cc: byang@debian.org carnil@debian.org
Severity: normal

[ Reason ]
Upstream aom developers notified Debian of a deficiency
in package aom that would cause the libaom encoder to generate
invalid outputs. This is not a security bug, but the bug was
deemed important enough to warrant a fix. It is reported in
Debian as https://bugs.debian.org/1106884 .

This bug is fixed in newer Debian versions as well as in upstream
aom/3.6.1, and the fix to this bug is directly recommended
by aom upstream authors.

[ Impact ]
The libaom encoder (aomenc) and its corresponding library
function may generate undecodable outputs under certain
conditions.

[ Tests ]
Manually reviewed. Also passed autopkgtest when tested locally.

[ Risks ]
Since the fix is directly cherry-picked from upstream v3.6.x
branch and the v3.6.1 release, its related risk should be little.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ Changes ]

  * debian/gbp.conf: Explicitly specify debian/bookworm branch.
  * debian/patches/backport/:
    Backport upstream-recommended patch series from upstream v3.6.x branch
    to fix incompatible behavior. (Closes: #1106884)
    + 0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch
    + 0005-Improve-CONFIG_CWG_C013.patch

Please see the debdiff attached for the full changes.
diff -Nru aom-3.6.0/debian/changelog aom-3.6.0/debian/changelog
--- aom-3.6.0/debian/changelog	2024-08-15 10:54:36.000000000 -0400
+++ aom-3.6.0/debian/changelog	2025-05-31 20:29:11.000000000 -0400
@@ -1,3 +1,15 @@
+aom (3.6.0-1+deb12u2) bookworm; urgency=medium
+
+  * Team upload.
+  * debian/gbp.conf: Explicitly specify debian/bookworm branch.
+  * debian/patches/backport/:
+    Backport upstream-recommended patch series from upstream v3.6.x branch
+    to fix incompatible behavior. (Closes: #1106884)
+    + 0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch
+    + 0005-Improve-CONFIG_CWG_C013.patch
+
+ -- Boyuan Yang <byang@debian.org>  Sat, 31 May 2025 20:29:11 -0400
+
 aom (3.6.0-1+deb12u1) bookworm-security; urgency=medium
 
   * CVE-2024-5171
diff -Nru aom-3.6.0/debian/gbp.conf aom-3.6.0/debian/gbp.conf
--- aom-3.6.0/debian/gbp.conf	1969-12-31 19:00:00.000000000 -0500
+++ aom-3.6.0/debian/gbp.conf	2025-05-31 20:18:58.000000000 -0400
@@ -0,0 +1,3 @@
+[DEFAULT]
+debian-branch = debian/bookworm
+ignore-branch = True
diff -Nru aom-3.6.0/debian/patches/backport/0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch aom-3.6.0/debian/patches/backport/0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch
--- aom-3.6.0/debian/patches/backport/0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch	1969-12-31 19:00:00.000000000 -0500
+++ aom-3.6.0/debian/patches/backport/0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch	2025-05-31 20:28:02.000000000 -0400
@@ -0,0 +1,269 @@
+From: Bohan Li <bohanli@google.com>
+Date: Mon, 1 May 2023 17:32:14 -0700
+Subject: Guard support of 7.x and 8.x levels under a config flag.
+
+Also only output 7.x and 8.x levels when explicitly asked.
+
+Bug-Debian: https://bugs.debian.org/1106884
+BUG: aomedia:2871
+Change-Id: I803c7320f3bf4ac8aed7fc1969b40f721bdf621a
+(cherry picked from commit 66a86fe73fb794205f4c28c71dd835cd4733c6b2)
+---
+ aom/aomcx.h                           | 12 +++++----
+ av1/common/av1_common_int.h           |  9 ++++++-
+ av1/common/tile_common.c              |  4 +++
+ av1/common/tile_common.h              |  2 ++
+ av1/encoder/encoder.c                 | 47 +++++++++++++++++++++--------------
+ av1/encoder/level.c                   |  6 +++++
+ build/cmake/aom_config_defaults.cmake |  2 ++
+ test/invalid_file_test.cc             |  4 +++
+ test/level_test.cc                    |  2 +-
+ test/test-data.sha1                   |  1 +
+ test/test_data_util.cmake             |  1 +
+ 11 files changed, 65 insertions(+), 25 deletions(-)
+
+diff --git a/aom/aomcx.h b/aom/aomcx.h
+index b7d1d9d..9c21942 100644
+--- a/aom/aomcx.h
++++ b/aom/aomcx.h
+@@ -616,11 +616,13 @@ enum aome_enc_control_id {
+    * point (OP), int parameter
+    * Possible values are in the form of "ABxy".
+    *  - AB: OP index.
+-   *  - xy: Target level index for the OP. Can be values 0~27 (corresponding to
+-   *    level 2.0 ~ 8.3, note levels 2.2, 2.3, 3.2, 3.3, 4.2 & 4.3 are
+-   *    undefined, and that levels 7.x and 8.x are in draft status), 31
+-   *    (maximum parameters level, no level-based constraints) or 32 (keep
+-   *    level stats only for level monitoring).
++   *  - xy: Target level index for the OP. Possible values are:
++   *    + 0~27: corresponding to level 2.0 ~ 8.3. Note:
++   *      > Levels 2.2, 2.3, 3.2, 3.3, 4.2 & 4.3 are undefined.
++   *      > Levels 7.x and 8.x are in draft status, available under the config
++   *        flag CONFIG_CWG_C013.
++   *    + 31: maximum parameters level, no level-based constraints.
++   *    + 32: keep level stats only for level monitoring.
+    *
+    * E.g.:
+    * - "0" means target level index 0 (2.0) for the 0th OP;
+diff --git a/av1/common/av1_common_int.h b/av1/common/av1_common_int.h
+index f3f2823..304a551 100644
+--- a/av1/common/av1_common_int.h
++++ b/av1/common/av1_common_int.h
+@@ -1871,7 +1871,14 @@ static INLINE int is_valid_seq_level_idx(AV1_LEVEL seq_level_idx) {
+           // The following levels are currently undefined.
+           seq_level_idx != SEQ_LEVEL_2_2 && seq_level_idx != SEQ_LEVEL_2_3 &&
+           seq_level_idx != SEQ_LEVEL_3_2 && seq_level_idx != SEQ_LEVEL_3_3 &&
+-          seq_level_idx != SEQ_LEVEL_4_2 && seq_level_idx != SEQ_LEVEL_4_3);
++          seq_level_idx != SEQ_LEVEL_4_2 && seq_level_idx != SEQ_LEVEL_4_3
++#if !CONFIG_CWG_C013
++          && seq_level_idx != SEQ_LEVEL_7_0 && seq_level_idx != SEQ_LEVEL_7_1 &&
++          seq_level_idx != SEQ_LEVEL_7_2 && seq_level_idx != SEQ_LEVEL_7_3 &&
++          seq_level_idx != SEQ_LEVEL_8_0 && seq_level_idx != SEQ_LEVEL_8_1 &&
++          seq_level_idx != SEQ_LEVEL_8_2 && seq_level_idx != SEQ_LEVEL_8_3
++#endif
++         );
+ }
+ 
+ /*!\endcond */
+diff --git a/av1/common/tile_common.c b/av1/common/tile_common.c
+index 45f4d0c..508fe30 100644
+--- a/av1/common/tile_common.c
++++ b/av1/common/tile_common.c
+@@ -40,6 +40,7 @@ void av1_get_tile_limits(AV1_COMMON *const cm) {
+   const int sb_size_log2 = seq_params->mib_size_log2 + MI_SIZE_LOG2;
+   tiles->max_width_sb = MAX_TILE_WIDTH >> sb_size_log2;
+ 
++#if CONFIG_CWG_C013
+   bool use_level_7_above = false;
+   for (int i = 0; i < seq_params->operating_points_cnt_minus_1 + 1; i++) {
+     if (seq_params->seq_level_idx[i] >= SEQ_LEVEL_7_0 &&
+@@ -57,6 +58,9 @@ void av1_get_tile_limits(AV1_COMMON *const cm) {
+   const int max_tile_area_sb =
+       (use_level_7_above ? MAX_TILE_AREA_LEVEL_7_AND_ABOVE : MAX_TILE_AREA) >>
+       (2 * sb_size_log2);
++#else
++  const int max_tile_area_sb = MAX_TILE_AREA >> (2 * sb_size_log2);
++#endif
+ 
+   tiles->min_log2_cols = tile_log2(tiles->max_width_sb, sb_cols);
+   tiles->max_log2_cols = tile_log2(1, AOMMIN(sb_cols, MAX_TILE_COLS));
+diff --git a/av1/common/tile_common.h b/av1/common/tile_common.h
+index 9a72009..8615a2c 100644
+--- a/av1/common/tile_common.h
++++ b/av1/common/tile_common.h
+@@ -52,7 +52,9 @@ PixelRect av1_get_tile_rect(const TileInfo *tile_info,
+ // The minimum tile width or height is fixed at one superblock
+ #define MAX_TILE_WIDTH (4096)        // Max Tile width in pixels
+ #define MAX_TILE_AREA (4096 * 2304)  // Maximum tile area in pixels
++#if CONFIG_CWG_C013
+ #define MAX_TILE_AREA_LEVEL_7_AND_ABOVE (4096 * 4608)
++#endif
+ 
+ void av1_get_uniform_tile_size(const struct AV1Common *cm, int *w, int *h);
+ void av1_get_tile_limits(struct AV1Common *const cm);
+diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
+index 78eb411..71768a4 100644
+--- a/av1/encoder/encoder.c
++++ b/av1/encoder/encoder.c
+@@ -363,6 +363,9 @@ static INLINE int does_level_match(int width, int height, double fps,
+ static void set_bitstream_level_tier(AV1_PRIMARY *const ppi, int width,
+                                      int height, double init_framerate) {
+   SequenceHeader *const seq_params = &ppi->seq_params;
++#if CONFIG_CWG_C013
++  AV1LevelParams *const level_params = &ppi->level_params;
++#endif
+   // TODO(any): This is a placeholder function that only addresses dimensions
+   // and max display sample rates.
+   // Need to add checks for max bit rate, max decoded luma sample rate, header
+@@ -403,25 +406,33 @@ static void set_bitstream_level_tier(AV1_PRIMARY *const ppi, int width,
+   } else if (does_level_match(width, height, init_framerate, 8192, 4352, 120.0,
+                               2)) {
+     level = SEQ_LEVEL_6_2;
+-  } else if (does_level_match(width, height, init_framerate, 16384, 8704, 30.0,
+-                              2)) {
+-    level = SEQ_LEVEL_7_0;
+-  } else if (does_level_match(width, height, init_framerate, 16384, 8704, 60.0,
+-                              2)) {
+-    level = SEQ_LEVEL_7_1;
+-  } else if (does_level_match(width, height, init_framerate, 16384, 8704, 120.0,
+-                              2)) {
+-    level = SEQ_LEVEL_7_2;
+-  } else if (does_level_match(width, height, init_framerate, 32768, 17408, 30.0,
+-                              2)) {
+-    level = SEQ_LEVEL_8_0;
+-  } else if (does_level_match(width, height, init_framerate, 32768, 17408, 60.0,
+-                              2)) {
+-    level = SEQ_LEVEL_8_1;
+-  } else if (does_level_match(width, height, init_framerate, 32768, 17408,
+-                              120.0, 2)) {
+-    level = SEQ_LEVEL_8_2;
+   }
++#if CONFIG_CWG_C013
++  // TODO(bohanli): currently target level is only working for the 0th operating
++  // point, so scalable coding is not supported.
++  else if (level_params->target_seq_level_idx[0] >= SEQ_LEVEL_7_0 &&
++           level_params->target_seq_level_idx[0] <= SEQ_LEVEL_8_3) {
++    // Only use level 7.x to 8.x when explicitly asked to.
++    if (does_level_match(width, height, init_framerate, 16384, 8704, 30.0, 2)) {
++      level = SEQ_LEVEL_7_0;
++    } else if (does_level_match(width, height, init_framerate, 16384, 8704,
++                                60.0, 2)) {
++      level = SEQ_LEVEL_7_1;
++    } else if (does_level_match(width, height, init_framerate, 16384, 8704,
++                                120.0, 2)) {
++      level = SEQ_LEVEL_7_2;
++    } else if (does_level_match(width, height, init_framerate, 32768, 17408,
++                                30.0, 2)) {
++      level = SEQ_LEVEL_8_0;
++    } else if (does_level_match(width, height, init_framerate, 32768, 17408,
++                                60.0, 2)) {
++      level = SEQ_LEVEL_8_1;
++    } else if (does_level_match(width, height, init_framerate, 32768, 17408,
++                                120.0, 2)) {
++      level = SEQ_LEVEL_8_2;
++    }
++  }
++#endif
+ 
+   for (int i = 0; i < MAX_NUM_OPERATING_POINTS; ++i) {
+     seq_params->seq_level_idx[i] = level;
+diff --git a/av1/encoder/level.c b/av1/encoder/level.c
+index 4d17142..8f8892f 100644
+--- a/av1/encoder/level.c
++++ b/av1/encoder/level.c
+@@ -209,6 +209,7 @@ static const AV1LevelSpec av1_level_defs[SEQ_LEVELS] = {
+     .high_cr = 4.0,
+     .max_tiles = 128,
+     .max_tile_cols = 16 },
++#if CONFIG_CWG_C013
+   { .level = SEQ_LEVEL_7_0,
+     .max_picture_size = 142606336,
+     .max_h_size = 32768,
+@@ -313,6 +314,7 @@ static const AV1LevelSpec av1_level_defs[SEQ_LEVELS] = {
+     .high_cr = 4.0,
+     .max_tiles = 512,
+     .max_tile_cols = 64 },
++#endif
+ };
+ 
+ typedef enum {
+@@ -1016,9 +1018,13 @@ static TARGET_LEVEL_FAIL_ID check_level_constraints(
+       break;
+     }
+ 
++#if CONFIG_CWG_C013
+     const int max_tile_size = (level >= SEQ_LEVEL_7_0 && level <= SEQ_LEVEL_8_3)
+                                   ? MAX_TILE_AREA_LEVEL_7_AND_ABOVE
+                                   : MAX_TILE_AREA;
++#else
++    const int max_tile_size = MAX_TILE_AREA;
++#endif
+     if (level_stats->max_tile_size > max_tile_size) {
+       fail_id = TILE_TOO_LARGE;
+       break;
+diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake
+index eafd26c..d63990b 100644
+--- a/build/cmake/aom_config_defaults.cmake
++++ b/build/cmake/aom_config_defaults.cmake
+@@ -155,6 +155,8 @@ set_aom_config_var(CONFIG_TFLITE 0
+                    "AV1 experiment: Enable tensorflow lite library.")
+ set_aom_config_var(CONFIG_THREE_PASS 0
+                    "AV1 experiment: Enable three-pass encoding.")
++set_aom_config_var(CONFIG_CWG_C013 0
++                   "AV1 experiment: Support for 7.x and 8.x levels.")
+ 
+ #
+ # Variables in this section control optional features of the build system.
+diff --git a/test/invalid_file_test.cc b/test/invalid_file_test.cc
+index 1fc849e..10a3bc4 100644
+--- a/test/invalid_file_test.cc
++++ b/test/invalid_file_test.cc
+@@ -146,7 +146,11 @@ const DecodeParam kAV1InvalidFileTests[] = {
+   { 1, "invalid-oss-fuzz-10227.ivf", nullptr },
+   { 4, "invalid-oss-fuzz-10555.ivf", nullptr },
+   { 1, "invalid-oss-fuzz-10705.ivf", nullptr },
++#if CONFIG_CWG_C013
+   { 1, "invalid-oss-fuzz-10723.ivf", "invalid-oss-fuzz-10723.ivf.res.3" },
++#else
++  { 1, "invalid-oss-fuzz-10723.ivf", "invalid-oss-fuzz-10723.ivf.res.2" },
++#endif
+   { 1, "invalid-oss-fuzz-10779.ivf", nullptr },
+   { 1, "invalid-oss-fuzz-11477.ivf", nullptr },
+   { 1, "invalid-oss-fuzz-11479.ivf", "invalid-oss-fuzz-11479.ivf.res.2" },
+diff --git a/test/level_test.cc b/test/level_test.cc
+index 8759b9b..1156262 100644
+--- a/test/level_test.cc
++++ b/test/level_test.cc
+@@ -88,7 +88,7 @@ TEST_P(LevelTest, TestTargetLevelApi) {
+     for (int level = 0; level <= 32; ++level) {
+       const int target_level = operating_point * 100 + level;
+       if ((level < 28 && level != 2 && level != 3 && level != 6 && level != 7 &&
+-           level != 10 && level != 11) ||
++           level != 10 && level != 11 && (CONFIG_CWG_C013 || level < 20)) ||
+           level == kLevelMax || level == kLevelKeepStats ||
+           operating_point > 31) {
+         EXPECT_EQ(AOM_CODEC_OK,
+diff --git a/test/test-data.sha1 b/test/test-data.sha1
+index 7e4abae..3ac50a4 100644
+--- a/test/test-data.sha1
++++ b/test/test-data.sha1
+@@ -22,6 +22,7 @@ b055f06b9a95aaa5697fa26497b592a47843a7c8 *invalid-oss-fuzz-10555.ivf.res
+ cf5945085fe85456a1f74bf4cc7998b88b3f4b62 *invalid-oss-fuzz-10705.ivf
+ 758671858368ffd2a2c0727898de5661f7cf7d68 *invalid-oss-fuzz-10705.ivf.res
+ 88e29851122cca3f336824f7fa4d9f757f91110c *invalid-oss-fuzz-10723.ivf
++64f8a208dec7f1580fbe0371aa15e62bb1262715 *invalid-oss-fuzz-10723.ivf.res.2
+ 1af486cd2cc83ebeddc76ca7a1c512cc0ec568d5 *invalid-oss-fuzz-10723.ivf.res.3
+ 0784acc8931090ec24eba752d6c27e359e68fe7d *invalid-oss-fuzz-10779.ivf
+ 5d9474c0309b7ca09a182d888f73b37a8fe1362c *invalid-oss-fuzz-10779.ivf.res
+diff --git a/test/test_data_util.cmake b/test/test_data_util.cmake
+index 9a6accb..b5d6fda 100644
+--- a/test/test_data_util.cmake
++++ b/test/test_data_util.cmake
+@@ -552,6 +552,7 @@ if(CONFIG_AV1_DECODER)
+               "invalid-oss-fuzz-10705.ivf"
+               "invalid-oss-fuzz-10705.ivf.res"
+               "invalid-oss-fuzz-10723.ivf"
++              "invalid-oss-fuzz-10723.ivf.res.2"
+               "invalid-oss-fuzz-10723.ivf.res.3"
+               "invalid-oss-fuzz-10779.ivf"
+               "invalid-oss-fuzz-10779.ivf.res"
diff -Nru aom-3.6.0/debian/patches/backport/0005-Improve-CONFIG_CWG_C013.patch aom-3.6.0/debian/patches/backport/0005-Improve-CONFIG_CWG_C013.patch
--- aom-3.6.0/debian/patches/backport/0005-Improve-CONFIG_CWG_C013.patch	1969-12-31 19:00:00.000000000 -0500
+++ aom-3.6.0/debian/patches/backport/0005-Improve-CONFIG_CWG_C013.patch	2025-05-31 20:28:16.000000000 -0400
@@ -0,0 +1,84 @@
+From: Bohan Li <bohanli@google.com>
+Date: Thu, 4 May 2023 10:59:01 -0700
+Subject: Improve CONFIG_CWG_C013
+
+BUG: aomedia:2871
+
+Bug-Debian: https://bugs.debian.org/1106884
+Change-Id: Ib3106740cb93bed00c75d600f985000373150c9c
+(cherry picked from commit 125ce9145a223e01819791f73d8ab937d92a1d77)
+---
+ aom/aomcx.h           |  7 ++++---
+ av1/encoder/encoder.c |  2 +-
+ av1/encoder/level.c   | 11 ++++++++++-
+ test/level_test.cc    |  4 ++--
+ 4 files changed, 17 insertions(+), 7 deletions(-)
+
+diff --git a/aom/aomcx.h b/aom/aomcx.h
+index 9c21942..906cf2a 100644
+--- a/aom/aomcx.h
++++ b/aom/aomcx.h
+@@ -618,9 +618,10 @@ enum aome_enc_control_id {
+    *  - AB: OP index.
+    *  - xy: Target level index for the OP. Possible values are:
+    *    + 0~27: corresponding to level 2.0 ~ 8.3. Note:
+-   *      > Levels 2.2, 2.3, 3.2, 3.3, 4.2 & 4.3 are undefined.
+-   *      > Levels 7.x and 8.x are in draft status, available under the config
+-   *        flag CONFIG_CWG_C013.
++   *      > Levels 2.2 (2), 2.3 (3), 3.2 (6), 3.3 (7), 4.2 (10) & 4.3 (11) are
++   *        undefined.
++   *      > Levels 7.x and 8.x (20~27) are in draft status, available under the
++   *        config flag CONFIG_CWG_C013.
+    *    + 31: maximum parameters level, no level-based constraints.
+    *    + 32: keep level stats only for level monitoring.
+    *
+diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c
+index 71768a4..647c306 100644
+--- a/av1/encoder/encoder.c
++++ b/av1/encoder/encoder.c
+@@ -364,7 +364,7 @@ static void set_bitstream_level_tier(AV1_PRIMARY *const ppi, int width,
+                                      int height, double init_framerate) {
+   SequenceHeader *const seq_params = &ppi->seq_params;
+ #if CONFIG_CWG_C013
+-  AV1LevelParams *const level_params = &ppi->level_params;
++  const AV1LevelParams *const level_params = &ppi->level_params;
+ #endif
+   // TODO(any): This is a placeholder function that only addresses dimensions
+   // and max display sample rates.
+diff --git a/av1/encoder/level.c b/av1/encoder/level.c
+index 8f8892f..5741659 100644
+--- a/av1/encoder/level.c
++++ b/av1/encoder/level.c
+@@ -314,7 +314,16 @@ static const AV1LevelSpec av1_level_defs[SEQ_LEVELS] = {
+     .high_cr = 4.0,
+     .max_tiles = 512,
+     .max_tile_cols = 64 },
+-#endif
++#else   // !CONFIG_CWG_C013
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++  UNDEFINED_LEVEL,
++#endif  // CONFIG_CWG_C013
+ };
+ 
+ typedef enum {
+diff --git a/test/level_test.cc b/test/level_test.cc
+index 1156262..7ae1a75 100644
+--- a/test/level_test.cc
++++ b/test/level_test.cc
+@@ -87,8 +87,8 @@ TEST_P(LevelTest, TestTargetLevelApi) {
+   for (int operating_point = 0; operating_point <= 32; ++operating_point) {
+     for (int level = 0; level <= 32; ++level) {
+       const int target_level = operating_point * 100 + level;
+-      if ((level < 28 && level != 2 && level != 3 && level != 6 && level != 7 &&
+-           level != 10 && level != 11 && (CONFIG_CWG_C013 || level < 20)) ||
++      if ((level < (CONFIG_CWG_C013 ? 28 : 20) && level != 2 && level != 3 &&
++           level != 6 && level != 7 && level != 10 && level != 11) ||
+           level == kLevelMax || level == kLevelKeepStats ||
+           operating_point > 31) {
+         EXPECT_EQ(AOM_CODEC_OK,
diff -Nru aom-3.6.0/debian/patches/series aom-3.6.0/debian/patches/series
--- aom-3.6.0/debian/patches/series	2024-08-15 10:53:39.000000000 -0400
+++ aom-3.6.0/debian/patches/series	2025-05-31 20:28:26.000000000 -0400
@@ -1,3 +1,5 @@
 0001-doc-Use-libjs-mathjax-rather-than-cloudflare-copy.patch
 0002-use-system-libyuv.patch
 CVE-2024-5171.patch
+backport/0004-Guard-support-of-7.x-and-8.x-levels-under-a-config-f.patch
+backport/0005-Improve-CONFIG_CWG_C013.patch

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


--- End Message ---
--- Begin Message ---
Package: release.debian.org
Version: 12.12

Hi,

Each of the updates referenced by these requests was included in
today's 12.12 point release for bookworm.

Regards,

Adam

--- End Message ---

Reply to: