Merge "unhide audio pre processing API."
diff --git a/api/current.txt b/api/current.txt
index 5eaf380..afcca224 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -10724,6 +10724,7 @@
   public class AudioRecord {
     ctor public AudioRecord(int, int, int, int, int) throws java.lang.IllegalArgumentException;
     method public int getAudioFormat();
+    method public int getAudioSessionId();
     method public int getAudioSource();
     method public int getChannelConfiguration();
     method public int getChannelCount();
@@ -11515,6 +11516,11 @@
 
 package android.media.audiofx {
 
+  public class AcousticEchoCanceler extends android.media.audiofx.AudioEffect {
+    method public static android.media.audiofx.AcousticEchoCanceler create(int);
+    method public static boolean isAvailable();
+  }
+
   public class AudioEffect {
     method public android.media.audiofx.AudioEffect.Descriptor getDescriptor() throws java.lang.IllegalStateException;
     method public boolean getEnabled() throws java.lang.IllegalStateException;
@@ -11565,6 +11571,11 @@
     method public abstract void onEnableStatusChange(android.media.audiofx.AudioEffect, boolean);
   }
 
+  public class AutomaticGainControl extends android.media.audiofx.AudioEffect {
+    method public static android.media.audiofx.AutomaticGainControl create(int);
+    method public static boolean isAvailable();
+  }
+
   public class BassBoost extends android.media.audiofx.AudioEffect {
     ctor public BassBoost(int, int) throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.RuntimeException, java.lang.UnsupportedOperationException;
     method public android.media.audiofx.BassBoost.Settings getProperties() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
@@ -11683,6 +11694,11 @@
     field public short numBands;
   }
 
+  public class NoiseSuppressor extends android.media.audiofx.AudioEffect {
+    method public static android.media.audiofx.NoiseSuppressor create(int);
+    method public static boolean isAvailable();
+  }
+
   public class PresetReverb extends android.media.audiofx.AudioEffect {
     ctor public PresetReverb(int, int) throws java.lang.IllegalArgumentException, java.lang.RuntimeException, java.lang.UnsupportedOperationException;
     method public short getPreset() throws java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.UnsupportedOperationException;
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java
index 4e112af..34bf368 100644
--- a/media/java/android/media/AudioRecord.java
+++ b/media/java/android/media/AudioRecord.java
@@ -497,7 +497,6 @@
      * Returns the audio session ID.
      *
      * @return the ID of the audio session this AudioRecord belongs to.
-     * @hide
      */
     public int getAudioSessionId() {
         return mSessionId;
diff --git a/media/java/android/media/audiofx/AcousticEchoCanceler.java b/media/java/android/media/audiofx/AcousticEchoCanceler.java
index e31f84c..4b59c88 100644
--- a/media/java/android/media/audiofx/AcousticEchoCanceler.java
+++ b/media/java/android/media/audiofx/AcousticEchoCanceler.java
@@ -37,7 +37,6 @@
  * state on a particular AudioRecord session.
  * <p>See {@link android.media.audiofx.AudioEffect} class for more details on
  * controlling audio effects.
- * @hide
  */
 
 public class AcousticEchoCanceler extends AudioEffect {
@@ -90,9 +89,8 @@
      * @throws java.lang.IllegalArgumentException
      * @throws java.lang.UnsupportedOperationException
      * @throws java.lang.RuntimeException
-     * @hide
      */
-    public AcousticEchoCanceler(int audioSession)
+    private AcousticEchoCanceler(int audioSession)
             throws IllegalArgumentException, UnsupportedOperationException, RuntimeException {
         super(EFFECT_TYPE_AEC, EFFECT_TYPE_NULL, 0, audioSession);
     }
diff --git a/media/java/android/media/audiofx/AutomaticGainControl.java b/media/java/android/media/audiofx/AutomaticGainControl.java
index eca7eec..83eb4e9 100644
--- a/media/java/android/media/audiofx/AutomaticGainControl.java
+++ b/media/java/android/media/audiofx/AutomaticGainControl.java
@@ -37,7 +37,6 @@
  * state on a particular AudioRecord session.
  * <p>See {@link android.media.audiofx.AudioEffect} class for more details on
  * controlling audio effects.
- * @hide
  */
 
 public class AutomaticGainControl extends AudioEffect {
@@ -90,9 +89,8 @@
      * @throws java.lang.IllegalArgumentException
      * @throws java.lang.UnsupportedOperationException
      * @throws java.lang.RuntimeException
-     * @hide
      */
-    public AutomaticGainControl(int audioSession)
+    private AutomaticGainControl(int audioSession)
             throws IllegalArgumentException, UnsupportedOperationException, RuntimeException {
         super(EFFECT_TYPE_AGC, EFFECT_TYPE_NULL, 0, audioSession);
     }
diff --git a/media/java/android/media/audiofx/NoiseSuppressor.java b/media/java/android/media/audiofx/NoiseSuppressor.java
index a2d3386..0ea42ab 100644
--- a/media/java/android/media/audiofx/NoiseSuppressor.java
+++ b/media/java/android/media/audiofx/NoiseSuppressor.java
@@ -38,7 +38,6 @@
  * state on a particular AudioRecord session.
  * <p>See {@link android.media.audiofx.AudioEffect} class for more details on
  * controlling audio effects.
- * @hide
  */
 
 public class NoiseSuppressor extends AudioEffect {
@@ -92,7 +91,6 @@
      * @throws java.lang.IllegalArgumentException
      * @throws java.lang.UnsupportedOperationException
      * @throws java.lang.RuntimeException
-     * @hide
      */
     private NoiseSuppressor(int audioSession)
             throws IllegalArgumentException, UnsupportedOperationException, RuntimeException {