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

Side by Side Diff: webrtc/video_engine/vie_channel.cc

Issue 1251163002: Remove base channel for video receivers. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: fix data race Created 5 years, 5 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 const Config& config, 84 const Config& config,
85 Transport* transport, 85 Transport* transport,
86 ProcessThread* module_process_thread, 86 ProcessThread* module_process_thread,
87 RtcpIntraFrameObserver* intra_frame_observer, 87 RtcpIntraFrameObserver* intra_frame_observer,
88 RtcpBandwidthObserver* bandwidth_observer, 88 RtcpBandwidthObserver* bandwidth_observer,
89 RemoteBitrateEstimator* remote_bitrate_estimator, 89 RemoteBitrateEstimator* remote_bitrate_estimator,
90 RtcpRttStats* rtt_stats, 90 RtcpRttStats* rtt_stats,
91 PacedSender* paced_sender, 91 PacedSender* paced_sender,
92 PacketRouter* packet_router, 92 PacketRouter* packet_router,
93 size_t max_rtp_streams, 93 size_t max_rtp_streams,
94 bool sender, 94 bool sender)
95 bool disable_default_encoder)
96 : channel_id_(channel_id), 95 : channel_id_(channel_id),
97 engine_id_(engine_id), 96 engine_id_(engine_id),
98 number_of_cores_(number_of_cores), 97 number_of_cores_(number_of_cores),
99 sender_(sender), 98 sender_(sender),
100 module_process_thread_(module_process_thread), 99 module_process_thread_(module_process_thread),
101 crit_(CriticalSectionWrapper::CreateCriticalSection()), 100 crit_(CriticalSectionWrapper::CreateCriticalSection()),
102 send_payload_router_(new PayloadRouter()), 101 send_payload_router_(new PayloadRouter()),
103 vcm_protection_callback_(new ViEChannelProtectionCallback(this)), 102 vcm_protection_callback_(new ViEChannelProtectionCallback(this)),
104 vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(), 103 vcm_(VideoCodingModule::Create(Clock::GetRealTimeClock(),
105 nullptr, 104 nullptr,
106 nullptr)), 105 nullptr)),
107 vie_receiver_(channel_id, vcm_, remote_bitrate_estimator, this), 106 vie_receiver_(channel_id, vcm_, remote_bitrate_estimator, this),
108 vie_sync_(vcm_), 107 vie_sync_(vcm_),
109 stats_observer_(new ChannelStatsObserver(this)), 108 stats_observer_(new ChannelStatsObserver(this)),
110 vcm_receive_stats_callback_(NULL), 109 vcm_receive_stats_callback_(NULL),
111 incoming_video_stream_(nullptr), 110 incoming_video_stream_(nullptr),
112 codec_observer_(NULL), 111 codec_observer_(NULL),
113 intra_frame_observer_(intra_frame_observer), 112 intra_frame_observer_(intra_frame_observer),
114 rtt_stats_(rtt_stats), 113 rtt_stats_(rtt_stats),
115 paced_sender_(paced_sender), 114 paced_sender_(paced_sender),
116 packet_router_(packet_router), 115 packet_router_(packet_router),
117 bandwidth_observer_(bandwidth_observer), 116 bandwidth_observer_(bandwidth_observer),
118 decoder_reset_(true), 117 decoder_reset_(true),
119 disable_default_encoder_(disable_default_encoder),
120 nack_history_size_sender_(kSendSidePacketHistorySize), 118 nack_history_size_sender_(kSendSidePacketHistorySize),
121 max_nack_reordering_threshold_(kMaxPacketAgeToNack), 119 max_nack_reordering_threshold_(kMaxPacketAgeToNack),
122 pre_render_callback_(NULL), 120 pre_render_callback_(NULL),
123 report_block_stats_sender_(new ReportBlockStats()), 121 report_block_stats_sender_(new ReportBlockStats()),
124 rtp_rtcp_modules_( 122 rtp_rtcp_modules_(
125 CreateRtpRtcpModules(ViEModuleId(engine_id_, channel_id_), 123 CreateRtpRtcpModules(ViEModuleId(engine_id_, channel_id_),
126 !sender, 124 !sender,
127 vie_receiver_.GetReceiveStatistics(), 125 vie_receiver_.GetReceiveStatistics(),
128 transport, 126 transport,
129 sender ? intra_frame_observer_ : nullptr, 127 sender ? intra_frame_observer_ : nullptr,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 return -1; 163 return -1;
166 } 164 }
167 vcm_->RegisterFrameTypeCallback(this); 165 vcm_->RegisterFrameTypeCallback(this);
168 vcm_->RegisterReceiveStatisticsCallback(this); 166 vcm_->RegisterReceiveStatisticsCallback(this);
169 vcm_->RegisterDecoderTimingCallback(this); 167 vcm_->RegisterDecoderTimingCallback(this);
170 vcm_->SetRenderDelay(kViEDefaultRenderDelayMs); 168 vcm_->SetRenderDelay(kViEDefaultRenderDelayMs);
171 169
172 module_process_thread_->RegisterModule(vcm_); 170 module_process_thread_->RegisterModule(vcm_);
173 module_process_thread_->RegisterModule(&vie_sync_); 171 module_process_thread_->RegisterModule(&vie_sync_);
174 172
175 #ifdef VIDEOCODEC_VP8
stefan-webrtc 2015/07/23 08:34:38 I don't fully understand how this is related to th
pbos-webrtc 2015/07/23 08:51:09 All call sites (of CreateSendChannel and CreateRec
stefan-webrtc 2015/07/23 12:43:46 Thanks
176 if (!disable_default_encoder_) {
177 VideoCodec video_codec;
178 if (vcm_->Codec(kVideoCodecVP8, &video_codec) == VCM_OK) {
179 rtp_rtcp_modules_[0]->RegisterSendPayload(video_codec);
180 // TODO(holmer): Can we call SetReceiveCodec() here instead?
181 if (!vie_receiver_.RegisterPayload(video_codec)) {
182 return -1;
183 }
184 vcm_->RegisterReceiveCodec(&video_codec, number_of_cores_);
185 vcm_->RegisterSendCodec(&video_codec, number_of_cores_,
186 rtp_rtcp_modules_[0]->MaxDataPayloadLength());
187 } else {
188 RTC_NOTREACHED();
189 }
190 }
191 #endif
192
193 return 0; 173 return 0;
194 } 174 }
195 175
196 ViEChannel::~ViEChannel() { 176 ViEChannel::~ViEChannel() {
197 UpdateHistograms(); 177 UpdateHistograms();
198 // Make sure we don't get more callbacks from the RTP module. 178 // Make sure we don't get more callbacks from the RTP module.
199 module_process_thread_->DeRegisterModule( 179 module_process_thread_->DeRegisterModule(
200 vie_receiver_.GetReceiveStatistics()); 180 vie_receiver_.GetReceiveStatistics());
201 module_process_thread_->DeRegisterModule(vcm_); 181 module_process_thread_->DeRegisterModule(vcm_);
202 module_process_thread_->DeRegisterModule(&vie_sync_); 182 module_process_thread_->DeRegisterModule(&vie_sync_);
(...skipping 1065 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 CriticalSectionScoped cs(crit_.get()); 1248 CriticalSectionScoped cs(crit_.get());
1269 vcm_receive_stats_callback_ = receive_statistics_proxy; 1249 vcm_receive_stats_callback_ = receive_statistics_proxy;
1270 } 1250 }
1271 1251
1272 void ViEChannel::SetIncomingVideoStream( 1252 void ViEChannel::SetIncomingVideoStream(
1273 IncomingVideoStream* incoming_video_stream) { 1253 IncomingVideoStream* incoming_video_stream) {
1274 CriticalSectionScoped cs(crit_.get()); 1254 CriticalSectionScoped cs(crit_.get());
1275 incoming_video_stream_ = incoming_video_stream; 1255 incoming_video_stream_ = incoming_video_stream;
1276 } 1256 }
1277 } // namespace webrtc 1257 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698