Implement changing degradation preference with setParameters()

The current default behavior is unchanged and points to MAINTAIN_FRAMERATE,
meaning there is no way to currently use BALANCED as we can't detect
when the value as been set or not.
Updating this is an API change that should be done in another CL and
properly communicated first.


Bug: webrtc:7607
Change-Id: Ic3877ad8dd7bc418296f21a04bc37f59ec55934a
Reviewed-on: https://webrtc-review.googlesource.com/88766
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24024}
This commit is contained in:
Florent Castelli
2018-07-18 16:00:28 +02:00
committed by Commit Bot
parent a61f7db9ae
commit 87b3c510b4
6 changed files with 54 additions and 29 deletions

View File

@ -67,8 +67,7 @@ bool PerSenderRtpEncodingParameterHasValue(
// Returns true if any RtpParameters member that isn't implemented contains a
// value.
bool UnimplementedRtpParameterHasValue(const RtpParameters& parameters) {
if (!parameters.mid.empty() ||
parameters.degradation_preference != DegradationPreference::BALANCED) {
if (!parameters.mid.empty()) {
return true;
}
for (size_t i = 0; i < parameters.encodings.size(); ++i) {

View File

@ -675,18 +675,12 @@ TEST_F(RtpSenderReceiverTest, AudioSenderCantSetUnimplementedRtpParameters) {
RtpParameters params = audio_rtp_sender_->GetParameters();
EXPECT_EQ(1u, params.encodings.size());
// Unimplemented RtpParameters: mid, header_extensions,
// degredation_preference.
// Unimplemented RtpParameters: mid
params.mid = "dummy_mid";
EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
audio_rtp_sender_->SetParameters(params).type());
params = audio_rtp_sender_->GetParameters();
ASSERT_EQ(DegradationPreference::BALANCED, params.degradation_preference);
params.degradation_preference = DegradationPreference::MAINTAIN_FRAMERATE;
EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
audio_rtp_sender_->SetParameters(params).type());
DestroyAudioRtpSender();
}
@ -868,18 +862,12 @@ TEST_F(RtpSenderReceiverTest, VideoSenderCantSetUnimplementedRtpParameters) {
RtpParameters params = video_rtp_sender_->GetParameters();
EXPECT_EQ(1u, params.encodings.size());
// Unimplemented RtpParameters: mid, header_extensions,
// degredation_preference.
// Unimplemented RtpParameters: mid
params.mid = "dummy_mid";
EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
video_rtp_sender_->SetParameters(params).type());
params = video_rtp_sender_->GetParameters();
ASSERT_EQ(DegradationPreference::BALANCED, params.degradation_preference);
params.degradation_preference = DegradationPreference::MAINTAIN_FRAMERATE;
EXPECT_EQ(RTCErrorType::UNSUPPORTED_PARAMETER,
video_rtp_sender_->SetParameters(params).type());
DestroyVideoRtpSender();
}