Improve CONFIG_CWG_C013 BUG: aomedia:2871 Change-Id: Ib3106740cb93bed00c75d600f985000373150c9c (cherry picked from commit 125ce9145a223e01819791f73d8ab937d92a1d77)
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 @@ * - 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 0ba4405..0b12ff0 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c
@@ -364,7 +364,7 @@ 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 @@ .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 @@ 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,