Add Clone() to Vp8FrameBufferControllerFactory
Bug: None
Change-Id: Ie59c795361420695ca9cb363ec5b3035728306f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142227
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28297}
diff --git a/api/video_codecs/vp8_frame_buffer_controller.h b/api/video_codecs/vp8_frame_buffer_controller.h
index 0d38455..91bb2f6 100644
--- a/api/video_codecs/vp8_frame_buffer_controller.h
+++ b/api/video_codecs/vp8_frame_buffer_controller.h
@@ -176,6 +176,12 @@
public:
virtual ~Vp8FrameBufferControllerFactory() = default;
+ // Clones oneself. (Avoids Vp8FrameBufferControllerFactoryFactory.)
+ // TODO(bugs.webrtc.org/10720): Update downstream and make pure-virtual.
+ virtual std::unique_ptr<Vp8FrameBufferControllerFactory> Clone() const {
+ return nullptr;
+ }
+
// TODO(bugs.webrtc.org/10720): Update downstream and remove.
virtual std::unique_ptr<Vp8FrameBufferController> Create(
const VideoCodec& codec) {
diff --git a/api/video_codecs/vp8_temporal_layers_factory.cc b/api/video_codecs/vp8_temporal_layers_factory.cc
index 878fa79..1a77323 100644
--- a/api/video_codecs/vp8_temporal_layers_factory.cc
+++ b/api/video_codecs/vp8_temporal_layers_factory.cc
@@ -47,4 +47,9 @@
return absl::make_unique<Vp8TemporalLayers>(std::move(controllers));
}
+std::unique_ptr<Vp8FrameBufferControllerFactory>
+Vp8TemporalLayersFactory::Clone() const {
+ return absl::make_unique<Vp8TemporalLayersFactory>();
+}
+
} // namespace webrtc
diff --git a/api/video_codecs/vp8_temporal_layers_factory.h b/api/video_codecs/vp8_temporal_layers_factory.h
index fd5e5d6..747580f 100644
--- a/api/video_codecs/vp8_temporal_layers_factory.h
+++ b/api/video_codecs/vp8_temporal_layers_factory.h
@@ -21,6 +21,8 @@
public:
~Vp8TemporalLayersFactory() override = default;
+ std::unique_ptr<Vp8FrameBufferControllerFactory> Clone() const override;
+
std::unique_ptr<Vp8FrameBufferController> Create(
const VideoCodec& codec,
const VideoEncoder::Settings& settings) override;