| Index: webrtc/media/engine/webrtcvideoengine2.cc
|
| diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc
|
| index 82d32b0e1865dff74586b16030a8731a6634a5ec..8e4e0039e53c2f417f3b160b120c54fddf78cd3d 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->GetFirstPrimarySsrc();
|
| 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),
|
| stream_(NULL),
|
| default_stream_(default_stream),
|
| config_(std::move(config)),
|
| @@ -2247,7 +2247,20 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::~WebRtcVideoReceiveStream() {
|
|
|
| const std::vector<uint32_t>&
|
| WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetSsrcs() const {
|
| - return ssrcs_;
|
| + return stream_params_.ssrcs;
|
| +}
|
| +
|
| +rtc::Optional<uint32_t>
|
| +WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetFirstPrimarySsrc() const {
|
| + std::vector<uint32_t> primary_ssrcs;
|
| + stream_params_.GetPrimarySsrcs(&primary_ssrcs);
|
| +
|
| + if (primary_ssrcs.empty()) {
|
| + LOG(LS_WARNING) << "Empty primary ssrcs vector, returning empty optional";
|
| + return rtc::Optional<uint32_t>();
|
| + } else {
|
| + return rtc::Optional<uint32_t>(primary_ssrcs[0]);
|
| + }
|
| }
|
|
|
| WebRtcVideoChannel2::WebRtcVideoReceiveStream::AllocatedDecoder
|
| @@ -2267,7 +2280,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 +2475,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;
|
|
|