Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(411)

Unified Diff: webrtc/common_video/incoming_video_stream.cc

Issue 1419673014: Remove frame time scheduing in IncomingVideoStream (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Method A: pass the flag through constructor Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_) {

Powered by Google App Engine
This is Rietveld 408576698