Index: webrtc/modules/video_coding/video_receiver.cc |
diff --git a/webrtc/modules/video_coding/video_receiver.cc b/webrtc/modules/video_coding/video_receiver.cc |
index d1992fb1c95fc422cbe38155eb7a0cd6c967b456..84f5af521f6a8e9970e628b6e905da6efd53db73 100644 |
--- a/webrtc/modules/video_coding/video_receiver.cc |
+++ b/webrtc/modules/video_coding/video_receiver.cc |
@@ -129,8 +129,7 @@ int32_t VideoReceiver::SetReceiveChannelParameters(int64_t rtt) { |
// Enable or disable a video protection method. |
// Note: This API should be deprecated, as it does not offer a distinction |
-// between the protection method and decoding with or without errors. If such a |
-// behavior is desired, use the following API: SetReceiverRobustnessMode. |
+// between the protection method and decoding with or without errors. |
int32_t VideoReceiver::SetVideoProtection(VCMVideoProtection videoProtection, |
bool enable) { |
// By default, do not decode with errors. |
@@ -412,8 +411,11 @@ int32_t VideoReceiver::Delay() const { |
} |
int VideoReceiver::SetReceiverRobustnessMode( |
- ReceiverRobustness robustnessMode, |
+ VideoCodingModule::ReceiverRobustness robustnessMode, |
VCMDecodeErrorMode decode_error_mode) { |
+ RTC_DCHECK(construction_thread_.CalledOnValidThread()); |
+ // TODO(tommi): This method must only be called when the decoder thread |
+ // is not running and we don't need to hold this lock. |
rtc::CritScope cs(&receive_crit_); |
switch (robustnessMode) { |
case VideoCodingModule::kNone: |
@@ -423,27 +425,9 @@ int VideoReceiver::SetReceiverRobustnessMode( |
// Always wait for retransmissions (except when decoding with errors). |
_receiver.SetNackMode(kNack, -1, -1); |
break; |
- case VideoCodingModule::kSoftNack: |
-#if 1 |
- assert(false); // TODO(hlundin): Not completed. |
- return VCM_NOT_IMPLEMENTED; |
-#else |
- // 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); |
- break; |
-#endif |
- case VideoCodingModule::kReferenceSelection: |
-#if 1 |
- assert(false); // TODO(hlundin): Not completed. |
- return VCM_NOT_IMPLEMENTED; |
-#else |
- if (decode_error_mode == kNoErrors) { |
- return VCM_PARAMETER_ERROR; |
- } |
- _receiver.SetNackMode(kNoNack, -1, -1); |
- break; |
-#endif |
+ default: |
+ RTC_NOTREACHED(); |
+ return VCM_PARAMETER_ERROR; |
} |
_receiver.SetDecodeErrorMode(decode_error_mode); |
return VCM_OK; |