diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc
index e86ab63..8abe6d6 100644
--- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc
+++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.cc
@@ -10,6 +10,8 @@
 
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h"
 
+#include <algorithm>
+
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
 #include "modules/congestion_controller/goog_cc/robust_throughput_estimator.h"
 #include "rtc_base/logging.h"
@@ -27,21 +29,34 @@
                         << " packets";
     min_packets = 20;
   }
+  if (initial_packets < 10 || kMaxPackets < initial_packets) {
+    RTC_LOG(LS_WARNING) << "Initial size must be between 10 and " << kMaxPackets
+                        << " packets";
+    initial_packets = 20;
+  }
+  initial_packets = std::min(initial_packets, min_packets);
   if (window_duration < TimeDelta::ms(100) ||
       TimeDelta::ms(2000) < window_duration) {
     RTC_LOG(LS_WARNING) << "Window duration must be between 100 and 2000 ms";
     window_duration = TimeDelta::ms(500);
   }
+  if (unacked_weight < 0.0 || 1.0 < unacked_weight) {
+    RTC_LOG(LS_WARNING)
+        << "Weight for prior unacked size must be between 0 and 1.";
+    unacked_weight = 1.0;
+  }
 }
 
 std::unique_ptr<StructParametersParser>
 RobustThroughputEstimatorSettings::Parser() {
-  return StructParametersParser::Create("enabled", &enabled,          //
-                                        "reduce_bias", &reduce_bias,  //
-                                        "assume_shared_link",
-                                        &assume_shared_link,          //
-                                        "min_packets", &min_packets,  //
-                                        "window_duration", &window_duration);
+  return StructParametersParser::Create("enabled", &enabled,                  //
+                                        "reduce_bias", &reduce_bias,          //
+                                        "assume_shared_link",                 //
+                                        &assume_shared_link,                  //
+                                        "min_packets", &min_packets,          //
+                                        "window_duration", &window_duration,  //
+                                        "initial_packets", &initial_packets,  //
+                                        "unacked_weight", &unacked_weight);
 }
 
 AcknowledgedBitrateEstimatorInterface::
diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h
index 0b29a2c..fb257cf 100644
--- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h
+++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h
@@ -49,6 +49,15 @@
   unsigned min_packets = 20;
   TimeDelta window_duration = TimeDelta::ms(500);
 
+  // The estimator window requires at least |initial_packets| packets received
+  // over at least |initial_duration|.
+  unsigned initial_packets = 20;
+
+  // If audio packets are included in allocation, but not in bandwidth
+  // estimation and the sent audio packets get double counted,
+  // then it might be useful to reduce the weight to 0.5.
+  double unacked_weight = 1.0;
+
   std::unique_ptr<StructParametersParser> Parser();
 };
 
diff --git a/modules/congestion_controller/goog_cc/robust_throughput_estimator.cc b/modules/congestion_controller/goog_cc/robust_throughput_estimator.cc
index 5966bc0..8c77e8f 100644
--- a/modules/congestion_controller/goog_cc/robust_throughput_estimator.cc
+++ b/modules/congestion_controller/goog_cc/robust_throughput_estimator.cc
@@ -53,7 +53,7 @@
 }
 
 absl::optional<DataRate> RobustThroughputEstimator::bitrate() const {
-  if (window_.size() < settings_.min_packets)
+  if (window_.size() < settings_.initial_packets)
     return absl::nullopt;
 
   TimeDelta largest_recv_gap(TimeDelta::ms(0));
@@ -80,7 +80,8 @@
     min_recv_time = std::min(min_recv_time, packet.receive_time);
     max_recv_time = std::max(max_recv_time, packet.receive_time);
     data_size += packet.sent_packet.size;
-    data_size += packet.sent_packet.prior_unacked_data;
+    data_size +=
+        packet.sent_packet.prior_unacked_data * settings_.unacked_weight;
   }
 
   // Suppose a packet of size S is sent every T milliseconds.
