Add max_ref_frames and max_depth paramters to API

They are not yet implemented (or even validated) and should not be
until all callers of the API populate them.

Bug: b/240412144
Change-Id: I126265cc1dbd6108e052fb4587d9fa702097362b
diff --git a/av1/ratectrl_qmode_interface.h b/av1/ratectrl_qmode_interface.h
index 316a699..1e4e5c6 100644
--- a/av1/ratectrl_qmode_interface.h
+++ b/av1/ratectrl_qmode_interface.h
@@ -30,10 +30,19 @@
 };
 
 struct RateControlParam {
+  // Range of allowed GOP sizes (number of displayed frames).
   int max_gop_show_frame_count;
   int min_gop_show_frame_count;
-  int ref_frame_table_size;  // number of reference frame buffers
+  // Number of reference frame buffers, i.e., size of the DPB.
+  int ref_frame_table_size;
+  // Maximum number of references a single frame may use.
+  int max_ref_frames;
+  // Maximum pyramid depth. e.g., 1 means only one ARF per GOP,
+  // 2 would allow an additional level of intermediate ARFs.
+  int max_depth;
+
   int base_q_index;
+
   int frame_width;
   int frame_height;
 };
diff --git a/test/ratectrl_qmode_test.cc b/test/ratectrl_qmode_test.cc
index 1678beb..60a230f 100644
--- a/test/ratectrl_qmode_test.cc
+++ b/test/ratectrl_qmode_test.cc
@@ -950,6 +950,8 @@
   RateControlParam rc_param = {};
   rc_param.max_gop_show_frame_count = 8;
   rc_param.ref_frame_table_size = 3;
+  rc_param.max_ref_frames = 3;
+  rc_param.max_depth = 3;
   rc_param.frame_width = 128;
   rc_param.frame_height = 128;
   ASSERT_THAT(rc.SetRcParam(rc_param), IsOkStatus());
@@ -984,6 +986,8 @@
   RateControlParam rc_param = {};
   rc_param.max_gop_show_frame_count = 8;
   rc_param.ref_frame_table_size = 3;
+  rc_param.max_ref_frames = 3;
+  rc_param.max_depth = 3;
   rc_param.frame_height = 128;
   rc_param.frame_width = 128;
   ASSERT_THAT(rc.SetRcParam(rc_param), IsOkStatus());
@@ -1024,6 +1028,8 @@
   rc_param.max_gop_show_frame_count = 32;
   rc_param.min_gop_show_frame_count = 4;
   rc_param.ref_frame_table_size = 7;
+  rc_param.max_ref_frames = 7;
+  rc_param.max_depth = 5;
   ASSERT_THAT(rc.SetRcParam(rc_param), IsOkStatus());
 
   const auto gop_info = rc.DetermineGopInfo(firstpass_info);
@@ -1051,6 +1057,8 @@
   rc_param.max_gop_show_frame_count = 16;
   rc_param.min_gop_show_frame_count = 4;
   rc_param.ref_frame_table_size = 7;
+  rc_param.max_ref_frames = 7;
+  rc_param.max_depth = 5;
   // Just an arbitrary base qp for the test.
   rc_param.base_q_index = 128;
   ASSERT_THAT(rc.SetRcParam(rc_param), IsOkStatus());