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

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: Rename flag to disable_prerenderer_smoothing 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 a4b25fcd2e5946c30b91da327b44984f445c2363..7e77c93887422fb5689f8172b37969347bda4258 100644
--- a/webrtc/common_video/incoming_video_stream.cc
+++ b/webrtc/common_video/incoming_video_stream.cc
@@ -28,11 +28,17 @@
#include "webrtc/system_wrappers/include/thread_wrapper.h"
#include "webrtc/system_wrappers/include/tick_util.h"
#include "webrtc/system_wrappers/include/trace.h"
+#include "webrtc/video_renderer.h"
namespace webrtc {
IncomingVideoStream::IncomingVideoStream(uint32_t stream_id)
+ : IncomingVideoStream(stream_id, nullptr) {}
+
+IncomingVideoStream::IncomingVideoStream(uint32_t stream_id,
+ VideoRenderer* renderer)
: stream_id_(stream_id),
+ renderer_(renderer),
stream_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
thread_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
buffer_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
@@ -49,8 +55,7 @@ IncomingVideoStream::IncomingVideoStream(uint32_t stream_id)
temp_frame_(),
start_image_(),
timeout_image_(),
- timeout_time_() {
-}
+ timeout_time_() {}
IncomingVideoStream::~IncomingVideoStream() {
Stop();
@@ -82,9 +87,10 @@ 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_ && renderer_->PrerendererSmoothingDisabled())) {
deliver_buffer_event_->Set();
-
+ }
return 0;
}
@@ -214,11 +220,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_ || !renderer_->PrerendererSmoothingDisabled()) {
+ // 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