hal: Surround sound record enhancement
- Remove legacy 4 mic surround sound record support
- Add device specific check for SSR initialization
- Remove SSR lib deinit during standby to support
sub system restart for surround sound record usecase
Change-Id: I1ead34e4b3acaa5e309e11dfa2c7ba4cbd374e3a
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 5500ee3..aefb8ce 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1057,10 +1057,6 @@
/* 2. Disable the tx device */
disable_snd_device(adev, uc_info->in_snd_device);
- if (audio_extn_ssr_get_stream() == in) {
- audio_extn_ssr_deinit();
- }
-
list_remove(&uc_info->list);
free(uc_info);
@@ -3653,28 +3649,8 @@
in->config = pcm_config_afe_proxy_record;
in->config.channels = channel_count;
in->config.rate = config->sample_rate;
- } else if (audio_extn_ssr_get_enabled() &&
- ((channel_count == 2) || (channel_count == 6)) &&
- ((AUDIO_SOURCE_MIC == source) || (AUDIO_SOURCE_CAMCORDER == source))) {
- ALOGD("%s: Found SSR use case starting SSR lib with channel_count :%d",
- __func__, channel_count);
- if (audio_extn_ssr_init(in, channel_count)) {
- ALOGE("%s: audio_extn_ssr_init failed", __func__);
- if (channel_count == 2) {
- ALOGD("%s: falling back to default record usecase", __func__);
- in->config.channels = channel_count;
- frame_size = audio_stream_in_frame_size(&in->stream);
- buffer_size = get_input_buffer_size(config->sample_rate,
- config->format,
- channel_count,
- is_low_latency);
- in->config.period_size = buffer_size / frame_size;
- } else {
- ALOGD("%s: unable to start SSR record session for 6 channel input", __func__);
- ret = -EINVAL;
- goto err_open;
- }
- }
+ } else if (!audio_extn_ssr_check_and_set_usecase(in)) {
+ ALOGD("%s: created surround sound session succesfully",__func__);
} else if (audio_extn_compr_cap_enabled() &&
audio_extn_compr_cap_format_supported(config->format) &&
(in->dev->mode != AUDIO_MODE_IN_COMMUNICATION)) {