Index: webrtc/media/engine/webrtcvideoengine2.cc |
diff --git a/webrtc/media/engine/webrtcvideoengine2.cc b/webrtc/media/engine/webrtcvideoengine2.cc |
index f32749199f90e6d67218c381beedb3ef30174931..225ac80584c7521917083ec0760eefecd8e94448 100644 |
--- a/webrtc/media/engine/webrtcvideoengine2.cc |
+++ b/webrtc/media/engine/webrtcvideoengine2.cc |
@@ -2252,6 +2252,7 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::GetSsrcs() const { |
WebRtcVideoChannel2::WebRtcVideoReceiveStream::AllocatedDecoder |
WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder( |
+ uint32_t ssrc, |
std::vector<AllocatedDecoder>* old_decoders, |
const VideoCodec& codec) { |
webrtc::VideoCodecType type = CodecTypeFromName(codec.name); |
@@ -2267,7 +2268,7 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder( |
if (external_decoder_factory_ != NULL) { |
webrtc::VideoDecoder* decoder = |
- external_decoder_factory_->CreateVideoDecoder(type); |
+ external_decoder_factory_->CreateVideoDecoderForSsrc(ssrc, type); |
if (decoder != NULL) { |
return AllocatedDecoder(decoder, type, true); |
} |
@@ -2300,8 +2301,9 @@ void WebRtcVideoChannel2::WebRtcVideoReceiveStream::ConfigureCodecs( |
allocated_decoders_.clear(); |
config_.decoders.clear(); |
for (size_t i = 0; i < recv_codecs.size(); ++i) { |
+ uint32_t ssrc = ssrcs_.empty() ? 0 : ssrcs_[0]; |
AllocatedDecoder allocated_decoder = |
- CreateOrReuseVideoDecoder(old_decoders, recv_codecs[i].codec); |
+ CreateOrReuseVideoDecoder(ssrc, old_decoders, recv_codecs[i].codec); |
allocated_decoders_.push_back(allocated_decoder); |
webrtc::VideoReceiveStream::Decoder decoder; |