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

Unified Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 2052233002: Enable passing receive stream ID to the decoder factory. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Changes according to pthatcher1's comments Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
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;
« webrtc/media/engine/webrtcvideodecoderfactory.h ('K') | « webrtc/media/engine/webrtcvideoengine2.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698