Pass FecControllerOverride to Vp8FrameBufferControllerFactory::Create
Previously, FecControllerOverride was passed to Vp8FrameBufferController::SetFecControllerOverride. Passing to the factory is a more elegant way, since it's only used when the controller is constructed. TBR=kwiberg@webrtc.org Bug: webrtc:10769 Change-Id: Iae599889e7ca9003e3200c2911239cbb763ee65a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144380 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Elad Alon <eladalon@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28443}
This commit is contained in:
@ -106,13 +106,6 @@ class Vp8FrameBufferController {
|
||||
// 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;
|
||||
|
||||
@ -188,9 +181,24 @@ class Vp8FrameBufferControllerFactory {
|
||||
virtual std::unique_ptr<Vp8FrameBufferControllerFactory> Clone() const = 0;
|
||||
|
||||
// Create a Vp8FrameBufferController instance.
|
||||
// TODO(bugs.webrtc.org/10769): Update downstream projects, then remove
|
||||
// version without |fec_controller_override| and make the other version
|
||||
// pure-virtual.
|
||||
// (In theory, if neither version is overridden, stack overflow would occur.
|
||||
// In practice, all subclasses override at least one version, and following
|
||||
// the update of downstream projects, only one pure-virtual version will
|
||||
// remain.)
|
||||
virtual std::unique_ptr<Vp8FrameBufferController> Create(
|
||||
const VideoCodec& codec,
|
||||
const VideoEncoder::Settings& settings) = 0;
|
||||
const VideoEncoder::Settings& settings) {
|
||||
return Create(codec, settings, nullptr);
|
||||
}
|
||||
virtual std::unique_ptr<Vp8FrameBufferController> Create(
|
||||
const VideoCodec& codec,
|
||||
const VideoEncoder::Settings& settings,
|
||||
FecControllerOverride* fec_controller_override) {
|
||||
return Create(codec, settings);
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
Reference in New Issue
Block a user