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..5aadcf91e0eb41a1f3ed8b244db7c0de9d186f77 100644 |
--- a/webrtc/modules/video_coding/video_receiver.cc |
+++ b/webrtc/modules/video_coding/video_receiver.cc |
@@ -25,12 +25,19 @@ |
namespace webrtc { |
namespace vcm { |
-VideoReceiver::VideoReceiver(Clock* clock, EventFactory* event_factory) |
+VideoReceiver::VideoReceiver(Clock* clock, |
+ EventFactory* event_factory, |
+ NackSender* nack_sender, |
+ KeyFrameRequestSender* keyframe_request_sender) |
: clock_(clock), |
process_crit_sect_(CriticalSectionWrapper::CreateCriticalSection()), |
_receiveCritSect(CriticalSectionWrapper::CreateCriticalSection()), |
_timing(clock_), |
- _receiver(&_timing, clock_, event_factory), |
+ _receiver(&_timing, |
+ clock_, |
+ event_factory, |
+ nack_sender, |
+ keyframe_request_sender), |
_decodedFrameCallback(&_timing, clock_), |
_frameTypeCallback(NULL), |
_receiveStatsCallback(NULL), |
@@ -110,6 +117,10 @@ void VideoReceiver::Process() { |
RequestKeyFrame(); |
} |
+ if (_receiver.TimeUntilNextProcess() == 0) { |
+ _receiver.Process(); |
+ } |
+ |
// Packet retransmission requests |
// TODO(holmer): Add API for changing Process interval and make sure it's |
// disabled when NACK is off. |
@@ -150,6 +161,8 @@ int64_t VideoReceiver::TimeUntilNextProcess() { |
} |
timeUntilNextProcess = |
VCM_MIN(timeUntilNextProcess, _keyRequestTimer.TimeUntilProcess()); |
+ timeUntilNextProcess = |
+ VCM_MIN(timeUntilNextProcess, _receiver.TimeUntilNextProcess()); |
return timeUntilNextProcess; |
} |