Merge "audio_hw: close mmap file descriptor to fix leak" into qt-dev
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 0d918d9..1fd913a 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -4118,7 +4118,7 @@
lock_input_stream(in);
- if (!in->standby && in->is_st_session) {
+ if (!in->standby && (in->flags & AUDIO_INPUT_FLAG_HW_HOTWORD)) {
ALOGV("%s: sound trigger pcm stop lab", __func__);
audio_extn_sound_trigger_stop_lab(in);
in->standby = true;
@@ -4366,7 +4366,7 @@
const size_t frame_size = audio_stream_in_frame_size(stream);
const size_t frames = bytes / frame_size;
- if (in->is_st_session) {
+ if (in->flags & AUDIO_INPUT_FLAG_HW_HOTWORD) {
ALOGVV(" %s: reading on st session bytes=%zu", __func__, bytes);
/* Read from sound trigger HAL */
audio_extn_sound_trigger_read(in, buffer, bytes);
@@ -4479,7 +4479,7 @@
// on standby. Therefore, we may return an error even though the
// pcm stream is still opened.
if (in->standby) {
- ALOGE_IF(in->pcm != NULL && !in->is_st_session,
+ ALOGE_IF(in->pcm != NULL && !(in->flags & AUDIO_INPUT_FLAG_HW_HOTWORD),
"%s stream in standby but pcm not NULL for non ST session", __func__);
goto exit;
}
@@ -6101,6 +6101,9 @@
get sound trigger pcm if present */
audio_extn_sound_trigger_check_and_get_session(in);
+ if (in->is_st_session)
+ in->flags |= AUDIO_INPUT_FLAG_HW_HOTWORD;
+
lock_input_stream(in);
audio_extn_snd_mon_register_listener(in, in_snd_mon_cb);
pthread_mutex_lock(&adev->lock);