| Index: webrtc/modules/video_coding/main/source/video_receiver.cc
|
| diff --git a/webrtc/modules/video_coding/main/source/video_receiver.cc b/webrtc/modules/video_coding/main/source/video_receiver.cc
|
| index 08e6208c367901a446b407ab6e12e23ed35ec06f..b728e9b380659bbfdee17b01a23044892691f939 100644
|
| --- a/webrtc/modules/video_coding/main/source/video_receiver.cc
|
| +++ b/webrtc/modules/video_coding/main/source/video_receiver.cc
|
| @@ -8,6 +8,7 @@
|
| * be found in the AUTHORS file in the root of the source tree.
|
| */
|
|
|
| +#include "webrtc/base/checks.h"
|
| #include "webrtc/common_types.h"
|
| #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
|
| #include "webrtc/modules/video_coding/codecs/interface/video_codec_interface.h"
|
| @@ -187,15 +188,9 @@ int32_t VideoReceiver::SetVideoProtection(VCMVideoProtection videoProtection,
|
| // By default, do not decode with errors.
|
| _receiver.SetDecodeErrorMode(kNoErrors);
|
| switch (videoProtection) {
|
| - case kProtectionNack:
|
| - case kProtectionNackReceiver: {
|
| - CriticalSectionScoped cs(_receiveCritSect);
|
| - if (enable) {
|
| - // Enable NACK and always wait for retransmits.
|
| - _receiver.SetNackMode(kNack, -1, -1);
|
| - } else {
|
| - _receiver.SetNackMode(kNoNack, -1, -1);
|
| - }
|
| + case kProtectionNack: {
|
| + DCHECK(enable);
|
| + _receiver.SetNackMode(kNack, -1, -1);
|
| break;
|
| }
|
|
|
| @@ -226,25 +221,17 @@ int32_t VideoReceiver::SetVideoProtection(VCMVideoProtection videoProtection,
|
|
|
| case kProtectionNackFEC: {
|
| CriticalSectionScoped cs(_receiveCritSect);
|
| - if (enable) {
|
| - // 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);
|
| - _receiver.SetDecodeErrorMode(kNoErrors);
|
| - _receiver.SetDecodeErrorMode(kNoErrors);
|
| - } else {
|
| - _receiver.SetNackMode(kNoNack, -1, -1);
|
| - }
|
| + DCHECK(enable);
|
| + _receiver.SetNackMode(kNack, media_optimization::kLowRttNackMs, -1);
|
| + _receiver.SetDecodeErrorMode(kNoErrors);
|
| break;
|
| }
|
| - case kProtectionNackSender:
|
| case kProtectionFEC:
|
| - // Ignore encoder modes.
|
| - return VCM_OK;
|
| case kProtectionNone:
|
| - // TODO(pbos): Implement like sender and remove enable parameter. Ignored
|
| - // for now.
|
| + // No receiver-side protection.
|
| + DCHECK(enable);
|
| + _receiver.SetNackMode(kNoNack, -1, -1);
|
| + _receiver.SetDecodeErrorMode(kWithErrors);
|
| break;
|
| }
|
| return VCM_OK;
|
|
|