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 e7844d0add3aaf2c2f441043278f0264c27c6f76..02d51a7b900f93dba9a11088a125d052a2f91ded 100644 |
--- a/webrtc/modules/video_coding/video_receiver.cc |
+++ b/webrtc/modules/video_coding/video_receiver.cc |
@@ -63,7 +63,9 @@ |
#endif |
} |
-void VideoReceiver::Process() { |
+int32_t VideoReceiver::Process() { |
+ int32_t returnValue = VCM_OK; |
+ |
// Receive-side statistics |
if (_receiveStatsTimer.TimeUntilProcess() == 0) { |
_receiveStatsTimer.Processed(); |
@@ -106,8 +108,12 @@ |
CriticalSectionScoped cs(process_crit_sect_.get()); |
request_key_frame = _scheduleKeyRequest && _frameTypeCallback != NULL; |
} |
- if (request_key_frame) |
- RequestKeyFrame(); |
+ if (request_key_frame) { |
+ const int32_t ret = RequestKeyFrame(); |
+ if (ret != VCM_OK && returnValue == VCM_OK) { |
+ returnValue = ret; |
+ } |
+ } |
} |
// Packet retransmission requests |
@@ -129,6 +135,9 @@ |
int32_t ret = VCM_OK; |
if (request_key_frame) { |
ret = RequestKeyFrame(); |
+ if (ret != VCM_OK && returnValue == VCM_OK) { |
+ returnValue = ret; |
+ } |
} |
if (ret == VCM_OK && !nackList.empty()) { |
CriticalSectionScoped cs(process_crit_sect_.get()); |
@@ -138,6 +147,8 @@ |
} |
} |
} |
+ |
+ return returnValue; |
} |
int64_t VideoReceiver::TimeUntilNextProcess() { |