Revert the revert in r2988 since that wasn't the issue.
Review URL: https://webrtc-codereview.appspot.com/931005

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@2992 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/video_engine/vie_codec_impl.cc b/video_engine/vie_codec_impl.cc
index dd4d37d..27559d5 100644
--- a/video_engine/vie_codec_impl.cc
+++ b/video_engine/vie_codec_impl.cc
@@ -10,6 +10,8 @@
 
 #include "video_engine/vie_codec_impl.h"
 
+#include <list>
+
 #include "engine_configurations.h"  // NOLINT
 #include "modules/video_coding/main/interface/video_coding.h"
 #include "system_wrappers/interface/trace.h"
@@ -238,6 +240,32 @@
     }
   }
 
+  // TODO(mflodman) Break out this part in GetLocalSsrcList().
+  // Update all SSRCs to ViEEncoder.
+  std::list<unsigned int> ssrcs;
+  if (video_codec_internal.numberOfSimulcastStreams == 0) {
+    unsigned int ssrc = 0;
+    if (vie_channel->GetLocalSSRC(0, &ssrc) != 0) {
+      WEBRTC_TRACE(kTraceError, kTraceVideo,
+                   ViEId(shared_data_->instance_id(), video_channel),
+                   "%s: Could not get ssrc", __FUNCTION__);
+    }
+    ssrcs.push_back(ssrc);
+  } else {
+    for (int idx = 0; idx < video_codec_internal.numberOfSimulcastStreams;
+         ++idx) {
+      unsigned int ssrc = 0;
+      if (vie_channel->GetLocalSSRC(idx, &ssrc) != 0) {
+        WEBRTC_TRACE(kTraceError, kTraceVideo,
+                     ViEId(shared_data_->instance_id(), video_channel),
+                     "%s: Could not get ssrc for idx %d", __FUNCTION__, idx);
+      }
+      ssrcs.push_back(ssrc);
+    }
+  }
+  vie_encoder->SetSsrcs(ssrcs);
+  shared_data_->channel_manager()->UpdateSsrcs(video_channel, ssrcs);
+
   // Update the protection mode, we might be switching NACK/FEC.
   vie_encoder->UpdateProtectionMethod();