(Auto)update libjingle 69587333-> 69588608

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6501 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/media/webrtc/webrtcexport.h b/talk/media/webrtc/webrtcexport.h
index 71ebe4e..b00b0cb 100644
--- a/talk/media/webrtc/webrtcexport.h
+++ b/talk/media/webrtc/webrtcexport.h
@@ -27,6 +27,9 @@
 #ifndef TALK_MEDIA_WEBRTC_WEBRTCEXPORT_H_
 #define TALK_MEDIA_WEBRTC_WEBRTCEXPORT_H_
 
+// When building for Chrome a part of the code can be built into
+// a shared library, which is controlled by these macros.
+// For all other builds, we always build a static library.
 #if !defined(GOOGLE_CHROME_BUILD) && !defined(CHROMIUM_BUILD)
 #define LIBPEERCONNECTION_LIB 1
 #endif
diff --git a/talk/media/webrtc/webrtcvoiceengine.cc b/talk/media/webrtc/webrtcvoiceengine.cc
index 7df4788..9f6673a 100644
--- a/talk/media/webrtc/webrtcvoiceengine.cc
+++ b/talk/media/webrtc/webrtcvoiceengine.cc
@@ -1002,6 +1002,9 @@
       LOG_RTCERR2(SetRecordingDevice, in_name, in_id);
       ret = false;
     }
+    webrtc::AudioProcessing* ap = voe()->base()->audio_processing();
+    if (ap)
+      ap->Initialize();
   }
 
   // Find the playout device id in VoiceEngine and set playout device.
@@ -3128,6 +3131,23 @@
     LOG_RTCERR2(SetInputMute, channel, muted);
     return false;
   }
+  // We set the AGC to mute state only when all the channels are muted.
+  // This implementation is not ideal, instead we should signal the AGC when
+  // the mic channel is muted/unmuted. We can't do it today because there
+  // is no good way to know which stream is mapping to the mic channel.
+  bool all_muted = muted;
+  for (ChannelMap::const_iterator iter = send_channels_.begin();
+       iter != send_channels_.end() && all_muted; ++iter) {
+    if (engine()->voe()->volume()->GetInputMute(iter->second->channel(),
+                                                all_muted)) {
+      LOG_RTCERR1(GetInputMute, iter->second->channel());
+      return false;
+    }
+  }
+
+  webrtc::AudioProcessing* ap = engine()->voe()->base()->audio_processing();
+  if (ap)
+    ap->set_output_will_be_muted(all_muted);
   return true;
 }
 
diff --git a/talk/media/webrtc/webrtcvoiceengine.h b/talk/media/webrtc/webrtcvoiceengine.h
index efc388f..2e50dee 100644
--- a/talk/media/webrtc/webrtcvoiceengine.h
+++ b/talk/media/webrtc/webrtcvoiceengine.h
@@ -47,6 +47,10 @@
 
 #if !defined(LIBPEERCONNECTION_LIB) && \
     !defined(LIBPEERCONNECTION_IMPLEMENTATION)
+// If you hit this, then you've tried to include this header from outside
+// the shared library.  An instance of this class must only be created from
+// within the library that actually implements it.  Otherwise use the
+// WebRtcMediaEngine to construct an instance.
 #error "Bogus include."
 #endif
 
diff --git a/talk/media/webrtc/webrtcvoiceengine_unittest.cc b/talk/media/webrtc/webrtcvoiceengine_unittest.cc
index 58893b9..ad44757 100644
--- a/talk/media/webrtc/webrtcvoiceengine_unittest.cc
+++ b/talk/media/webrtc/webrtcvoiceengine_unittest.cc
@@ -3176,4 +3176,3 @@
   CoUninitialize();
 }
 #endif
-