Promotion of audio-userspace.lnx.2.2-00012.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
1106679 I2e79dcffa8022532801c0feb7d527de81a885001 audio:hal: Fix to set ASRC mode for use case with combo
1109015 Ifdc7b8ff9d129e93a48d34c622e5a76bd83617eb hal: fix mismatch in configuration for NOIRQ record path
1107938 Ie60559806a3ee02e6b84626ba2a3ee89844a1a7a audio: correct dependencies for compilation with AOSP fl
1092123 I73d3fe413dd7590470c5b3b19569d6a7969c4dd8 Fix potential NULL dereference in Visualizer effect
Change-Id: I04236b64e181419e0761e88e8f2cc76a8e9616ae
CRs-Fixed: 1107938, 1109015, 1106679, 1092123
diff --git a/Android.mk b/Android.mk
index 61bb1d5..4b40d70 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,9 +14,12 @@
include $(MY_LOCAL_PATH)/mm-audio/Android.mk
include $(MY_LOCAL_PATH)/policy_hal/Android.mk
include $(MY_LOCAL_PATH)/visualizer/Android.mk
-include $(MY_LOCAL_PATH)/audiod/Android.mk
include $(MY_LOCAL_PATH)/post_proc/Android.mk
include $(MY_LOCAL_PATH)/qahw_api/Android.mk
endif
+ifneq ($(TARGET_USES_AOSP), true)
+include $(MY_LOCAL_PATH)/audiod/Android.mk
+endif
+
endif
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index e60ce6e..8c37bae 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -778,6 +778,9 @@
} else {
ALOGD("%s: snd_device(%d: %s)", __func__, snd_device, device_name);
+ if (platform_check_codec_asrc_support(adev->platform))
+ check_and_set_asrc_mode(adev, snd_device);
+
if ((SND_DEVICE_OUT_BT_A2DP == snd_device) &&
(audio_extn_a2dp_start_playback() < 0)) {
ALOGE(" fail to configure A2dp control path ");
@@ -1597,8 +1600,6 @@
/* Enable new sound devices */
if (out_snd_device != SND_DEVICE_NONE) {
check_usecases_codec_backend(adev, usecase, out_snd_device);
- if (platform_check_codec_asrc_support(adev->platform))
- check_and_set_asrc_mode(adev, out_snd_device);
enable_snd_device(adev, out_snd_device);
}
@@ -4704,6 +4705,16 @@
in->capture_handle = handle;
in->flags = flags;
+ in->usecase = USECASE_AUDIO_RECORD;
+ if (config->sample_rate == LOW_LATENCY_CAPTURE_SAMPLE_RATE &&
+ (flags & AUDIO_INPUT_FLAG_FAST) != 0) {
+ is_low_latency = true;
+#if LOW_LATENCY_CAPTURE_USE_CASE
+ in->usecase = USECASE_AUDIO_RECORD_LOW_LATENCY;
+#endif
+ in->realtime = may_use_noirq_mode(adev, in->usecase, in->flags);
+ }
+
in->format = config->format;
if (in->realtime) {
in->config = pcm_config_audio_capture_rt;
@@ -4758,16 +4769,6 @@
}
}
- in->usecase = USECASE_AUDIO_RECORD;
- if (config->sample_rate == LOW_LATENCY_CAPTURE_SAMPLE_RATE &&
- (flags & AUDIO_INPUT_FLAG_FAST) != 0) {
- is_low_latency = true;
-#if LOW_LATENCY_CAPTURE_USE_CASE
- in->usecase = USECASE_AUDIO_RECORD_LOW_LATENCY;
-#endif
- in->realtime = may_use_noirq_mode(adev, in->usecase, in->flags);
- }
-
/* Update config params with the requested sample rate and channels */
if ((in->device == AUDIO_DEVICE_IN_TELEPHONY_RX) &&
(adev->mode != AUDIO_MODE_IN_CALL)) {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 0022996..26b603a 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -3594,10 +3594,10 @@
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_STEREO_MIC;
}
- else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_3) &&
+ else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_3) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_THREE_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_4) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_QUAD_MIC;
} else {
@@ -3623,10 +3623,10 @@
(channel_mask == AUDIO_CHANNEL_IN_STEREO)) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
snd_device = SND_DEVICE_IN_VOICE_REC_DMIC_STEREO;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_3) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_3) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
snd_device = SND_DEVICE_IN_THREE_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_4) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_QUAD_MIC;
}
@@ -3643,10 +3643,10 @@
(channel_mask == AUDIO_CHANNEL_IN_STEREO)) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_STEREO_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_3) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_3) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_THREE_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_4) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_QUAD_MIC;
} else {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index fd8c773..4c7a8de 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -3221,10 +3221,10 @@
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_STEREO_MIC;
}
- else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_3) &&
+ else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_3) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_THREE_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_4) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_QUAD_MIC;
} else {
@@ -3250,10 +3250,10 @@
(channel_mask == AUDIO_CHANNEL_IN_STEREO)) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
snd_device = SND_DEVICE_IN_VOICE_REC_DMIC_STEREO;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_3) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_3) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
snd_device = SND_DEVICE_IN_THREE_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_4) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_QUAD_MIC;
}
@@ -3270,10 +3270,10 @@
(channel_mask == AUDIO_CHANNEL_IN_STEREO)) &&
(my_data->source_mic_type & SOURCE_DUAL_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_STEREO_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_3) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_3) &&
(my_data->source_mic_type & SOURCE_THREE_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_THREE_MIC;
- } else if (((int)channel_mask == AUDIO_CHANNEL_INDEX_MASK_4) &&
+ } else if (((int)channel_mask == (int)AUDIO_CHANNEL_INDEX_MASK_4) &&
(my_data->source_mic_type & SOURCE_QUAD_MIC)) {
snd_device = SND_DEVICE_IN_UNPROCESSED_QUAD_MIC;
} else {
diff --git a/visualizer/offload_visualizer.c b/visualizer/offload_visualizer.c
index aaa586b..716755b 100644
--- a/visualizer/offload_visualizer.c
+++ b/visualizer/offload_visualizer.c
@@ -898,9 +898,13 @@
case VISUALIZER_CMD_MEASURE: {
if (pReplyData == NULL || replySize == NULL ||
*replySize < (sizeof(int32_t) * MEASUREMENT_COUNT)) {
- ALOGV("%s VISUALIZER_CMD_MEASURE error *replySize %d <"
- "(sizeof(int32_t) * MEASUREMENT_COUNT) %d",
- __func__, *replySize, sizeof(int32_t) * MEASUREMENT_COUNT);
+ if (replySize == NULL) {
+ ALOGV("%s VISUALIZER_CMD_MEASURE error replySize NULL", __func__);
+ } else {
+ ALOGV("%s VISUALIZER_CMD_MEASURE error *replySize %u <"
+ "(sizeof(int32_t) * MEASUREMENT_COUNT) %zu",
+ __func__, *replySize, sizeof(int32_t) * MEASUREMENT_COUNT);
+ }
android_errorWriteLog(0x534e4554, "30229821");
return -EINVAL;
}
diff --git a/voice_processing/Android.mk b/voice_processing/Android.mk
index 9b86eaf..73619c6 100644
--- a/voice_processing/Android.mk
+++ b/voice_processing/Android.mk
@@ -14,6 +14,7 @@
$(call include-path-for, audio-effects)
LOCAL_SHARED_LIBRARIES := \
+ liblog \
libcutils
LOCAL_SHARED_LIBRARIES += libdl