| 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;
|
|
|