Delete enum VP8ResilienceMode.

We only support on (formely kResilientStream) and off (formely
kResilienceOff). The third mode, kResilientFrames, was not
implemented.

Bug: None
Change-Id: Ida82f6a33eda9d943ea70bc8ae4e6bddb720b0e8
Reviewed-on: https://webrtc-review.googlesource.com/71481
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22984}
This commit is contained in:
Niels Möller
2018-04-20 14:20:01 +02:00
committed by Commit Bot
parent 5987f2a9ae
commit e8a9c45cc1
9 changed files with 15 additions and 35 deletions

View File

@ -17,7 +17,7 @@ VideoCodecVP8 VideoEncoder::GetDefaultVp8Settings() {
VideoCodecVP8 vp8_settings;
memset(&vp8_settings, 0, sizeof(vp8_settings));
vp8_settings.resilience = kResilientStream;
vp8_settings.resilienceOn = true;
vp8_settings.numberOfTemporalLayers = 1;
vp8_settings.denoisingOn = true;
vp8_settings.automaticResizeOn = false;

View File

@ -23,7 +23,7 @@ namespace webrtc {
bool VideoCodecVP8::operator==(const VideoCodecVP8& other) const {
return (complexity == other.complexity &&
resilience == other.resilience &&
resilienceOn == other.resilienceOn &&
numberOfTemporalLayers == other.numberOfTemporalLayers &&
denoisingOn == other.denoisingOn &&
automaticResizeOn == other.automaticResizeOn &&

View File

@ -349,17 +349,6 @@ enum VideoCodecComplexity {
kComplexityMax = 3
};
enum VP8ResilienceMode {
kResilienceOff, // The stream produced by the encoder requires a
// recovery frame (typically a key frame) to be
// decodable after a packet loss.
kResilientStream, // A stream produced by the encoder is resilient to
// packet losses, but packets within a frame subsequent
// to a loss can't be decoded.
kResilientFrames // Same as kResilientStream but with added resilience
// within a frame.
};
// VP8 specific
struct VideoCodecVP8 {
bool operator==(const VideoCodecVP8& other) const;
@ -367,7 +356,7 @@ struct VideoCodecVP8 {
return !(*this == other);
}
VideoCodecComplexity complexity;
VP8ResilienceMode resilience;
bool resilienceOn;
unsigned char numberOfTemporalLayers;
bool denoisingOn;
bool automaticResizeOn;

View File

@ -330,7 +330,7 @@ class TestSimulcastEncoderAdapterFake : public ::testing::Test,
EXPECT_EQ(ref.minBitrate, target.minBitrate);
EXPECT_EQ(ref.maxFramerate, target.maxFramerate);
EXPECT_EQ(ref.VP8().complexity, target.VP8().complexity);
EXPECT_EQ(ref.VP8().resilience, target.VP8().resilience);
EXPECT_EQ(ref.VP8().resilienceOn, target.VP8().resilienceOn);
EXPECT_EQ(ref.VP8().numberOfTemporalLayers,
target.VP8().numberOfTemporalLayers);
EXPECT_EQ(ref.VP8().denoisingOn, target.VP8().denoisingOn);

View File

@ -68,7 +68,7 @@ std::string CodecSpecificToString(const VideoCodec& codec) {
switch (codec.codecType) {
case kVideoCodecVP8:
ss << "complexity: " << codec.VP8().complexity;
ss << "\nresilience: " << codec.VP8().resilience;
ss << "\nresilience: " << codec.VP8().resilienceOn;
ss << "\nnum_temporal_layers: "
<< static_cast<int>(codec.VP8().numberOfTemporalLayers);
ss << "\ndenoising: " << codec.VP8().denoisingOn;
@ -143,8 +143,7 @@ void TestConfig::SetCodecSettings(std::string codec_name,
switch (codec_settings.codecType) {
case kVideoCodecVP8:
codec_settings.VP8()->resilience =
resilience_on ? kResilientStream : kResilienceOff;
codec_settings.VP8()->resilienceOn = resilience_on;
codec_settings.VP8()->numberOfTemporalLayers =
static_cast<uint8_t>(num_temporal_layers);
codec_settings.VP8()->denoisingOn = denoising_on;

View File

@ -441,16 +441,8 @@ int LibvpxVp8Encoder::InitEncode(const VideoCodec* inst,
configurations_[0].g_lag_in_frames = 0; // 0- no frame lagging
// Set the error resilience mode according to user settings.
switch (inst->VP8().resilience) {
case kResilienceOff:
configurations_[0].g_error_resilient = 0;
break;
case kResilientStream:
configurations_[0].g_error_resilient = VPX_ERROR_RESILIENT_DEFAULT;
break;
case kResilientFrames:
return WEBRTC_VIDEO_CODEC_ERR_PARAMETER; // Not supported
}
configurations_[0].g_error_resilient =
inst->VP8().resilienceOn ? VPX_ERROR_RESILIENT_DEFAULT : 0;
// rate control settings
configurations_[0].rc_dropframe_thresh = inst->VP8().frameDroppingOn ? 30 : 0;
@ -675,7 +667,7 @@ int LibvpxVp8Encoder::InitAndSetControlSettings() {
vpx_codec_control(&(encoders_[i]), VP8E_SET_SCREEN_CONTENT_MODE,
codec_.mode == kScreensharing ? 2 : 0);
// Apply boost on golden frames (has only effect when resilience is off).
if (use_gf_boost_ && codec_.VP8()->resilience == kResilienceOff) {
if (use_gf_boost_ && !codec_.VP8()->resilienceOn) {
int gf_boost_percent;
if (GetGfBoostPercentageFromFieldTrialGroup(&gf_boost_percent)) {
vpx_codec_control(&(encoders_[i]), VP8E_SET_GF_CBR_BOOST_PCT,

View File

@ -214,7 +214,7 @@ class TestVp8Simulcast : public ::testing::Test {
ConfigureStream(kDefaultWidth, kDefaultHeight, kMaxBitrates[2],
kMinBitrates[2], kTargetBitrates[2],
&settings->simulcastStream[2], temporal_layer_profile[2]);
settings->VP8()->resilience = kResilientStream;
settings->VP8()->resilienceOn = true;
settings->VP8()->denoisingOn = true;
settings->VP8()->automaticResizeOn = false;
settings->VP8()->frameDroppingOn = true;

View File

@ -186,7 +186,7 @@ VideoCodec VideoCodecInitializer::VideoEncoderConfigToVideoCodec(
if (nack_enabled && video_codec.VP8()->numberOfTemporalLayers == 1) {
RTC_LOG(LS_INFO)
<< "No temporal layers and nack enabled -> resilience off";
video_codec.VP8()->resilience = kResilienceOff;
video_codec.VP8()->resilienceOn = false;
}
break;
}

View File

@ -853,7 +853,7 @@ TEST_F(VideoStreamEncoderTest, Vp8ResilienceIsOffFor1S1TLWithNackEnabled) {
EXPECT_EQ(kNumStreams, fake_encoder_.codec_config().numberOfSimulcastStreams);
EXPECT_EQ(kNumTl, fake_encoder_.codec_config().VP8()->numberOfTemporalLayers);
// Resilience is off for no temporal layers with nack on.
EXPECT_EQ(kResilienceOff, fake_encoder_.codec_config().VP8()->resilience);
EXPECT_FALSE(fake_encoder_.codec_config().VP8()->resilienceOn);
video_stream_encoder_->Stop();
}
@ -873,7 +873,7 @@ TEST_F(VideoStreamEncoderTest, Vp8ResilienceIsOffFor2S1TlWithNackEnabled) {
EXPECT_EQ(kNumStreams, fake_encoder_.codec_config().numberOfSimulcastStreams);
EXPECT_EQ(kNumTl, fake_encoder_.codec_config().VP8()->numberOfTemporalLayers);
// Resilience is off for no temporal layers and >1 streams with nack on.
EXPECT_EQ(kResilienceOff, fake_encoder_.codec_config().VP8()->resilience);
EXPECT_FALSE(fake_encoder_.codec_config().VP8()->resilienceOn);
video_stream_encoder_->Stop();
}
@ -893,7 +893,7 @@ TEST_F(VideoStreamEncoderTest, Vp8ResilienceIsOnFor1S1TLWithNackDisabled) {
EXPECT_EQ(kNumStreams, fake_encoder_.codec_config().numberOfSimulcastStreams);
EXPECT_EQ(kNumTl, fake_encoder_.codec_config().VP8()->numberOfTemporalLayers);
// Resilience is on for no temporal layers with nack off.
EXPECT_EQ(kResilientStream, fake_encoder_.codec_config().VP8()->resilience);
EXPECT_TRUE(fake_encoder_.codec_config().VP8()->resilienceOn);
video_stream_encoder_->Stop();
}
@ -913,7 +913,7 @@ TEST_F(VideoStreamEncoderTest, Vp8ResilienceIsOnFor1S2TlWithNackEnabled) {
EXPECT_EQ(kNumStreams, fake_encoder_.codec_config().numberOfSimulcastStreams);
EXPECT_EQ(kNumTl, fake_encoder_.codec_config().VP8()->numberOfTemporalLayers);
// Resilience is on for temporal layers.
EXPECT_EQ(kResilientStream, fake_encoder_.codec_config().VP8()->resilience);
EXPECT_TRUE(fake_encoder_.codec_config().VP8()->resilienceOn);
video_stream_encoder_->Stop();
}