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,