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

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: Add tests. 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..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;

Powered by Google App Engine
This is Rietveld 408576698