Merge "post_proc: add PBE effect for speaker"
diff --git a/hal/audio_extn/dts_eagle.c b/hal/audio_extn/dts_eagle.c
index 83c3506..52d7abb 100644
--- a/hal/audio_extn/dts_eagle.c
+++ b/hal/audio_extn/dts_eagle.c
@@ -150,20 +150,16 @@
if (strncmp("true", prop, sizeof("true")))
return;
int fd, n = 0;
- if ((fd = open(FADE_NOTIFY_FILE, O_RDONLY)) < 0)
- ALOGV("No fade node");
- else {
- ALOGV("fade node exists, remove it before creating it");
- close(fd);
- remove(FADE_NOTIFY_FILE);
+ if ((fd = open(FADE_NOTIFY_FILE, O_TRUNC|O_WRONLY)) < 0) {
+ ALOGV("No fade node, create one");
+ fd = creat(FADE_NOTIFY_FILE, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
+ if (fd < 0) {
+ ALOGE("DTS_EAGLE_HAL (%s): Creating fade notifier node failed", __func__);
+ return;
+ }
+ chmod(FADE_NOTIFY_FILE, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH);
}
- fd = creat(FADE_NOTIFY_FILE, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
char *str = need_data ? "need" : "have";
- if (fd < 0) {
- ALOGE("DTS_EAGLE_HAL (%s): opening fade notifier node failed", __func__);
- return;
- }
- chmod(FADE_NOTIFY_FILE, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH);
n = write(fd, str, strlen(str));
close(fd);
if (n > 0)
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 33e48c9..331ded8 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2132,6 +2132,7 @@
}
if (!out->playback_started && ret >= 0) {
compress_start(out->compr);
+ audio_extn_dts_eagle_fade(adev, true, out);
out->playback_started = 1;
out->offload_state = OFFLOAD_STATE_PLAYING;
@@ -3364,7 +3365,7 @@
struct audio_stream_in **stream_in,
audio_input_flags_t flags __unused,
const char *address __unused,
- audio_source_t source __unused)
+ audio_source_t source)
{
struct audio_device *adev = (struct audio_device *)dev;
struct stream_in *in;
@@ -3384,8 +3385,8 @@
}
ALOGD("%s: enter: sample_rate(%d) channel_mask(%#x) devices(%#x)\
- stream_handle(%p) io_handle(%d)",__func__, config->sample_rate, config->channel_mask,
- devices, &in->stream, handle);
+ stream_handle(%p) io_handle(%d) source(%d)",__func__, config->sample_rate, config->channel_mask,
+ devices, &in->stream, handle, source);
pthread_mutex_init(&in->lock, (const pthread_mutexattr_t *) NULL);
@@ -3406,7 +3407,7 @@
in->stream.get_input_frames_lost = in_get_input_frames_lost;
in->device = devices;
- in->source = AUDIO_SOURCE_DEFAULT;
+ in->source = source;
in->dev = adev;
in->standby = 1;
in->channel_mask = config->channel_mask;
@@ -3472,6 +3473,13 @@
channel_count,
is_low_latency);
in->config.period_size = buffer_size / frame_size;
+ if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) &&
+ (in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) &&
+ (voice_extn_compress_voip_is_format_supported(in->format)) &&
+ (in->config.rate == 8000 || in->config.rate == 16000) &&
+ (audio_channel_count_from_in_mask(in->channel_mask) == 1)) {
+ voice_extn_compress_voip_open_input_stream(in);
+ }
}
/* This stream could be for sound trigger lab,
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index c37fab7..7e87a3c 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -243,7 +243,7 @@
#define VOICE_CALL_PCM_DEVICE 2
#define VOICE2_CALL_PCM_DEVICE 13
#define VOLTE_CALL_PCM_DEVICE 15
-#define QCHAT_CALL_PCM_DEVICE 14
+#define QCHAT_CALL_PCM_DEVICE 26
#define VOWLAN_CALL_PCM_DEVICE 16
#define AFE_PROXY_PLAYBACK_PCM_DEVICE 7
diff --git a/hal/voice.c b/hal/voice.c
index 01158dd..9fc1081 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -157,6 +157,8 @@
}
ALOGD("voice_config.rate %d\n", voice_config.rate);
+ voice_set_mic_mute(adev, adev->voice.mic_mute);
+
ALOGV("%s: Opening PCM playback device card_id(%d) device_id(%d)",
__func__, adev->snd_card, pcm_dev_rx_id);
session->pcm_rx = pcm_open(adev->snd_card,
diff --git a/hal/voice_extn/compress_voip.c b/hal/voice_extn/compress_voip.c
index e8ba1f9..14af6fc 100644
--- a/hal/voice_extn/compress_voip.c
+++ b/hal/voice_extn/compress_voip.c
@@ -697,6 +697,10 @@
voip_data.sample_rate = in->config.rate;
}
+ ret = voip_set_mode(in->dev, in->format);
+ if (ret < 0)
+ goto done;
+
in->usecase = USECASE_COMPRESS_VOIP_CALL;
if (in->config.rate == 16000)
in->config = pcm_config_voip_wb;
@@ -704,7 +708,6 @@
in->config = pcm_config_voip_nb;
voip_data.in_stream_count++;
- ret = voip_set_mode(in->dev, in->format);
done:
ALOGV("%s: exit, ret=%d", __func__, ret);
diff --git a/post_proc/bundle.c b/post_proc/bundle.c
index a89b02b..e38a41c 100644
--- a/post_proc/bundle.c
+++ b/post_proc/bundle.c
@@ -848,8 +848,6 @@
} break;
case EFFECT_CMD_SET_PARAM: {
if (pCmdData == NULL ||
- cmdSize > (int)(sizeof(effect_param_t) + sizeof(uint32_t) +
- sizeof(uint32_t)) ||
cmdSize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) +
sizeof(uint16_t)) ||
pReplyData == NULL || *replySize != sizeof(int32_t)) {