Remove kProtectionKey* and VCMKeyRequestMode.

Enforces previous kProtectionKeyOnLoss as the permanent method which was
the only one used in use. This simplifies SetVideoProtection and
transition over to SetReceiverRobustnessMode.

BUG=webrtc:1596
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1244753002

Cr-Commit-Position: refs/heads/master@{#9641}
This commit is contained in:
pbos
2015-07-27 08:02:22 -07:00
committed by Commit bot
parent fa37e333cf
commit 081af25c11
5 changed files with 3 additions and 68 deletions

View File

@ -42,7 +42,6 @@ VideoReceiver::VideoReceiver(Clock* clock, EventFactory* event_factory)
_bitStreamBeforeDecoder(NULL),
#endif
_frameFromFile(),
_keyRequestMode(kKeyOnError),
_scheduleKeyRequest(false),
max_nack_list_size_(0),
pre_decode_image_callback_(NULL),
@ -194,31 +193,6 @@ int32_t VideoReceiver::SetVideoProtection(VCMVideoProtection videoProtection,
break;
}
case kProtectionKeyOnLoss: {
CriticalSectionScoped cs(_receiveCritSect);
if (enable) {
_keyRequestMode = kKeyOnLoss;
_receiver.SetDecodeErrorMode(kWithErrors);
} else if (_keyRequestMode == kKeyOnLoss) {
_keyRequestMode = kKeyOnError; // default mode
} else {
return VCM_PARAMETER_ERROR;
}
break;
}
case kProtectionKeyOnKeyLoss: {
CriticalSectionScoped cs(_receiveCritSect);
if (enable) {
_keyRequestMode = kKeyOnKeyLoss;
} else if (_keyRequestMode == kKeyOnKeyLoss) {
_keyRequestMode = kKeyOnError; // default mode
} else {
return VCM_PARAMETER_ERROR;
}
break;
}
case kProtectionNackFEC: {
CriticalSectionScoped cs(_receiveCritSect);
DCHECK(enable);
@ -419,22 +393,8 @@ int32_t VideoReceiver::Decode(const VCMEncodedFrame& frame) {
_decodedFrameCallback.LastReceivedPictureID() + 1);
}
if (!frame.Complete() || frame.MissingFrame()) {
switch (_keyRequestMode) {
case kKeyOnKeyLoss: {
if (frame.FrameType() == kVideoFrameKey) {
request_key_frame = true;
ret = VCM_OK;
}
break;
}
case kKeyOnLoss: {
request_key_frame = true;
ret = VCM_OK;
break;
}
default:
break;
}
request_key_frame = true;
ret = VCM_OK;
}
if (request_key_frame) {
CriticalSectionScoped cs(process_crit_sect_.get());
@ -552,16 +512,10 @@ int VideoReceiver::SetReceiverRobustnessMode(
switch (robustnessMode) {
case VideoCodingModule::kNone:
_receiver.SetNackMode(kNoNack, -1, -1);
if (decode_error_mode == kNoErrors) {
_keyRequestMode = kKeyOnLoss;
} else {
_keyRequestMode = kKeyOnError;
}
break;
case VideoCodingModule::kHardNack:
// Always wait for retransmissions (except when decoding with errors).
_receiver.SetNackMode(kNack, -1, -1);
_keyRequestMode = kKeyOnError; // TODO(hlundin): On long NACK list?
break;
case VideoCodingModule::kSoftNack:
#if 1
@ -571,7 +525,6 @@ int VideoReceiver::SetReceiverRobustnessMode(
// Enable hybrid NACK/FEC. Always wait for retransmissions and don't add
// extra delay when RTT is above kLowRttNackMs.
_receiver.SetNackMode(kNack, media_optimization::kLowRttNackMs, -1);
_keyRequestMode = kKeyOnError;
break;
#endif
case VideoCodingModule::kReferenceSelection: