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

Side by Side Diff: webrtc/common_video/incoming_video_stream.cc

Issue 1813173002: Deletes the class VideoRendererCallback. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased. Created 4 years, 7 months 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 13 matching lines...) Expand all
24 #include "webrtc/base/platform_thread.h" 24 #include "webrtc/base/platform_thread.h"
25 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" 25 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
26 #include "webrtc/common_video/video_render_frames.h" 26 #include "webrtc/common_video/video_render_frames.h"
27 #include "webrtc/system_wrappers/include/critical_section_wrapper.h" 27 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
28 #include "webrtc/system_wrappers/include/event_wrapper.h" 28 #include "webrtc/system_wrappers/include/event_wrapper.h"
29 #include "webrtc/system_wrappers/include/tick_util.h" 29 #include "webrtc/system_wrappers/include/tick_util.h"
30 #include "webrtc/system_wrappers/include/trace.h" 30 #include "webrtc/system_wrappers/include/trace.h"
31 31
32 namespace webrtc { 32 namespace webrtc {
33 33
34 IncomingVideoStream::IncomingVideoStream(uint32_t stream_id, 34 IncomingVideoStream::IncomingVideoStream(bool disable_prerenderer_smoothing)
35 bool disable_prerenderer_smoothing) 35 : disable_prerenderer_smoothing_(disable_prerenderer_smoothing),
36 : stream_id_(stream_id),
37 disable_prerenderer_smoothing_(disable_prerenderer_smoothing),
38 incoming_render_thread_(), 36 incoming_render_thread_(),
39 deliver_buffer_event_(EventTimerWrapper::Create()), 37 deliver_buffer_event_(EventTimerWrapper::Create()),
40 running_(false), 38 running_(false),
41 external_callback_(nullptr), 39 external_callback_(nullptr),
42 render_callback_(nullptr), 40 render_callback_(nullptr),
43 render_buffers_(new VideoRenderFrames()), 41 render_buffers_(new VideoRenderFrames()),
44 incoming_rate_(0), 42 incoming_rate_(0),
45 last_rate_calculation_time_ms_(0), 43 last_rate_calculation_time_ms_(0),
46 num_frames_since_last_calculation_(0) {} 44 num_frames_since_last_calculation_(0) {}
47 45
48 IncomingVideoStream::~IncomingVideoStream() { 46 IncomingVideoStream::~IncomingVideoStream() {
49 Stop(); 47 Stop();
50 } 48 }
51 49
52 VideoRenderCallback* IncomingVideoStream::ModuleCallback() { 50 rtc::VideoSinkInterface<VideoFrame>* IncomingVideoStream::ModuleCallback() {
pbos-webrtc 2016/05/02 13:08:17 Can we remove this? Just use the stream directly.
nisse-webrtc 2016/05/02 13:31:23 It appears unused. I'll delete it. What was it i
pbos-webrtc 2016/05/02 17:20:28 This was probably used as a module sometime in the
53 return this; 51 return this;
54 } 52 }
55 53
56 int32_t IncomingVideoStream::RenderFrame(const uint32_t stream_id, 54 void IncomingVideoStream::OnFrame(const VideoFrame& video_frame) {
57 const VideoFrame& video_frame) {
58 rtc::CritScope csS(&stream_critsect_); 55 rtc::CritScope csS(&stream_critsect_);
59 56
60 if (!running_) { 57 if (!running_) {
61 return -1; 58 return;
62 } 59 }
63 60
64 // Rate statistics. 61 // Rate statistics.
65 num_frames_since_last_calculation_++; 62 num_frames_since_last_calculation_++;
66 int64_t now_ms = TickTime::MillisecondTimestamp(); 63 int64_t now_ms = TickTime::MillisecondTimestamp();
67 if (now_ms >= last_rate_calculation_time_ms_ + kFrameRatePeriodMs) { 64 if (now_ms >= last_rate_calculation_time_ms_ + kFrameRatePeriodMs) {
68 incoming_rate_ = 65 incoming_rate_ =
69 static_cast<uint32_t>(1000 * num_frames_since_last_calculation_ / 66 static_cast<uint32_t>(1000 * num_frames_since_last_calculation_ /
70 (now_ms - last_rate_calculation_time_ms_)); 67 (now_ms - last_rate_calculation_time_ms_));
71 num_frames_since_last_calculation_ = 0; 68 num_frames_since_last_calculation_ = 0;
72 last_rate_calculation_time_ms_ = now_ms; 69 last_rate_calculation_time_ms_ = now_ms;
73 } 70 }
74 71
75 // Hand over or insert frame. 72 // Hand over or insert frame.
76 if (disable_prerenderer_smoothing_) { 73 if (disable_prerenderer_smoothing_) {
77 DeliverFrame(video_frame); 74 DeliverFrame(video_frame);
78 } else { 75 } else {
79 rtc::CritScope csB(&buffer_critsect_); 76 rtc::CritScope csB(&buffer_critsect_);
80 if (render_buffers_->AddFrame(video_frame) == 1) { 77 if (render_buffers_->AddFrame(video_frame) == 1) {
81 deliver_buffer_event_->Set(); 78 deliver_buffer_event_->Set();
82 } 79 }
83 } 80 }
84 return 0;
85 } 81 }
86 82
87 void IncomingVideoStream::SetRenderCallback( 83 void IncomingVideoStream::SetRenderCallback(
88 VideoRenderCallback* render_callback) { 84 rtc::VideoSinkInterface<VideoFrame>* render_callback) {
89 rtc::CritScope cs(&thread_critsect_); 85 rtc::CritScope cs(&thread_critsect_);
90 render_callback_ = render_callback; 86 render_callback_ = render_callback;
91 } 87 }
92 88
93 int32_t IncomingVideoStream::SetExpectedRenderDelay( 89 int32_t IncomingVideoStream::SetExpectedRenderDelay(
94 int32_t delay_ms) { 90 int32_t delay_ms) {
95 rtc::CritScope csS(&stream_critsect_); 91 rtc::CritScope csS(&stream_critsect_);
96 if (running_) { 92 if (running_) {
97 return -1; 93 return -1;
98 } 94 }
99 rtc::CritScope cs(&buffer_critsect_); 95 rtc::CritScope cs(&buffer_critsect_);
100 return render_buffers_->SetRenderDelay(delay_ms); 96 return render_buffers_->SetRenderDelay(delay_ms);
101 } 97 }
102 98
103 void IncomingVideoStream::SetExternalCallback( 99 void IncomingVideoStream::SetExternalCallback(
104 VideoRenderCallback* external_callback) { 100 rtc::VideoSinkInterface<VideoFrame>* external_callback) {
105 rtc::CritScope cs(&thread_critsect_); 101 rtc::CritScope cs(&thread_critsect_);
106 external_callback_ = external_callback; 102 external_callback_ = external_callback;
107 } 103 }
108 104
109 int32_t IncomingVideoStream::Start() { 105 int32_t IncomingVideoStream::Start() {
110 rtc::CritScope csS(&stream_critsect_); 106 rtc::CritScope csS(&stream_critsect_);
111 if (running_) { 107 if (running_) {
112 return 0; 108 return 0;
113 } 109 }
114 110
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 running_ = false; 154 running_ = false;
159 return 0; 155 return 0;
160 } 156 }
161 157
162 int32_t IncomingVideoStream::Reset() { 158 int32_t IncomingVideoStream::Reset() {
163 rtc::CritScope cs_buffer(&buffer_critsect_); 159 rtc::CritScope cs_buffer(&buffer_critsect_);
164 render_buffers_->ReleaseAllFrames(); 160 render_buffers_->ReleaseAllFrames();
165 return 0; 161 return 0;
166 } 162 }
167 163
168 uint32_t IncomingVideoStream::StreamId() const {
169 return stream_id_;
170 }
171
172 uint32_t IncomingVideoStream::IncomingRate() const { 164 uint32_t IncomingVideoStream::IncomingRate() const {
173 rtc::CritScope cs(&stream_critsect_); 165 rtc::CritScope cs(&stream_critsect_);
174 return incoming_rate_; 166 return incoming_rate_;
175 } 167 }
176 168
177 bool IncomingVideoStream::IncomingVideoStreamThreadFun(void* obj) { 169 bool IncomingVideoStream::IncomingVideoStreamThreadFun(void* obj) {
178 return static_cast<IncomingVideoStream*>(obj)->IncomingVideoStreamProcess(); 170 return static_cast<IncomingVideoStream*>(obj)->IncomingVideoStreamProcess();
179 } 171 }
180 172
181 bool IncomingVideoStream::IncomingVideoStreamProcess() { 173 bool IncomingVideoStream::IncomingVideoStreamProcess() {
(...skipping 26 matching lines...) Expand all
208 200
209 void IncomingVideoStream::DeliverFrame(const VideoFrame& video_frame) { 201 void IncomingVideoStream::DeliverFrame(const VideoFrame& video_frame) {
210 rtc::CritScope cs(&thread_critsect_); 202 rtc::CritScope cs(&thread_critsect_);
211 if (video_frame.IsZeroSize()) { 203 if (video_frame.IsZeroSize()) {
212 // No frame. 204 // No frame.
213 return; 205 return;
214 } 206 }
215 207
216 // Send frame for rendering. 208 // Send frame for rendering.
217 if (external_callback_) { 209 if (external_callback_) {
218 external_callback_->RenderFrame(stream_id_, video_frame); 210 external_callback_->OnFrame(video_frame);
219 } else if (render_callback_) { 211 } else if (render_callback_) {
220 render_callback_->RenderFrame(stream_id_, video_frame); 212 render_callback_->OnFrame(video_frame);
221 } 213 }
222 } 214 }
223 215
224 } // namespace webrtc 216 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/common_video/include/incoming_video_stream.h ('k') | webrtc/video/video_receive_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698