| Index: webrtc/common_video/incoming_video_stream.cc
|
| diff --git a/webrtc/common_video/incoming_video_stream.cc b/webrtc/common_video/incoming_video_stream.cc
|
| index 79bbb8a7b67732e9226f4740f0d73d6cfb0a2d30..9e4e48d609af3f88d57935143fdc130be60e0b3c 100644
|
| --- a/webrtc/common_video/incoming_video_stream.cc
|
| +++ b/webrtc/common_video/incoming_video_stream.cc
|
| @@ -32,7 +32,12 @@
|
| namespace webrtc {
|
|
|
| IncomingVideoStream::IncomingVideoStream(uint32_t stream_id)
|
| + : IncomingVideoStream(stream_id, false) {}
|
| +
|
| +IncomingVideoStream::IncomingVideoStream(uint32_t stream_id,
|
| + bool renderer_has_timing)
|
| : stream_id_(stream_id),
|
| + renderer_has_timing_(renderer_has_timing),
|
| stream_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
|
| thread_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
|
| buffer_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
|
| @@ -49,8 +54,7 @@ IncomingVideoStream::IncomingVideoStream(uint32_t stream_id)
|
| temp_frame_(),
|
| start_image_(),
|
| timeout_image_(),
|
| - timeout_time_() {
|
| -}
|
| + timeout_time_() {}
|
|
|
| IncomingVideoStream::~IncomingVideoStream() {
|
| Stop();
|
| @@ -82,7 +86,7 @@ int32_t IncomingVideoStream::RenderFrame(const uint32_t stream_id,
|
|
|
| // Insert frame.
|
| CriticalSectionScoped csB(buffer_critsect_.get());
|
| - if (render_buffers_->AddFrame(video_frame) == 1)
|
| + if (render_buffers_->AddFrame(video_frame) == 1 || renderer_has_timing_)
|
| deliver_buffer_event_->Set();
|
|
|
| return 0;
|
| @@ -214,11 +218,13 @@ bool IncomingVideoStream::IncomingVideoStreamProcess() {
|
| wait_time = render_buffers_->TimeToNextFrameRelease();
|
| }
|
|
|
| - // Set timer for next frame to render.
|
| - if (wait_time > kEventMaxWaitTimeMs) {
|
| - wait_time = kEventMaxWaitTimeMs;
|
| + if (!renderer_has_timing_) {
|
| + // Set timer for next frame to render.
|
| + if (wait_time > kEventMaxWaitTimeMs) {
|
| + wait_time = kEventMaxWaitTimeMs;
|
| + }
|
| + deliver_buffer_event_->StartTimer(false, wait_time);
|
| }
|
| - deliver_buffer_event_->StartTimer(false, wait_time);
|
|
|
| if (frame_to_render.IsZeroSize()) {
|
| if (render_callback_) {
|
|
|