Revert "Delete PeerConnectionInterface::BitrateParameters"
This reverts commit e2dfe74b0e29558ddea6473d0272bc38c838370c.
Reason for revert: Breaks downstream project
Original change's description:
> Delete PeerConnectionInterface::BitrateParameters
>
> Replaced by the api struct BitrateSettings, added in
> https://webrtc-review.googlesource.com/74020
>
> Bug: None
> Change-Id: I8b50b32f5c7a8918fad675904d913a21fd905274
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177665
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Taylor <deadbeef@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31714}
TBR=deadbeef@webrtc.org,ilnik@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org
Change-Id: Ia62b3c43996e95668d7972882baf06a186a539d3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179221
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31719}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 37473ea..560cabc 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -381,6 +381,7 @@
":track_id_stream_info_map",
":video_quality_analyzer_api",
"../media:rtc_media_base",
+ "../rtc_base:deprecation",
"../rtc_base:rtc_base",
"rtc_event_log",
"task_queue",
diff --git a/api/peer_connection_interface.cc b/api/peer_connection_interface.cc
index f82e84b..0c25405 100644
--- a/api/peer_connection_interface.cc
+++ b/api/peer_connection_interface.cc
@@ -53,6 +53,27 @@
return RTCError();
}
+RTCError PeerConnectionInterface::SetBitrate(const BitrateSettings& bitrate) {
+ BitrateParameters bitrate_parameters;
+ bitrate_parameters.min_bitrate_bps = bitrate.min_bitrate_bps;
+ bitrate_parameters.current_bitrate_bps = bitrate.start_bitrate_bps;
+ bitrate_parameters.max_bitrate_bps = bitrate.max_bitrate_bps;
+ return SetBitrate(bitrate_parameters);
+}
+
+RTCError PeerConnectionInterface::SetBitrate(
+ const BitrateParameters& bitrate_parameters) {
+ BitrateSettings bitrate;
+ bitrate.min_bitrate_bps = bitrate_parameters.min_bitrate_bps;
+ bitrate.start_bitrate_bps = bitrate_parameters.current_bitrate_bps;
+ bitrate.max_bitrate_bps = bitrate_parameters.max_bitrate_bps;
+ return SetBitrate(bitrate);
+}
+
+PeerConnectionInterface::BitrateParameters::BitrateParameters() = default;
+
+PeerConnectionInterface::BitrateParameters::~BitrateParameters() = default;
+
PeerConnectionDependencies::PeerConnectionDependencies(
PeerConnectionObserver* observer_in)
: observer(observer_in) {}
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index fd4d2df..2664af4 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -1015,13 +1015,28 @@
virtual bool RemoveIceCandidates(
const std::vector<cricket::Candidate>& candidates) = 0;
+ // 0 <= min <= current <= max should hold for set parameters.
+ struct BitrateParameters {
+ BitrateParameters();
+ ~BitrateParameters();
+
+ absl::optional<int> min_bitrate_bps;
+ absl::optional<int> current_bitrate_bps;
+ absl::optional<int> max_bitrate_bps;
+ };
+
// SetBitrate limits the bandwidth allocated for all RTP streams sent by
// this PeerConnection. Other limitations might affect these limits and
// are respected (for example "b=AS" in SDP).
//
// Setting |current_bitrate_bps| will reset the current bitrate estimate
// to the provided value.
- virtual RTCError SetBitrate(const BitrateSettings& bitrate) = 0;
+ virtual RTCError SetBitrate(const BitrateSettings& bitrate);
+
+ // TODO(nisse): Deprecated - use version above. These two default
+ // implementations require subclasses to implement one or the other
+ // of the methods.
+ virtual RTCError SetBitrate(const BitrateParameters& bitrate_parameters);
// Enable/disable playout of received audio streams. Enabled by default. Note
// that even if playout is enabled, streams will only be played out if the
diff --git a/api/test/compile_all_headers.cc b/api/test/compile_all_headers.cc
index 4cece5b..44b9b1f 100644
--- a/api/test/compile_all_headers.cc
+++ b/api/test/compile_all_headers.cc
@@ -27,7 +27,6 @@
// "api/test/videocodec_test_fixture.h"
// "api/test/videocodec_test_stats.h"
-#include "api/test/dummy_peer_connection.h"
#include "api/test/fake_frame_decryptor.h"
#include "api/test/fake_frame_encryptor.h"
#include "api/test/mock_audio_mixer.h"
diff --git a/api/test/dummy_peer_connection.h b/api/test/dummy_peer_connection.h
index 97a97d0..102b068 100644
--- a/api/test/dummy_peer_connection.h
+++ b/api/test/dummy_peer_connection.h
@@ -194,6 +194,10 @@
return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
}
+ RTCError SetBitrate(const BitrateParameters& bitrate_parameters) override {
+ return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented");
+ }
+
void SetAudioPlayout(bool playout) override { FATAL() << "Not implemented"; }
void SetAudioRecording(bool recording) override {
FATAL() << "Not implemented";
diff --git a/api/test/mock_peerconnectioninterface.h b/api/test/mock_peerconnectioninterface.h
index be34df0..6b247b7 100644
--- a/api/test/mock_peerconnectioninterface.h
+++ b/api/test/mock_peerconnectioninterface.h
@@ -167,6 +167,7 @@
(const std::vector<cricket::Candidate>&),
(override));
MOCK_METHOD(RTCError, SetBitrate, (const BitrateSettings&), (override));
+ MOCK_METHOD(RTCError, SetBitrate, (const BitrateParameters&), (override));
MOCK_METHOD(void, SetAudioPlayout, (bool), (override));
MOCK_METHOD(void, SetAudioRecording, (bool), (override));
MOCK_METHOD(rtc::scoped_refptr<DtlsTransportInterface>,
diff --git a/api/test/peerconnection_quality_test_fixture.h b/api/test/peerconnection_quality_test_fixture.h
index f370478..6dc119f 100644
--- a/api/test/peerconnection_quality_test_fixture.h
+++ b/api/test/peerconnection_quality_test_fixture.h
@@ -40,6 +40,7 @@
#include "api/video_codecs/video_encoder.h"
#include "api/video_codecs/video_encoder_factory.h"
#include "media/base/media_constants.h"
+#include "rtc_base/deprecation.h"
#include "rtc_base/network.h"
#include "rtc_base/rtc_certificate_generator.h"
#include "rtc_base/ssl_certificate.h"
@@ -335,6 +336,9 @@
// applied to all summed RTP streams for this peer.
virtual PeerConfigurer* SetBitrateSettings(
BitrateSettings bitrate_settings) = 0;
+ RTC_DEPRECATED
+ virtual PeerConfigurer* SetBitrateParameters(
+ PeerConnectionInterface::BitrateParameters bitrate_params) = 0;
};
// Contains configuration for echo emulator.