| Index: webrtc/video_engine/vie_channel_group.cc
|
| diff --git a/webrtc/video_engine/vie_channel_group.cc b/webrtc/video_engine/vie_channel_group.cc
|
| index 055e1c3a19553e011744323dae5fc7aea7280fa6..cb041bda2e250ae73c72ca822feff7848bdb4b22 100644
|
| --- a/webrtc/video_engine/vie_channel_group.cc
|
| +++ b/webrtc/video_engine/vie_channel_group.cc
|
| @@ -193,9 +193,11 @@ bool ChannelGroup::CreateSendChannel(int channel_id,
|
| int engine_id,
|
| Transport* transport,
|
| int number_of_cores,
|
| - size_t max_rtp_streams,
|
| + const std::vector<uint32_t>& ssrcs,
|
| bool disable_default_encoder) {
|
| - DCHECK_GT(max_rtp_streams, 0u);
|
| + // TODO(pbos): Remove checks for empty ssrcs and add this check when there's
|
| + // no base channel.
|
| + // DCHECK(!ssrcs.empty());
|
| rtc::scoped_ptr<ViEEncoder> vie_encoder(
|
| new ViEEncoder(channel_id, number_of_cores, *config_.get(),
|
| *process_thread_, pacer_.get(), bitrate_allocator_.get(),
|
| @@ -205,8 +207,8 @@ bool ChannelGroup::CreateSendChannel(int channel_id,
|
| }
|
| ViEEncoder* encoder = vie_encoder.get();
|
| if (!CreateChannel(channel_id, engine_id, transport, number_of_cores,
|
| - vie_encoder.release(), max_rtp_streams, true,
|
| - disable_default_encoder)) {
|
| + vie_encoder.release(), ssrcs.empty() ? 1 : ssrcs.size(),
|
| + true, disable_default_encoder)) {
|
| return false;
|
| }
|
| ViEChannel* channel = channel_map_[channel_id];
|
| @@ -214,14 +216,11 @@ bool ChannelGroup::CreateSendChannel(int channel_id,
|
| encoder->StartThreadsAndSetSharedMembers(channel->send_payload_router(),
|
| channel->vcm_protection_callback());
|
|
|
| - // Register the ViEEncoder to get key frame requests for this channel.
|
| - unsigned int ssrc = 0;
|
| - int stream_idx = 0;
|
| - channel->GetLocalSSRC(stream_idx, &ssrc);
|
| - encoder_state_feedback_->AddEncoder(ssrc, encoder);
|
| - std::vector<uint32_t> ssrcs;
|
| - ssrcs.push_back(ssrc);
|
| - encoder->SetSsrcs(ssrcs);
|
| + if (!ssrcs.empty()) {
|
| + encoder_state_feedback_->AddEncoder(ssrcs, encoder);
|
| + std::vector<uint32_t> first_ssrc(1, ssrcs[0]);
|
| + encoder->SetSsrcs(first_ssrc);
|
| + }
|
| return true;
|
| }
|
|
|
|
|