Index: webrtc/media/engine/webrtcvideoengine2.cc |
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc |
index 82d32b0e1865dff74586b16030a8731a6634a5ec..79328f354b69c8f673f573fe154a46bf5a5b701c 100644 |
--- a/webrtc/media/engine/webrtcvideoengine2.cc |
+++ b/webrtc/media/engine/webrtcvideoengine2.cc |
@@ -919,6 +919,7 @@ webrtc::RtpParameters WebRtcVideoChannel2::GetRtpReceiveParameters( |
for (const VideoCodec& codec : recv_params_.codecs) { |
rtp_params.codecs.push_back(codec.ToCodecParameters()); |
} |
+ rtp_params.encodings[0].ssrc = it->second->GetPrimarySsrc(); |
return rtp_params; |
} |
@@ -2206,8 +2207,7 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::WebRtcVideoReceiveStream( |
const std::vector<VideoCodecSettings>& recv_codecs, |
bool red_disabled_by_remote_side) |
: call_(call), |
- ssrcs_(sp.ssrcs), |
- ssrc_groups_(sp.ssrc_groups), |
+ stream_params_(sp), |
sakal
2016/06/16 09:33:59
Since we are storing so many variables from Stream
|
stream_(NULL), |
default_stream_(default_stream), |
config_(std::move(config)), |
@@ -2247,7 +2247,19 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::~WebRtcVideoReceiveStream() { |
const std::vector<uint32_t>& |
WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetSsrcs() const { |
- return ssrcs_; |
+ return stream_params_.ssrcs; |
+} |
+ |
+uint32_t WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetPrimarySsrc() const { |
+ std::vector<uint32_t> primary_ssrcs_; |
perkj_webrtc
2016/06/16 13:28:28
nit: This is a local variable and should be named
sakal
2016/06/16 14:29:07
Done.
|
+ stream_params_.GetPrimarySsrcs(&primary_ssrcs_); |
+ |
+ if (primary_ssrcs_.empty()) { |
+ LOG(LS_WARNING) << "Empty primary ssrcs vector, returning 0"; |
+ return 0; |
sakal
2016/06/16 09:33:59
I am not sure if this should ever happen.
|
+ } else { |
+ return primary_ssrcs_[0]; |
sakal
2016/06/16 09:33:59
I am not sure if receiving side ever has multiple
|
+ } |
} |
WebRtcVideoChannel2::WebRtcVideoReceiveStream::AllocatedDecoder |
@@ -2267,7 +2279,8 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder( |
if (external_decoder_factory_ != NULL) { |
webrtc::VideoDecoder* decoder = |
- external_decoder_factory_->CreateVideoDecoder(type); |
+ external_decoder_factory_->CreateVideoDecoderWithParams(type, |
+ { stream_params_.id }); |
if (decoder != NULL) { |
return AllocatedDecoder(decoder, type, true); |
} |
@@ -2461,7 +2474,7 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetCodecNameFromPayloadType( |
VideoReceiverInfo |
WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetVideoReceiverInfo() { |
VideoReceiverInfo info; |
- info.ssrc_groups = ssrc_groups_; |
+ info.ssrc_groups = stream_params_.ssrc_groups; |
info.add_ssrc(config_.rtp.remote_ssrc); |
webrtc::VideoReceiveStream::Stats stats = stream_->GetStats(); |
info.decoder_implementation_name = stats.decoder_implementation_name; |