Pass FecControllerOverride to Vp8FrameBufferController
Bug: webrtc:10769
Change-Id: I06d875f5afdc7ebf290ad70934b6632e20ddf065
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143964
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28418}
diff --git a/api/video_codecs/vp8_frame_buffer_controller.h b/api/video_codecs/vp8_frame_buffer_controller.h
index e0d4851..94e08a9 100644
--- a/api/video_codecs/vp8_frame_buffer_controller.h
+++ b/api/video_codecs/vp8_frame_buffer_controller.h
@@ -16,6 +16,7 @@
#include <vector>
#include "absl/types/optional.h"
+#include "api/fec_controller_override.h"
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/vp8_frame_config.h"
@@ -105,6 +106,13 @@
// The limits are suggestion-only; the controller is allowed to exceed them.
virtual void SetQpLimits(size_t stream_index, int min_qp, int max_qp) = 0;
+ // Set a FecControllerOverride, through which the bandwidth allocation
+ // decisions made by FecController may be overridden.
+ // TODO(bugs.webrtc.org/10769): Update downstream projects, then make
+ // this pure-virtual.
+ virtual void SetFecControllerOverride(
+ FecControllerOverride* fec_controller_override) {}
+
// Number of streamed controlled by |this|.
virtual size_t StreamCount() const = 0;
diff --git a/api/video_codecs/vp8_temporal_layers.cc b/api/video_codecs/vp8_temporal_layers.cc
index 22916a7..b29cf65 100644
--- a/api/video_codecs/vp8_temporal_layers.cc
+++ b/api/video_codecs/vp8_temporal_layers.cc
@@ -35,6 +35,11 @@
return controllers_[stream_index]->SetQpLimits(0, min_qp, max_qp);
}
+void Vp8TemporalLayers::SetFecControllerOverride(
+ FecControllerOverride* fec_controller_override) {
+ // Ignore.
+}
+
size_t Vp8TemporalLayers::StreamCount() const {
return controllers_.size();
}
diff --git a/api/video_codecs/vp8_temporal_layers.h b/api/video_codecs/vp8_temporal_layers.h
index 4194352..efd013e 100644
--- a/api/video_codecs/vp8_temporal_layers.h
+++ b/api/video_codecs/vp8_temporal_layers.h
@@ -14,6 +14,7 @@
#include <memory>
#include <vector>
+#include "api/fec_controller_override.h"
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/vp8_frame_buffer_controller.h"
#include "api/video_codecs/vp8_frame_config.h"
@@ -37,6 +38,9 @@
void SetQpLimits(size_t stream_index, int min_qp, int max_qp) override;
+ void SetFecControllerOverride(
+ FecControllerOverride* fec_controller_override) override;
+
size_t StreamCount() const override;
bool SupportsEncoderFrameDropping(size_t stream_index) const override;