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

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

Issue 1241123002: Remove UpdateSsrcs from EncoderStateFeedback. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: empty SSRC vector handling 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
« no previous file with comments | « webrtc/video_engine/vie_channel_group.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 DCHECK(channel_map_.empty()); 186 DCHECK(channel_map_.empty());
187 DCHECK(!remb_->InUse()); 187 DCHECK(!remb_->InUse());
188 DCHECK(vie_encoder_map_.empty()); 188 DCHECK(vie_encoder_map_.empty());
189 DCHECK(send_encoders_.empty()); 189 DCHECK(send_encoders_.empty());
190 } 190 }
191 191
192 bool ChannelGroup::CreateSendChannel(int channel_id, 192 bool ChannelGroup::CreateSendChannel(int channel_id,
193 int engine_id, 193 int engine_id,
194 Transport* transport, 194 Transport* transport,
195 int number_of_cores, 195 int number_of_cores,
196 size_t max_rtp_streams, 196 const std::vector<uint32_t>& ssrcs,
197 bool disable_default_encoder) { 197 bool disable_default_encoder) {
198 DCHECK_GT(max_rtp_streams, 0u); 198 // TODO(pbos): Remove checks for empty ssrcs and add this check when there's
199 // no base channel.
200 // DCHECK(!ssrcs.empty());
199 rtc::scoped_ptr<ViEEncoder> vie_encoder( 201 rtc::scoped_ptr<ViEEncoder> vie_encoder(
200 new ViEEncoder(channel_id, number_of_cores, *config_.get(), 202 new ViEEncoder(channel_id, number_of_cores, *config_.get(),
201 *process_thread_, pacer_.get(), bitrate_allocator_.get(), 203 *process_thread_, pacer_.get(), bitrate_allocator_.get(),
202 bitrate_controller_.get(), false)); 204 bitrate_controller_.get(), false));
203 if (!vie_encoder->Init()) { 205 if (!vie_encoder->Init()) {
204 return false; 206 return false;
205 } 207 }
206 ViEEncoder* encoder = vie_encoder.get(); 208 ViEEncoder* encoder = vie_encoder.get();
207 if (!CreateChannel(channel_id, engine_id, transport, number_of_cores, 209 if (!CreateChannel(channel_id, engine_id, transport, number_of_cores,
208 vie_encoder.release(), max_rtp_streams, true, 210 vie_encoder.release(), ssrcs.empty() ? 1 : ssrcs.size(),
209 disable_default_encoder)) { 211 true, disable_default_encoder)) {
210 return false; 212 return false;
211 } 213 }
212 ViEChannel* channel = channel_map_[channel_id]; 214 ViEChannel* channel = channel_map_[channel_id];
213 // Connect the encoder with the send packet router, to enable sending. 215 // Connect the encoder with the send packet router, to enable sending.
214 encoder->StartThreadsAndSetSharedMembers(channel->send_payload_router(), 216 encoder->StartThreadsAndSetSharedMembers(channel->send_payload_router(),
215 channel->vcm_protection_callback()); 217 channel->vcm_protection_callback());
216 218
217 // Register the ViEEncoder to get key frame requests for this channel. 219 if (!ssrcs.empty()) {
218 unsigned int ssrc = 0; 220 encoder_state_feedback_->AddEncoder(ssrcs, encoder);
219 int stream_idx = 0; 221 std::vector<uint32_t> first_ssrc(1, ssrcs[0]);
220 channel->GetLocalSSRC(stream_idx, &ssrc); 222 encoder->SetSsrcs(first_ssrc);
221 encoder_state_feedback_->AddEncoder(ssrc, encoder); 223 }
222 std::vector<uint32_t> ssrcs;
223 ssrcs.push_back(ssrc);
224 encoder->SetSsrcs(ssrcs);
225 return true; 224 return true;
226 } 225 }
227 226
228 bool ChannelGroup::CreateReceiveChannel(int channel_id, 227 bool ChannelGroup::CreateReceiveChannel(int channel_id,
229 int engine_id, 228 int engine_id,
230 int base_channel_id, 229 int base_channel_id,
231 Transport* transport, 230 Transport* transport,
232 int number_of_cores, 231 int number_of_cores,
233 bool disable_default_encoder) { 232 bool disable_default_encoder) {
234 ViEEncoder* encoder = GetEncoder(base_channel_id); 233 ViEEncoder* encoder = GetEncoder(base_channel_id);
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 CriticalSectionScoped lock(encoder_map_cs_.get()); 480 CriticalSectionScoped lock(encoder_map_cs_.get());
482 for (const auto& encoder : send_encoders_) 481 for (const auto& encoder : send_encoders_)
483 pad_up_to_bitrate_bps += encoder.second->GetPaddingNeededBps(); 482 pad_up_to_bitrate_bps += encoder.second->GetPaddingNeededBps();
484 } 483 }
485 pacer_->UpdateBitrate( 484 pacer_->UpdateBitrate(
486 target_bitrate_bps / 1000, 485 target_bitrate_bps / 1000,
487 PacedSender::kDefaultPaceMultiplier * target_bitrate_bps / 1000, 486 PacedSender::kDefaultPaceMultiplier * target_bitrate_bps / 1000,
488 pad_up_to_bitrate_bps / 1000); 487 pad_up_to_bitrate_bps / 1000);
489 } 488 }
490 } // namespace webrtc 489 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video_engine/vie_channel_group.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698