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

Side by Side Diff: webrtc/video/video_receive_stream.cc

Issue 1701683002: Move back receiver VCM into ViEChannel. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 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) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 VieRemb* remb) 151 VieRemb* remb)
152 : transport_adapter_(config.rtcp_send_transport), 152 : transport_adapter_(config.rtcp_send_transport),
153 encoded_frame_proxy_(config.pre_decode_callback), 153 encoded_frame_proxy_(config.pre_decode_callback),
154 config_(config), 154 config_(config),
155 process_thread_(process_thread), 155 process_thread_(process_thread),
156 clock_(Clock::GetRealTimeClock()), 156 clock_(Clock::GetRealTimeClock()),
157 decode_thread_(DecodeThreadFunction, this, "DecodingThread"), 157 decode_thread_(DecodeThreadFunction, this, "DecodingThread"),
158 congestion_controller_(congestion_controller), 158 congestion_controller_(congestion_controller),
159 call_stats_(call_stats), 159 call_stats_(call_stats),
160 remb_(remb), 160 remb_(remb),
161 vcm_(VideoCodingModule::Create(clock_, nullptr, nullptr)),
162 incoming_video_stream_( 161 incoming_video_stream_(
163 0, 162 0,
164 config.renderer ? config.renderer->SmoothsRenderedFrames() : false), 163 config.renderer ? config.renderer->SmoothsRenderedFrames() : false),
165 stats_proxy_(config_.rtp.remote_ssrc, clock_), 164 stats_proxy_(config_.rtp.remote_ssrc, clock_),
166 vie_channel_(&transport_adapter_, 165 vie_channel_(&transport_adapter_,
167 process_thread, 166 process_thread,
168 nullptr, 167 nullptr,
169 vcm_.get(),
170 nullptr, 168 nullptr,
171 nullptr, 169 nullptr,
172 nullptr, 170 nullptr,
173 congestion_controller_->GetRemoteBitrateEstimator( 171 congestion_controller_->GetRemoteBitrateEstimator(
174 UseSendSideBwe(config_)), 172 UseSendSideBwe(config_)),
175 call_stats_->rtcp_rtt_stats(), 173 call_stats_->rtcp_rtt_stats(),
176 congestion_controller_->pacer(), 174 congestion_controller_->pacer(),
177 congestion_controller_->packet_router(), 175 congestion_controller_->packet_router(),
178 1, 176 1,
179 false), 177 false),
180 vie_receiver_(vie_channel_.vie_receiver()), 178 vie_receiver_(vie_channel_.vie_receiver()),
179 vcm_(vie_channel_.vcm()),
181 rtp_rtcp_(vie_channel_.rtp_rtcp()) { 180 rtp_rtcp_(vie_channel_.rtp_rtcp()) {
182 LOG(LS_INFO) << "VideoReceiveStream: " << config_.ToString(); 181 LOG(LS_INFO) << "VideoReceiveStream: " << config_.ToString();
183 182
184 RTC_DCHECK(process_thread_); 183 RTC_DCHECK(process_thread_);
185 RTC_DCHECK(congestion_controller_); 184 RTC_DCHECK(congestion_controller_);
186 RTC_DCHECK(call_stats_); 185 RTC_DCHECK(call_stats_);
187 RTC_DCHECK(remb_); 186 RTC_DCHECK(remb_);
188 RTC_CHECK(vie_channel_.Init() == 0); 187 RTC_CHECK(vie_channel_.Init() == 0);
189 188
190 // Register the channel to receive stats updates. 189 // Register the channel to receive stats updates.
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 vcm_->RegisterReceiveCodec(&codec, num_cpu_cores, false)); 294 vcm_->RegisterReceiveCodec(&codec, num_cpu_cores, false));
296 } 295 }
297 296
298 vcm_->SetRenderDelay(config.render_delay_ms); 297 vcm_->SetRenderDelay(config.render_delay_ms);
299 incoming_video_stream_.SetExpectedRenderDelay(config.render_delay_ms); 298 incoming_video_stream_.SetExpectedRenderDelay(config.render_delay_ms);
300 vcm_->RegisterPreDecodeImageCallback(this); 299 vcm_->RegisterPreDecodeImageCallback(this);
301 incoming_video_stream_.SetExternalCallback(this); 300 incoming_video_stream_.SetExternalCallback(this);
302 vie_channel_.SetIncomingVideoStream(&incoming_video_stream_); 301 vie_channel_.SetIncomingVideoStream(&incoming_video_stream_);
303 vie_channel_.RegisterPreRenderCallback(this); 302 vie_channel_.RegisterPreRenderCallback(this);
304 303
305 process_thread_->RegisterModule(vcm_.get()); 304 process_thread_->RegisterModule(vcm_);
danilchap 2016/02/15 12:25:09 Looks strange that a non-owner object configure an
pbos-webrtc 2016/02/15 13:04:24 Done.
306 } 305 }
307 306
308 VideoReceiveStream::~VideoReceiveStream() { 307 VideoReceiveStream::~VideoReceiveStream() {
309 LOG(LS_INFO) << "~VideoReceiveStream: " << config_.ToString(); 308 LOG(LS_INFO) << "~VideoReceiveStream: " << config_.ToString();
310 Stop(); 309 Stop();
311 310
312 process_thread_->DeRegisterModule(vcm_.get()); 311 process_thread_->DeRegisterModule(vcm_);
313 vie_channel_.RegisterPreRenderCallback(nullptr); 312 vie_channel_.RegisterPreRenderCallback(nullptr);
314 vcm_->RegisterPreDecodeImageCallback(nullptr); 313 vcm_->RegisterPreDecodeImageCallback(nullptr);
315 314
316 call_stats_->DeregisterStatsObserver(vie_channel_.GetStatsObserver()); 315 call_stats_->DeregisterStatsObserver(vie_channel_.GetStatsObserver());
317 rtp_rtcp_->SetREMBStatus(false); 316 rtp_rtcp_->SetREMBStatus(false);
318 remb_->RemoveReceiveChannel(rtp_rtcp_); 317 remb_->RemoveReceiveChannel(rtp_rtcp_);
319 318
320 congestion_controller_->GetRemoteBitrateEstimator(UseSendSideBwe(config_)) 319 congestion_controller_->GetRemoteBitrateEstimator(UseSendSideBwe(config_))
321 ->RemoveStream(vie_receiver_->GetRemoteSsrc()); 320 ->RemoveStream(vie_receiver_->GetRemoteSsrc());
322 } 321 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 369
371 // Post processing is not supported if the frame is backed by a texture. 370 // Post processing is not supported if the frame is backed by a texture.
372 if (video_frame->native_handle() == NULL) { 371 if (video_frame->native_handle() == NULL) {
373 if (config_.pre_render_callback) 372 if (config_.pre_render_callback)
374 config_.pre_render_callback->FrameCallback(video_frame); 373 config_.pre_render_callback->FrameCallback(video_frame);
375 } 374 }
376 } 375 }
377 376
378 int VideoReceiveStream::RenderFrame(const uint32_t /*stream_id*/, 377 int VideoReceiveStream::RenderFrame(const uint32_t /*stream_id*/,
379 const VideoFrame& video_frame) { 378 const VideoFrame& video_frame) {
380 // TODO(pbos): Wire up config_.render->IsTextureSupported() and convert if not
danilchap 2016/02/15 12:25:09 is it related to this change or rogue cleanup?
pbos-webrtc 2016/02/15 13:04:24 Rogue, added years ago I think.
381 // supported. Or provide methods for converting a texture frame in
382 // VideoFrame.
383
384 if (config_.renderer != nullptr) 379 if (config_.renderer != nullptr)
385 config_.renderer->RenderFrame( 380 config_.renderer->RenderFrame(
386 video_frame, 381 video_frame,
387 video_frame.render_time_ms() - clock_->TimeInMilliseconds()); 382 video_frame.render_time_ms() - clock_->TimeInMilliseconds());
388 383
389 stats_proxy_.OnRenderedFrame(video_frame.width(), video_frame.height()); 384 stats_proxy_.OnRenderedFrame(video_frame.width(), video_frame.height());
390 385
391 return 0; 386 return 0;
392 } 387 }
393 388
(...skipping 22 matching lines...) Expand all
416 return true; 411 return true;
417 } 412 }
418 413
419 void VideoReceiveStream::Decode() { 414 void VideoReceiveStream::Decode() {
420 static const int kMaxDecodeWaitTimeMs = 50; 415 static const int kMaxDecodeWaitTimeMs = 50;
421 vcm_->Decode(kMaxDecodeWaitTimeMs); 416 vcm_->Decode(kMaxDecodeWaitTimeMs);
422 } 417 }
423 418
424 } // namespace internal 419 } // namespace internal
425 } // namespace webrtc 420 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698