Pass first pass stats to Get[TplPass]GopEncodeInfo
Also removed implementation of the old API
The old API can't be deleted altogether until all downstream uses
and implementations have been removed.
Bug: b/260859962
Change-Id: Ie0d5d474e5b2bb7a8ffbac9b128a5bce41237886
diff --git a/av1/qmode_rc/ratectrl_qmode.cc b/av1/qmode_rc/ratectrl_qmode.cc
index 0eff0bb..0a2892d 100644
--- a/av1/qmode_rc/ratectrl_qmode.cc
+++ b/av1/qmode_rc/ratectrl_qmode.cc
@@ -1519,11 +1519,6 @@
}
StatusOr<GopEncodeInfo> AV1RateControlQMode::GetTplPassGopEncodeInfo(
- const GopStruct &gop_struct) {
- return GetGopEncodeInfoWithNoStats(gop_struct);
-}
-
-StatusOr<GopEncodeInfo> AV1RateControlQMode::GetTplPassGopEncodeInfo(
const GopStruct &gop_struct, const FirstpassInfo &firstpass_info) {
return GetGopEncodeInfoWithFp(gop_struct, firstpass_info);
}
@@ -1531,27 +1526,6 @@
StatusOr<GopEncodeInfo> AV1RateControlQMode::GetGopEncodeInfo(
const GopStruct &gop_struct, const TplGopStats &tpl_gop_stats,
const std::vector<LookaheadStats> &lookahead_stats,
- const RefFrameTable &ref_frame_table_snapshot_init) {
- Status status = ValidateTplStats(gop_struct, tpl_gop_stats);
- if (!status.ok()) {
- return status;
- }
-
- for (const auto &lookahead_stat : lookahead_stats) {
- Status status = ValidateTplStats(*lookahead_stat.gop_struct,
- *lookahead_stat.tpl_gop_stats);
- if (!status.ok()) {
- return status;
- }
- }
-
- return GetGopEncodeInfoWithTpl(gop_struct, tpl_gop_stats, lookahead_stats,
- ref_frame_table_snapshot_init);
-}
-
-StatusOr<GopEncodeInfo> AV1RateControlQMode::GetGopEncodeInfo(
- const GopStruct &gop_struct, const TplGopStats &tpl_gop_stats,
- const std::vector<LookaheadStats> &lookahead_stats,
const FirstpassInfo &firstpass_info AOM_UNUSED,
const RefFrameTable &ref_frame_table_snapshot_init) {
// When TPL stats are not valid, use first pass stats.
diff --git a/av1/qmode_rc/ratectrl_qmode.h b/av1/qmode_rc/ratectrl_qmode.h
index 34ea13f..f60000e 100644
--- a/av1/qmode_rc/ratectrl_qmode.h
+++ b/av1/qmode_rc/ratectrl_qmode.h
@@ -107,15 +107,9 @@
StatusOr<GopEncodeInfo> GetGopEncodeInfo(
const GopStruct &gop_struct, const TplGopStats &tpl_gop_stats,
const std::vector<LookaheadStats> &lookahead_stats,
- const RefFrameTable &ref_frame_table_snapshot) override;
- StatusOr<GopEncodeInfo> GetGopEncodeInfo(
- const GopStruct &gop_struct, const TplGopStats &tpl_gop_stats,
- const std::vector<LookaheadStats> &lookahead_stats,
const FirstpassInfo &firstpass_info,
const RefFrameTable &ref_frame_table_snapshot) override;
StatusOr<GopEncodeInfo> GetTplPassGopEncodeInfo(
- const GopStruct &gop_struct) override;
- StatusOr<GopEncodeInfo> GetTplPassGopEncodeInfo(
const GopStruct &gop_struct,
const FirstpassInfo &firstpass_info) override;
diff --git a/test/ducky_encode_test.cc b/test/ducky_encode_test.cc
index ebc430c..7bbdc88 100644
--- a/test/ducky_encode_test.cc
+++ b/test/ducky_encode_test.cc
@@ -141,7 +141,8 @@
std::vector<aom::GopEncodeInfo> tpl_pass_gop_encode_info_list;
std::vector<aom::TplGopStats> tpl_gop_stats_list;
for (const auto &gop_struct : gop_list) {
- const auto gop_encode_info = qmode_rc.GetTplPassGopEncodeInfo(gop_struct);
+ const auto gop_encode_info =
+ qmode_rc.GetTplPassGopEncodeInfo(gop_struct, firstpass_info);
ASSERT_TRUE(gop_encode_info.status().ok());
tpl_pass_gop_encode_info_list.push_back(std::move(*gop_encode_info));
}
@@ -161,8 +162,9 @@
lookahead_stats.push_back({ &gop_list[i + lookahead_index],
&tpl_gop_stats_list[i + lookahead_index] });
}
- const auto gop_encode_info = qmode_rc.GetGopEncodeInfo(
- gop_struct, tpl_gop_stats, lookahead_stats, ref_frame_table);
+ const auto gop_encode_info =
+ qmode_rc.GetGopEncodeInfo(gop_struct, tpl_gop_stats, lookahead_stats,
+ firstpass_info, ref_frame_table);
ASSERT_TRUE(gop_encode_info.status().ok());
ref_frame_table = gop_encode_info.value().final_snapshot;
final_pass_gop_encode_info_list.push_back(std::move(*gop_encode_info));
diff --git a/test/ratectrl_qmode_test.cc b/test/ratectrl_qmode_test.cc
index fc0acf8..fa0c19a 100644
--- a/test/ratectrl_qmode_test.cc
+++ b/test/ratectrl_qmode_test.cc
@@ -1044,7 +1044,8 @@
std::vector<aom::GopEncodeInfo> gop_encode_info_list;
for (const auto &gop_struct : gop_list) {
- const auto gop_encode_info = rc.GetTplPassGopEncodeInfo(gop_struct);
+ const auto gop_encode_info =
+ rc.GetTplPassGopEncodeInfo(gop_struct, firstpass_info);
ASSERT_TRUE(gop_encode_info.ok());
gop_encode_info_list.push_back(gop_encode_info.value());
}
@@ -1057,8 +1058,9 @@
int num_gop_skipped = 0;
for (size_t gop_idx = 0; gop_idx < gop_list.size(); gop_idx++) {
size_t tpl_gop_idx = gop_idx - num_gop_skipped;
- const auto gop_encode_info = rc.GetGopEncodeInfo(
- gop_list[gop_idx], tpl_gop_list[tpl_gop_idx], {}, ref_frame_table);
+ const auto gop_encode_info =
+ rc.GetGopEncodeInfo(gop_list[gop_idx], tpl_gop_list[tpl_gop_idx], {},
+ firstpass_info, ref_frame_table);
ASSERT_THAT(gop_encode_info.status(), IsOkStatus());
for (auto &frame_param : gop_encode_info->param_list) {
EXPECT_LE(frame_param.q_index, rc_param_.base_q_index);
@@ -1079,7 +1081,7 @@
5, CreateToyTplFrameStatsWithDiffSizes(8, 8));
AV1RateControlQMode rc;
const Status status =
- rc.GetGopEncodeInfo(gop_struct, tpl_gop_stats, {}, RefFrameTable())
+ rc.GetGopEncodeInfo(gop_struct, tpl_gop_stats, {}, {}, RefFrameTable())
.status();
EXPECT_EQ(status.code, AOM_CODEC_INVALID_PARAM);
EXPECT_THAT(status.message,
@@ -1104,7 +1106,7 @@
AV1RateControlQMode rc;
const Status status =
- rc.GetGopEncodeInfo(gop_struct, tpl_gop_stats, {}, RefFrameTable())
+ rc.GetGopEncodeInfo(gop_struct, tpl_gop_stats, {}, {}, RefFrameTable())
.status();
EXPECT_EQ(status.code, AOM_CODEC_INVALID_PARAM);
EXPECT_THAT(status.message,