Merge "hal: Use compress audio for incall recording with AMR WB"
diff --git a/hal/audio_extn/compress_capture.c b/hal/audio_extn/compress_capture.c
index f3db419..0a2de36 100644
--- a/hal/audio_extn/compress_capture.c
+++ b/hal/audio_extn/compress_capture.c
@@ -93,7 +93,10 @@
bool audio_extn_compr_cap_usecase_supported(audio_usecase_t usecase)
{
- if (usecase == USECASE_AUDIO_RECORD_COMPRESS)
+ if ((usecase == USECASE_AUDIO_RECORD_COMPRESS) ||
+ (usecase == USECASE_INCALL_REC_UPLINK_COMPRESS) ||
+ (usecase == USECASE_INCALL_REC_DOWNLINK_COMPRESS) ||
+ (usecase == USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS))
return true;
else
return false;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index bca6a26..0406627 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -119,6 +119,10 @@
[USECASE_INCALL_REC_UPLINK] = "incall-rec-uplink",
[USECASE_INCALL_REC_DOWNLINK] = "incall-rec-downlink",
[USECASE_INCALL_REC_UPLINK_AND_DOWNLINK] = "incall-rec-uplink-and-downlink",
+ [USECASE_INCALL_REC_UPLINK_COMPRESS] = "incall-rec-uplink-compress",
+ [USECASE_INCALL_REC_DOWNLINK_COMPRESS] = "incall-rec-downlink-compress",
+ [USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS] = "incall-rec-uplink-and-downlink-compress",
+
[USECASE_INCALL_MUSIC_UPLINK] = "incall_music_uplink",
[USECASE_INCALL_MUSIC_UPLINK2] = "incall_music_uplink2",
[USECASE_AUDIO_SPKR_CALIB_RX] = "spkr-rx-calib",
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index 0904137..ccb0298 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -84,6 +84,9 @@
USECASE_INCALL_REC_UPLINK,
USECASE_INCALL_REC_DOWNLINK,
USECASE_INCALL_REC_UPLINK_AND_DOWNLINK,
+ USECASE_INCALL_REC_UPLINK_COMPRESS,
+ USECASE_INCALL_REC_DOWNLINK_COMPRESS,
+ USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS,
USECASE_INCALL_MUSIC_UPLINK,
USECASE_INCALL_MUSIC_UPLINK2,
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 25f52d6..dfc8ff7 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -121,6 +121,12 @@
AUDIO_RECORD_PCM_DEVICE},
[USECASE_INCALL_REC_UPLINK_AND_DOWNLINK] = {AUDIO_RECORD_PCM_DEVICE,
AUDIO_RECORD_PCM_DEVICE},
+ [USECASE_INCALL_REC_UPLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
+ COMPRESS_CAPTURE_DEVICE},
+ [USECASE_INCALL_REC_DOWNLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
+ COMPRESS_CAPTURE_DEVICE},
+ [USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS] = {COMPRESS_CAPTURE_DEVICE,
+ COMPRESS_CAPTURE_DEVICE},
[USECASE_INCALL_MUSIC_UPLINK] = {INCALL_MUSIC_UPLINK_PCM_DEVICE,
INCALL_MUSIC_UPLINK_PCM_DEVICE},
[USECASE_INCALL_MUSIC_UPLINK2] = {INCALL_MUSIC_UPLINK2_PCM_DEVICE,
diff --git a/hal/voice.c b/hal/voice.c
index 25b53d4..afbd0af 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -212,15 +212,27 @@
if (voice_is_in_call(adev)) {
switch (in->source) {
case AUDIO_SOURCE_VOICE_UPLINK:
- in->usecase = USECASE_INCALL_REC_UPLINK;
+ if (audio_extn_compr_cap_enabled() &&
+ audio_extn_compr_cap_format_supported(in->config.format)) {
+ in->usecase = USECASE_INCALL_REC_UPLINK_COMPRESS;
+ } else
+ in->usecase = USECASE_INCALL_REC_UPLINK;
rec_mode = INCALL_REC_UPLINK;
break;
case AUDIO_SOURCE_VOICE_DOWNLINK:
- in->usecase = USECASE_INCALL_REC_DOWNLINK;
+ if (audio_extn_compr_cap_enabled() &&
+ audio_extn_compr_cap_format_supported(in->config.format)) {
+ in->usecase = USECASE_INCALL_REC_DOWNLINK_COMPRESS;
+ } else
+ in->usecase = USECASE_INCALL_REC_DOWNLINK;
rec_mode = INCALL_REC_DOWNLINK;
break;
case AUDIO_SOURCE_VOICE_CALL:
- in->usecase = USECASE_INCALL_REC_UPLINK_AND_DOWNLINK;
+ if (audio_extn_compr_cap_enabled() &&
+ audio_extn_compr_cap_format_supported(in->config.format)) {
+ in->usecase = USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS;
+ } else
+ in->usecase = USECASE_INCALL_REC_UPLINK_AND_DOWNLINK;
rec_mode = INCALL_REC_UPLINK_AND_DOWNLINK;
break;
default: