Chromium Code Reviews| 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); |
|
pthatcher1
2016/06/14 21:12:04
Here's a possible solution:
1. The WebRtcVideo
|
| 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; |