Fix AAC DRC metadata being ignored

The decoder will bypass all DRC processing during decode unless
  any of the DRC parameters is set.
The fix consists in setting the DRC reference level to its
  default value when after the decoder is initialized.

Change-Id: Ibb8355ab8c3c65020c5eef0752957040f7316c2a
diff --git a/media/libstagefright/codecs/aacdec/SoftAAC2.cpp b/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
index 566b1db..040a7be 100644
--- a/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
+++ b/media/libstagefright/codecs/aacdec/SoftAAC2.cpp
@@ -26,6 +26,8 @@
 
 #define FILEREAD_MAX_LAYERS 2
 
+#define DRC_DEFAULT_REF_LEVEL 108   /* 108*0.25dB = -27 dB below full scale (typical for movies) */
+
 namespace android {
 
 template<class T>
@@ -110,6 +112,9 @@
         }
     }
     mIsFirst = true;
+    // the decoder will bypass all DRC processing during decode unless any of the DRC parameters
+    //  is set, so here we just reset the DRC reference level to its default value.
+    aacDecoder_SetParam(mAACDecoder, AAC_DRC_REFERENCE_LEVEL, DRC_DEFAULT_REF_LEVEL);
     return status;
 }