mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
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}
This commit is contained in:
parent
22896d4e78
commit
7e00c679a5
8 changed files with 36 additions and 0 deletions
|
@ -16,6 +16,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
|
#include "api/fec_controller_override.h"
|
||||||
#include "api/video_codecs/video_codec.h"
|
#include "api/video_codecs/video_codec.h"
|
||||||
#include "api/video_codecs/video_encoder.h"
|
#include "api/video_codecs/video_encoder.h"
|
||||||
#include "api/video_codecs/vp8_frame_config.h"
|
#include "api/video_codecs/vp8_frame_config.h"
|
||||||
|
@ -105,6 +106,13 @@ class Vp8FrameBufferController {
|
||||||
// The limits are suggestion-only; the controller is allowed to exceed them.
|
// 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;
|
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|.
|
// Number of streamed controlled by |this|.
|
||||||
virtual size_t StreamCount() const = 0;
|
virtual size_t StreamCount() const = 0;
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,11 @@ void Vp8TemporalLayers::SetQpLimits(size_t stream_index,
|
||||||
return controllers_[stream_index]->SetQpLimits(0, min_qp, max_qp);
|
return controllers_[stream_index]->SetQpLimits(0, min_qp, max_qp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Vp8TemporalLayers::SetFecControllerOverride(
|
||||||
|
FecControllerOverride* fec_controller_override) {
|
||||||
|
// Ignore.
|
||||||
|
}
|
||||||
|
|
||||||
size_t Vp8TemporalLayers::StreamCount() const {
|
size_t Vp8TemporalLayers::StreamCount() const {
|
||||||
return controllers_.size();
|
return controllers_.size();
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "api/fec_controller_override.h"
|
||||||
#include "api/video_codecs/video_codec.h"
|
#include "api/video_codecs/video_codec.h"
|
||||||
#include "api/video_codecs/vp8_frame_buffer_controller.h"
|
#include "api/video_codecs/vp8_frame_buffer_controller.h"
|
||||||
#include "api/video_codecs/vp8_frame_config.h"
|
#include "api/video_codecs/vp8_frame_config.h"
|
||||||
|
@ -37,6 +38,9 @@ class Vp8TemporalLayers final : public Vp8FrameBufferController {
|
||||||
|
|
||||||
void SetQpLimits(size_t stream_index, int min_qp, int max_qp) override;
|
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;
|
size_t StreamCount() const override;
|
||||||
|
|
||||||
bool SupportsEncoderFrameDropping(size_t stream_index) const override;
|
bool SupportsEncoderFrameDropping(size_t stream_index) const override;
|
||||||
|
|
|
@ -416,6 +416,7 @@ rtc_static_library("webrtc_vp8_temporal_layers") {
|
||||||
":video_coding_utility",
|
":video_coding_utility",
|
||||||
"..:module_api",
|
"..:module_api",
|
||||||
"../..:webrtc_common",
|
"../..:webrtc_common",
|
||||||
|
"../../api:fec_controller_api",
|
||||||
"../../api/video_codecs:video_codecs_api",
|
"../../api/video_codecs:video_codecs_api",
|
||||||
"../../rtc_base:checks",
|
"../../rtc_base:checks",
|
||||||
"../../rtc_base:rtc_base_approved",
|
"../../rtc_base:rtc_base_approved",
|
||||||
|
|
|
@ -257,6 +257,11 @@ void DefaultTemporalLayers::SetQpLimits(size_t stream_index,
|
||||||
// Ignore.
|
// Ignore.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DefaultTemporalLayers::SetFecControllerOverride(
|
||||||
|
FecControllerOverride* fec_controller_override) {
|
||||||
|
// Ignore.
|
||||||
|
}
|
||||||
|
|
||||||
size_t DefaultTemporalLayers::StreamCount() const {
|
size_t DefaultTemporalLayers::StreamCount() const {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
|
#include "api/fec_controller_override.h"
|
||||||
#include "api/video_codecs/vp8_frame_config.h"
|
#include "api/video_codecs/vp8_frame_config.h"
|
||||||
#include "api/video_codecs/vp8_temporal_layers.h"
|
#include "api/video_codecs/vp8_temporal_layers.h"
|
||||||
#include "modules/video_coding/codecs/vp8/include/temporal_layers_checker.h"
|
#include "modules/video_coding/codecs/vp8/include/temporal_layers_checker.h"
|
||||||
|
@ -36,6 +37,9 @@ class DefaultTemporalLayers final : public Vp8FrameBufferController {
|
||||||
|
|
||||||
void SetQpLimits(size_t stream_index, int min_qp, int max_qp) override;
|
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;
|
size_t StreamCount() const override;
|
||||||
|
|
||||||
bool SupportsEncoderFrameDropping(size_t stream_index) const override;
|
bool SupportsEncoderFrameDropping(size_t stream_index) const override;
|
||||||
|
|
|
@ -87,6 +87,11 @@ void ScreenshareLayers::SetQpLimits(size_t stream_index,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ScreenshareLayers::SetFecControllerOverride(
|
||||||
|
FecControllerOverride* fec_controller_override) {
|
||||||
|
// Ignore.
|
||||||
|
}
|
||||||
|
|
||||||
size_t ScreenshareLayers::StreamCount() const {
|
size_t ScreenshareLayers::StreamCount() const {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "api/fec_controller_override.h"
|
||||||
#include "api/video_codecs/vp8_frame_config.h"
|
#include "api/video_codecs/vp8_frame_config.h"
|
||||||
#include "api/video_codecs/vp8_temporal_layers.h"
|
#include "api/video_codecs/vp8_temporal_layers.h"
|
||||||
#include "modules/video_coding/codecs/vp8/include/temporal_layers_checker.h"
|
#include "modules/video_coding/codecs/vp8/include/temporal_layers_checker.h"
|
||||||
|
@ -38,6 +39,9 @@ class ScreenshareLayers final : public Vp8FrameBufferController {
|
||||||
|
|
||||||
void SetQpLimits(size_t stream_index, int min_qp, int max_qp) override;
|
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;
|
size_t StreamCount() const override;
|
||||||
|
|
||||||
bool SupportsEncoderFrameDropping(size_t stream_index) const override;
|
bool SupportsEncoderFrameDropping(size_t stream_index) const override;
|
||||||
|
|
Loading…
Reference in a new issue