Merge "Fix to resolve CTS test case testDecodeUsacDrcEffectTypeM4a" into pi-dev am: cf568f6991
am: 7fb3416120

Change-Id: Id8566ce6ec5f540730b2d2c3445b48cc61886197
diff --git a/media/libstagefright/codecs/xaacdec/SoftXAAC.cpp b/media/libstagefright/codecs/xaacdec/SoftXAAC.cpp
index b3aefa8..2dd7d69 100644
--- a/media/libstagefright/codecs/xaacdec/SoftXAAC.cpp
+++ b/media/libstagefright/codecs/xaacdec/SoftXAAC.cpp
@@ -44,7 +44,6 @@
 #define PROP_DRC_OVERRIDE_HEAVY      "aac_drc_heavy"
 #define PROP_DRC_OVERRIDE_ENC_LEVEL "aac_drc_enc_target_level"
 #define PROP_DRC_OVERRIDE_EFFECT_TYPE "ro.aac_drc_effect_type"
-#define PROP_DRC_OVERRIDE_LOUDNESS_LEVEL "aac_drc_loudness_level"
 
 #define MAX_CHANNEL_COUNT            8  /* maximum number of audio channels that can be decoded */
 
@@ -216,18 +215,8 @@
     RETURN_IF_NE(err_code, IA_NO_ERROR, err_code, "IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_TARGET_LEVEL");
 #ifdef     ENABLE_MPEG_D_DRC
 
-    if (property_get(PROP_DRC_OVERRIDE_LOUDNESS_LEVEL, value, NULL))
-    {
-        ui_drc_val = atoi(value);
-        ALOGV("AAC decoder using desired DRC target reference level of %d instead of %d",ui_drc_val,
-                DRC_DEFAULT_MOBILE_LOUDNESS_LEVEL);
-    }
-    else
-    {
-        ui_drc_val= DRC_DEFAULT_MOBILE_LOUDNESS_LEVEL;
-    }
-
-
+    /* Use ui_drc_val from PROP_DRC_OVERRIDE_REF_LEVEL or DRC_DEFAULT_MOBILE_REF_LEVEL
+     * for IA_ENHAACPLUS_DEC_DRC_TARGET_LOUDNESS too */
     err_code = ixheaacd_dec_api(mXheaacCodecHandle,
                                 IA_API_CMD_SET_CONFIG_PARAM,
                                 IA_ENHAACPLUS_DEC_DRC_TARGET_LOUDNESS,
@@ -1330,30 +1319,6 @@
         IA_ENHAACPLUS_DEC_CONFIG_PARAM_SBR_MODE, &i_sbr_mode);
         RETURN_IF_NE(err_code, IA_NO_ERROR , err_code,"IA_ENHAACPLUS_DEC_CONFIG_PARAM_SBR_MODE");
 
-
-    if(i_sbr_mode!=0)
-    {
-        WORD32 frame_length;
-        if (i_sbr_mode==1)
-        {
-            frame_length=2048;
-        }
-        else if(i_sbr_mode==3)
-        {
-            frame_length=4096;
-        }
-        else
-        {
-            frame_length=1024;
-        }
-        err_code =
-            ia_drc_dec_api(mMpegDDrcHandle, IA_API_CMD_SET_CONFIG_PARAM,
-                IA_DRC_DEC_CONFIG_PARAM_FRAME_SIZE, &frame_length);
-        RETURN_IF_NE(err_code, IA_NO_ERROR, err_code, "IA_DRC_DEC_CONFIG_PARAM_FRAME_SIZE");
-
-    }
-
-
     err_code = ia_drc_dec_api(mMpegDDrcHandle, IA_API_CMD_INIT,
                               IA_CMD_TYPE_INIT_API_POST_CONFIG_PARAMS, NULL);
 
@@ -1528,6 +1493,33 @@
       if(mpegd_drc_present==1){
 
         WORD32 interface_is_present = 1;
+        WORD32 frame_length;
+
+        if(i_sbr_mode != 0)
+        {
+            if (i_sbr_mode == 1)
+            {
+                frame_length = 2048;
+            }
+            else if(i_sbr_mode == 3)
+            {
+                frame_length = 4096;
+            }
+            else
+            {
+                frame_length = 1024;
+            }
+        }
+        else
+        {
+            frame_length = 4096;
+        }
+
+        err_code =
+            ia_drc_dec_api(mMpegDDrcHandle, IA_API_CMD_SET_CONFIG_PARAM,
+                IA_DRC_DEC_CONFIG_PARAM_FRAME_SIZE, &frame_length);
+        RETURN_IF_NE(err_code, IA_NO_ERROR, err_code, "IA_DRC_DEC_CONFIG_PARAM_FRAME_SIZE");
+
 
 
         err_code = ia_drc_dec_api(