Move VideoStreamEncoderInterface to api/.
Bug: webrtc:8830
Change-Id: I17908b4ef6a043acf22e2110b9672012d5fa7fc0
Reviewed-on: https://webrtc-review.googlesource.com/74481
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23334}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index f8b282f..dd77987 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -87,8 +87,6 @@
"turncustomizer.h",
"umametrics.cc",
"umametrics.h",
- "videosourceinterface.cc",
- "videosourceinterface.h",
"videosourceproxy.h",
]
@@ -227,6 +225,7 @@
visibility = [ "*" ]
sources = [
"videosinkinterface.h",
+ "videosourceinterface.h",
]
public_deps = [ # no-presubmit-check TODO(webrtc:8603)
diff --git a/api/mediastreaminterface.h b/api/mediastreaminterface.h
index 34a3143..195ecc6 100644
--- a/api/mediastreaminterface.h
+++ b/api/mediastreaminterface.h
@@ -28,7 +28,7 @@
// relying on them; they were previously transitively included by
// mediachannel.h, which is no longer a dependency of this file.
#include "api/video/video_sink_interface.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "modules/audio_processing/include/audio_processing_statistics.h"
#include "rtc_base/ratetracker.h"
#include "rtc_base/refcount.h"
diff --git a/api/video/BUILD.gn b/api/video/BUILD.gn
index 14f68e6..0b34945 100644
--- a/api/video/BUILD.gn
+++ b/api/video/BUILD.gn
@@ -19,11 +19,14 @@
"video_frame_buffer.h",
"video_rotation.h",
"video_sink_interface.h",
+ "video_source_interface.cc",
+ "video_source_interface.h",
"video_timing.cc",
"video_timing.h",
]
deps = [
+ "..:optional",
"../../rtc_base:checks",
"../../rtc_base:rtc_base_approved",
]
@@ -99,3 +102,18 @@
"../../video:video_stream_decoder_impl",
]
}
+
+rtc_source_set("video_stream_encoder") {
+ visibility = [ "*" ]
+ sources = [
+ "video_stream_encoder_interface.h",
+ ]
+
+ deps = [
+ ":video_frame",
+
+ # For rtpparameters.h
+ "..:libjingle_peerconnection_api",
+ "../video_codecs:video_codecs_api",
+ ]
+}
diff --git a/api/videosourceinterface.cc b/api/video/video_source_interface.cc
similarity index 92%
rename from api/videosourceinterface.cc
rename to api/video/video_source_interface.cc
index 8cf8202..70a86c3 100644
--- a/api/videosourceinterface.cc
+++ b/api/video/video_source_interface.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
namespace rtc {
diff --git a/api/video/video_source_interface.h b/api/video/video_source_interface.h
new file mode 100644
index 0000000..d4e2d3a
--- /dev/null
+++ b/api/video/video_source_interface.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef API_VIDEO_VIDEO_SOURCE_INTERFACE_H_
+#define API_VIDEO_VIDEO_SOURCE_INTERFACE_H_
+
+#include <limits>
+
+#include "api/optional.h"
+#include "api/video/video_sink_interface.h"
+
+namespace rtc {
+
+// VideoSinkWants is used for notifying the source of properties a video frame
+// should have when it is delivered to a certain sink.
+struct VideoSinkWants {
+ VideoSinkWants();
+ VideoSinkWants(const VideoSinkWants&);
+ ~VideoSinkWants();
+ // Tells the source whether the sink wants frames with rotation applied.
+ // By default, any rotation must be applied by the sink.
+ bool rotation_applied = false;
+
+ // Tells the source that the sink only wants black frames.
+ bool black_frames = false;
+
+ // Tells the source the maximum number of pixels the sink wants.
+ int max_pixel_count = std::numeric_limits<int>::max();
+ // Tells the source the desired number of pixels the sinks wants. This will
+ // typically be used when stepping the resolution up again when conditions
+ // have improved after an earlier downgrade. The source should select the
+ // closest resolution to this pixel count, but if max_pixel_count is set, it
+ // still sets the absolute upper bound.
+ rtc::Optional<int> target_pixel_count;
+ // Tells the source the maximum framerate the sink wants.
+ int max_framerate_fps = std::numeric_limits<int>::max();
+};
+
+template <typename VideoFrameT>
+class VideoSourceInterface {
+ public:
+ virtual void AddOrUpdateSink(VideoSinkInterface<VideoFrameT>* sink,
+ const VideoSinkWants& wants) = 0;
+ // RemoveSink must guarantee that at the time the method returns,
+ // there is no current and no future calls to VideoSinkInterface::OnFrame.
+ virtual void RemoveSink(VideoSinkInterface<VideoFrameT>* sink) = 0;
+
+ protected:
+ // Non-public, since one shouldn't own sources via this interface.
+ virtual ~VideoSourceInterface() {}
+};
+
+} // namespace rtc
+#endif // API_VIDEO_VIDEO_SOURCE_INTERFACE_H_
diff --git a/api/video/video_stream_encoder_interface.h b/api/video/video_stream_encoder_interface.h
new file mode 100644
index 0000000..fad3bbd
--- /dev/null
+++ b/api/video/video_stream_encoder_interface.h
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef API_VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_
+#define API_VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_
+
+#include <vector>
+
+#include "api/rtpparameters.h" // For DegradationPreference.
+#include "api/video/video_sink_interface.h"
+#include "api/video/video_source_interface.h"
+#include "api/video_codecs/video_encoder.h"
+#include "api/video_codecs/video_encoder_config.h"
+
+namespace webrtc {
+
+// TODO(nisse): Move full declaration to api/.
+class VideoBitrateAllocationObserver;
+
+// This interface represents a class responsible for creating and driving the
+// encoder(s) for a single video stream. It is also responsible for adaptation
+// decisions related to video quality, requesting reduced frame rate or
+// resolution from the VideoSource when needed.
+// TODO(bugs.webrtc.org/8830): This interface is under development. Changes
+// under consideration include:
+//
+// 1. Taking out responsibility for adaptation decisions, instead only reporting
+// per-frame measurements to the decision maker.
+//
+// 2. Moving responsibility for simulcast and for software fallback into this
+// class.
+class VideoStreamEncoderInterface : public rtc::VideoSinkInterface<VideoFrame> {
+ public:
+ // Interface for receiving encoded video frames and notifications about
+ // configuration changes.
+ class EncoderSink : public EncodedImageCallback {
+ public:
+ virtual void OnEncoderConfigurationChanged(
+ std::vector<VideoStream> streams,
+ int min_transmit_bitrate_bps) = 0;
+ };
+
+ virtual ~VideoStreamEncoderInterface() = default;
+
+ // Sets the source that will provide video frames to the VideoStreamEncoder's
+ // OnFrame method. |degradation_preference| control whether or not resolution
+ // or frame rate may be reduced. The VideoStreamEncoder registers itself with
+ // |source|, and signals adaptation decisions to the source in the form of
+ // VideoSinkWants.
+ // TODO(nisse): When adaptation logic is extracted from this class,
+ // it no longer needs to know the source.
+ virtual void SetSource(
+ rtc::VideoSourceInterface<VideoFrame>* source,
+ const DegradationPreference& degradation_preference) = 0;
+
+ // Sets the |sink| that gets the encoded frames. |rotation_applied| means
+ // that the source must support rotation. Only set |rotation_applied| if the
+ // remote side does not support the rotation extension.
+ virtual void SetSink(EncoderSink* sink, bool rotation_applied) = 0;
+
+ // Sets an initial bitrate, later overriden by OnBitrateUpdated. Mainly
+ // affects the resolution of the initial key frame: If incoming frames are
+ // larger than reasonable for the start bitrate, and scaling is enabled,
+ // VideoStreamEncoder asks the source to scale down and drops a few initial
+ // frames.
+ // TODO(nisse): This is a poor interface, and mixes bandwidth estimation and
+ // codec configuration in an undesired way. For the actual send bandwidth, we
+ // should always be somewhat conservative, but we may nevertheless want to let
+ // the application configure a more optimistic quality for the initial
+ // resolution. Should be replaced by a construction time setting.
+ virtual void SetStartBitrate(int start_bitrate_bps) = 0;
+
+ // Request a key frame. Used for signalling from the remote receiver.
+ virtual void SendKeyFrame() = 0;
+
+ // Set the currently estimated network properties. A |bitrate_bps|
+ // of zero pauses the encoder.
+ virtual void OnBitrateUpdated(uint32_t bitrate_bps,
+ uint8_t fraction_lost,
+ int64_t round_trip_time_ms) = 0;
+
+ // Register observer for the bitrate allocation between the temporal
+ // and spatial layers.
+ virtual void SetBitrateAllocationObserver(
+ VideoBitrateAllocationObserver* bitrate_observer) = 0;
+
+ // Creates and configures an encoder with the given |config|. The
+ // |max_data_payload_length| is used to support single NAL unit
+ // packetization for H.264.
+ virtual void ConfigureEncoder(VideoEncoderConfig config,
+ size_t max_data_payload_length) = 0;
+
+ // Permanently stop encoding. After this method has returned, it is
+ // guaranteed that no encoded frames will be delivered to the sink.
+ virtual void Stop() = 0;
+};
+
+} // namespace webrtc
+
+#endif // API_VIDEO_VIDEO_STREAM_ENCODER_INTERFACE_H_
diff --git a/api/videosourceinterface.h b/api/videosourceinterface.h
index 17f1604..aabe379 100644
--- a/api/videosourceinterface.h
+++ b/api/videosourceinterface.h
@@ -11,50 +11,8 @@
#ifndef API_VIDEOSOURCEINTERFACE_H_
#define API_VIDEOSOURCEINTERFACE_H_
-#include <limits>
+// TODO(nisse): Place holder for moved file. Delete after applications are
+// updated.
+#include "api/video/video_source_interface.h"
-#include "api/optional.h"
-#include "api/video/video_sink_interface.h"
-
-namespace rtc {
-
-// VideoSinkWants is used for notifying the source of properties a video frame
-// should have when it is delivered to a certain sink.
-struct VideoSinkWants {
- VideoSinkWants();
- VideoSinkWants(const VideoSinkWants&);
- ~VideoSinkWants();
- // Tells the source whether the sink wants frames with rotation applied.
- // By default, any rotation must be applied by the sink.
- bool rotation_applied = false;
-
- // Tells the source that the sink only wants black frames.
- bool black_frames = false;
-
- // Tells the source the maximum number of pixels the sink wants.
- int max_pixel_count = std::numeric_limits<int>::max();
- // Tells the source the desired number of pixels the sinks wants. This will
- // typically be used when stepping the resolution up again when conditions
- // have improved after an earlier downgrade. The source should select the
- // closest resolution to this pixel count, but if max_pixel_count is set, it
- // still sets the absolute upper bound.
- rtc::Optional<int> target_pixel_count;
- // Tells the source the maximum framerate the sink wants.
- int max_framerate_fps = std::numeric_limits<int>::max();
-};
-
-template <typename VideoFrameT>
-class VideoSourceInterface {
- public:
- virtual void AddOrUpdateSink(VideoSinkInterface<VideoFrameT>* sink,
- const VideoSinkWants& wants) = 0;
- // RemoveSink must guarantee that at the time the method returns,
- // there is no current and no future calls to VideoSinkInterface::OnFrame.
- virtual void RemoveSink(VideoSinkInterface<VideoFrameT>* sink) = 0;
-
- protected:
- virtual ~VideoSourceInterface() {}
-};
-
-} // namespace rtc
#endif // API_VIDEOSOURCEINTERFACE_H_
diff --git a/call/video_send_stream.h b/call/video_send_stream.h
index 65e1687..620719e 100644
--- a/call/video_send_stream.h
+++ b/call/video_send_stream.h
@@ -17,10 +17,10 @@
#include <vector>
#include "api/call/transport.h"
-#include "api/rtpparameters.h"
#include "api/rtp_headers.h"
+#include "api/rtpparameters.h"
#include "api/video/video_sink_interface.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "api/video_codecs/video_encoder_config.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "call/rtp_config.h"
diff --git a/media/base/mediachannel.h b/media/base/mediachannel.h
index e5a6df2..2580c0d 100644
--- a/media/base/mediachannel.h
+++ b/media/base/mediachannel.h
@@ -24,9 +24,10 @@
#include "api/rtpparameters.h"
#include "api/rtpreceiverinterface.h"
#include "api/video/video_content_type.h"
-#include "api/video/video_timing.h"
#include "api/video/video_sink_interface.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
+#include "api/video/video_timing.h"
+#include "api/video_codecs/video_encoder_config.h"
#include "media/base/codec.h"
#include "media/base/mediaconfig.h"
#include "media/base/mediaconstants.h"
@@ -42,7 +43,6 @@
#include "rtc_base/socket.h"
#include "rtc_base/stringencode.h"
-
namespace rtc {
class Timing;
}
diff --git a/media/base/videocapturer.h b/media/base/videocapturer.h
index 219e036..0470b4d 100644
--- a/media/base/videocapturer.h
+++ b/media/base/videocapturer.h
@@ -20,7 +20,7 @@
#include <string>
#include <vector>
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "media/base/videoadapter.h"
#include "media/base/videobroadcaster.h"
#include "media/base/videocommon.h"
diff --git a/media/base/videosourcebase.h b/media/base/videosourcebase.h
index 6222e61..74ad280 100644
--- a/media/base/videosourcebase.h
+++ b/media/base/videosourcebase.h
@@ -14,7 +14,7 @@
#include <vector>
#include "api/video/video_frame.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "rtc_base/thread_checker.h"
namespace rtc {
diff --git a/media/engine/webrtcvideoengine.h b/media/engine/webrtcvideoengine.h
index f75be26..5a4eab3 100644
--- a/media/engine/webrtcvideoengine.h
+++ b/media/engine/webrtcvideoengine.h
@@ -20,9 +20,9 @@
#include "api/call/transport.h"
#include "api/optional.h"
#include "api/video/video_frame.h"
-#include "api/video_codecs/sdp_video_format.h"
#include "api/video/video_sink_interface.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
+#include "api/video_codecs/sdp_video_format.h"
#include "call/call.h"
#include "call/flexfec_receive_stream.h"
#include "call/video_receive_stream.h"
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 2c564cc..0681564 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -378,6 +378,7 @@
"../api:libjingle_peerconnection_api",
"../api:libjingle_peerconnection_test_api",
"../api:rtc_stats_api",
+ "../api/video:video_frame",
"../api/video_codecs:builtin_video_decoder_factory",
"../api/video_codecs:builtin_video_encoder_factory",
"../call:call_interfaces",
diff --git a/pc/channel.h b/pc/channel.h
index 86f9aa6..cb068a2 100644
--- a/pc/channel.h
+++ b/pc/channel.h
@@ -22,7 +22,7 @@
#include "api/jsep.h"
#include "api/rtpreceiverinterface.h"
#include "api/video/video_sink_interface.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "call/rtp_packet_sink_interface.h"
#include "media/base/mediachannel.h"
#include "media/base/mediaengine.h"
diff --git a/pc/test/fakeperiodicvideosource.h b/pc/test/fakeperiodicvideosource.h
index 6207635..2cdd104 100644
--- a/pc/test/fakeperiodicvideosource.h
+++ b/pc/test/fakeperiodicvideosource.h
@@ -13,7 +13,7 @@
#include <memory>
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "media/base/fakeframesource.h"
#include "media/base/videobroadcaster.h"
#include "rtc_base/ptr_util.h"
diff --git a/pc/test/fakevideotracksource.h b/pc/test/fakevideotracksource.h
index 62e3e50..9cc5ef1 100644
--- a/pc/test/fakevideotracksource.h
+++ b/pc/test/fakevideotracksource.h
@@ -12,7 +12,7 @@
#define PC_TEST_FAKEVIDEOTRACKSOURCE_H_
#include "api/mediastreaminterface.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "pc/videotracksource.h"
namespace webrtc {
diff --git a/test/frame_generator.h b/test/frame_generator.h
index 5728cfa..049b5e7 100644
--- a/test/frame_generator.h
+++ b/test/frame_generator.h
@@ -15,7 +15,7 @@
#include <vector>
#include "api/video/video_frame.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "rtc_base/criticalsection.h"
#include "typedefs.h" // NOLINT(build/include)
diff --git a/test/video_capturer.h b/test/video_capturer.h
index 7e640c9..63e1cd8 100644
--- a/test/video_capturer.h
+++ b/test/video_capturer.h
@@ -17,7 +17,7 @@
#include "api/optional.h"
#include "api/video/i420_buffer.h"
#include "api/video/video_frame.h"
-#include "api/videosourceinterface.h"
+#include "api/video/video_source_interface.h"
#include "media/base/videoadapter.h"
#include "rtc_base/criticalsection.h"
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 25ec808..3782217 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -64,6 +64,7 @@
"../api:transport_api",
"../api/video:video_frame",
"../api/video:video_frame_i420",
+ "../api/video:video_stream_encoder",
"../api/video_codecs:video_codecs_api",
"../call:bitrate_allocator",
"../call:call_interfaces",
diff --git a/video/test/mock_video_stream_encoder.h b/video/test/mock_video_stream_encoder.h
index efba400..37337f7 100644
--- a/video/test/mock_video_stream_encoder.h
+++ b/video/test/mock_video_stream_encoder.h
@@ -25,7 +25,8 @@
MOCK_METHOD0(SendKeyFrame, void());
MOCK_METHOD3(OnBitrateUpdated, void(uint32_t, uint8_t, int64_t));
MOCK_METHOD1(OnFrame, void(const VideoFrame&));
- MOCK_METHOD1(SetBitrateObserver, void(VideoBitrateAllocationObserver*));
+ MOCK_METHOD1(SetBitrateAllocationObserver,
+ void(VideoBitrateAllocationObserver*));
MOCK_METHOD0(Stop, void());
MOCK_METHOD2(MockedConfigureEncoder,
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index 88362f6..e3fd642 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -109,7 +109,7 @@
// TODO(sprang): Enable this also for regular video calls if it works well.
if (encoder_config.content_type == VideoEncoderConfig::ContentType::kScreen) {
// Only signal target bitrate for screenshare streams, for now.
- video_stream_encoder_->SetBitrateObserver(send_stream_.get());
+ video_stream_encoder_->SetBitrateAllocationObserver(send_stream_.get());
}
ReconfigureVideoEncoder(std::move(encoder_config));
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index 48d99cc..1c9ad9f 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -374,7 +374,7 @@
shutdown_event_.Wait(rtc::Event::kForever);
}
-void VideoStreamEncoder::SetBitrateObserver(
+void VideoStreamEncoder::SetBitrateAllocationObserver(
VideoBitrateAllocationObserver* bitrate_observer) {
RTC_DCHECK_RUN_ON(&thread_checker_);
encoder_queue_.PostTask([this, bitrate_observer] {
diff --git a/video/video_stream_encoder.h b/video/video_stream_encoder.h
index 84c054f..7a48a07 100644
--- a/video/video_stream_encoder.h
+++ b/video/video_stream_encoder.h
@@ -17,11 +17,12 @@
#include <string>
#include <vector>
-#include "api/rtpparameters.h" // For DegradationPreference.
#include "api/video/video_rotation.h"
-#include "api/video_codecs/video_encoder.h"
#include "api/video/video_sink_interface.h"
+#include "api/video/video_stream_encoder_interface.h"
+#include "api/video_codecs/video_encoder.h"
#include "call/call.h"
+#include "call/video_send_stream.h"
#include "common_types.h" // NOLINT(build/include)
#include "common_video/include/video_bitrate_allocator.h"
#include "modules/video_coding/include/video_coding_defines.h"
@@ -37,38 +38,7 @@
namespace webrtc {
class SendStatisticsProxy;
-class VideoBitrateAllocationObserver;
-class VideoStreamEncoderInterface : public rtc::VideoSinkInterface<VideoFrame> {
- public:
- // Interface for receiving encoded video frames and notifications about
- // configuration changes.
- class EncoderSink : public EncodedImageCallback {
- public:
- virtual void OnEncoderConfigurationChanged(
- std::vector<VideoStream> streams,
- int min_transmit_bitrate_bps) = 0;
- };
- virtual void SetSource(
- rtc::VideoSourceInterface<VideoFrame>* source,
- const DegradationPreference& degradation_preference) = 0;
- virtual void SetSink(EncoderSink* sink, bool rotation_applied) = 0;
-
- virtual void SetStartBitrate(int start_bitrate_bps) = 0;
- virtual void SendKeyFrame() = 0;
- virtual void OnBitrateUpdated(uint32_t bitrate_bps,
- uint8_t fraction_lost,
- int64_t round_trip_time_ms) = 0;
-
- virtual void SetBitrateObserver(
- VideoBitrateAllocationObserver* bitrate_observer) = 0;
- virtual void ConfigureEncoder(VideoEncoderConfig config,
- size_t max_data_payload_length) = 0;
- virtual void Stop() = 0;
-
- protected:
- ~VideoStreamEncoderInterface() = default;
-};
// VideoStreamEncoder represent a video encoder that accepts raw video frames as
// input and produces an encoded bit stream.
// Usage:
@@ -95,21 +65,15 @@
std::unique_ptr<OveruseFrameDetector> overuse_detector);
~VideoStreamEncoder();
- // Sets the source that will provide I420 video frames.
- // |degradation_preference| control whether or not resolution or frame rate
- // may be reduced.
void SetSource(rtc::VideoSourceInterface<VideoFrame>* source,
const DegradationPreference& degradation_preference) override;
- // Sets the |sink| that gets the encoded frames. |rotation_applied| means
- // that the source must support rotation. Only set |rotation_applied| if the
- // remote side does not support the rotation extension.
void SetSink(EncoderSink* sink, bool rotation_applied) override;
// TODO(perkj): Can we remove VideoCodec.startBitrate ?
void SetStartBitrate(int start_bitrate_bps) override;
- void SetBitrateObserver(
+ void SetBitrateAllocationObserver(
VideoBitrateAllocationObserver* bitrate_observer) override;
void ConfigureEncoder(VideoEncoderConfig config,
diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc
index b18abbe..239470e 100644
--- a/video/video_stream_encoder_unittest.cc
+++ b/video/video_stream_encoder_unittest.cc
@@ -2043,7 +2043,7 @@
TEST_F(VideoStreamEncoderTest, CallsBitrateObserver) {
MockBitrateObserver bitrate_observer;
- video_stream_encoder_->SetBitrateObserver(&bitrate_observer);
+ video_stream_encoder_->SetBitrateAllocationObserver(&bitrate_observer);
const int kDefaultFps = 30;
const VideoBitrateAllocation expected_bitrate =
@@ -3090,7 +3090,7 @@
const int kTargetBitrateBps = 1000000;
MockBitrateObserver bitrate_observer;
- video_stream_encoder_->SetBitrateObserver(&bitrate_observer);
+ video_stream_encoder_->SetBitrateAllocationObserver(&bitrate_observer);
EXPECT_CALL(bitrate_observer, OnBitrateAllocationUpdated(_)).Times(1);
// Initial bitrate update.