Merge "Merge 7bc4841db198e3b2d8420301626d89d4e2943c06 on remote branch"
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 858db85..d0d4dac 100755
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -626,7 +626,7 @@
(usecase->out_snd_device != snd_device || force_routing) &&
usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND &&
usecase_backend_idx == backend_idx) {
- ALOGV("%s: Usecase (%s) is active on (%s) - disabling ..", __func__,
+ ALOGD("%s: Usecase (%s) is active on (%s) - disabling ..", __func__,
use_case_table[usecase->id],
platform_get_snd_device_name(usecase->out_snd_device));
disable_audio_route(adev, usecase);
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index b995883..bb71405 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -136,7 +136,6 @@
char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = {
[WCD9XXX_ANC_CAL] = "anc_cal",
[WCD9XXX_MBHC_CAL] = "mbhc_cal",
- [WCD9XXX_MAD_CAL] = "mad_cal",
};
#define AUDIO_PARAMETER_KEY_REC_PLAY_CONC "rec_play_conc_on"
@@ -1188,8 +1187,6 @@
struct wcdcal_ioctl_buffer codec_buffer;
struct param_data calib;
- if (!strcmp(cal_name_info[type], "mad_cal"))
- calib.acdb_id = SOUND_TRIGGER_DEVICE_HANDSET_MONO_LOW_POWER_ACDB_ID;
calib.get_size = 1;
ret = acdb_loader_get_calibration(cal_name_info[type], sizeof(struct param_data),
&calib);
@@ -1811,7 +1808,7 @@
{
na_props.platform_na_prop_enabled = na_props.ui_na_prop_enabled
= codec_support;
- ALOGV("%s: na_props.platform_na_prop_enabled: %d", __func__,
+ ALOGD("%s: na_props.platform_na_prop_enabled: %d", __func__,
na_props.platform_na_prop_enabled);
return 0;
}
@@ -1862,10 +1859,15 @@
value, len);
if (ret >= 0) {
if (na_props.platform_na_prop_enabled) {
- if (!strncmp("true", value, sizeof("true")))
+ if (!strncmp("true", value, sizeof("true"))) {
na_props.ui_na_prop_enabled = true;
- else
+ ALOGD("%s: native audio feature enabled from UI",__func__);
+ }
+ else {
na_props.ui_na_prop_enabled = false;
+ ALOGD("%s: native audio feature disabled from UI",__func__);
+
+ }
str_parms_del(parms, AUDIO_PARAMETER_KEY_NATIVE_AUDIO);
@@ -1878,14 +1880,15 @@
(usecase->stream.out->devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
usecase->stream.out->devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) &&
OUTPUT_SAMPLING_RATE_44100 == usecase->stream.out->sample_rate) {
- select_devices(platform->adev, usecase->id);
- ALOGV("%s: triggering dynamic device switch for usecase: "
- "%d, device: %d", __func__, usecase->id,
+ ALOGD("%s: triggering dynamic device switch for usecase(%d: %s)"
+ " stream(%p), device(%d)", __func__, usecase->id,
+ use_case_table[usecase->id], usecase->stream,
usecase->stream.out->devices);
+ select_devices(platform->adev, usecase->id);
}
}
} else {
- ALOGV("%s: native audio not supported: %d", __func__,
+ ALOGD("%s: native audio not supported: %d", __func__,
na_props.platform_na_prop_enabled);
}
}
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index d62d5d3..c0c5fe1 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -129,7 +129,6 @@
char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = {
[WCD9XXX_ANC_CAL] = "anc_cal",
[WCD9XXX_MBHC_CAL] = "mbhc_cal",
- [WCD9XXX_MAD_CAL] = "mad_cal",
};
enum {
@@ -982,8 +981,6 @@
struct wcdcal_ioctl_buffer codec_buffer;
struct param_data calib;
- if (!strcmp(cal_name_info[type], "mad_cal"))
- calib.acdb_id = SOUND_TRIGGER_DEVICE_HANDSET_MONO_LOW_POWER_ACDB_ID;
calib.get_size = 1;
ret = acdb_loader_get_calibration(cal_name_info[type], sizeof(struct param_data),
&calib);
@@ -1634,7 +1631,7 @@
{
na_props.platform_na_prop_enabled = na_props.ui_na_prop_enabled
= codec_support;
- ALOGV("%s: na_props.platform_na_prop_enabled: %d", __func__,
+ ALOGD("%s: na_props.platform_na_prop_enabled: %d", __func__,
na_props.platform_na_prop_enabled);
return 0;
}
@@ -1685,10 +1682,15 @@
value, len);
if (ret >= 0) {
if (na_props.platform_na_prop_enabled) {
- if (!strncmp("true", value, sizeof("true")))
+ if (!strncmp("true", value, sizeof("true"))) {
na_props.ui_na_prop_enabled = true;
- else
+ ALOGD("%s: native audio feature enabled from UI",__func__);
+ }
+ else {
na_props.ui_na_prop_enabled = false;
+ ALOGD("%s: native audio feature disabled from UI",__func__);
+
+ }
str_parms_del(parms, AUDIO_PARAMETER_KEY_NATIVE_AUDIO);
@@ -1703,14 +1705,15 @@
(usecase->stream.out->devices & AUDIO_DEVICE_OUT_WIRED_HEADPHONE ||
usecase->stream.out->devices & AUDIO_DEVICE_OUT_WIRED_HEADSET) &&
OUTPUT_SAMPLING_RATE_44100 == usecase->stream.out->sample_rate) {
- select_devices(platform->adev, usecase->id);
- ALOGV("%s: triggering dynamic device switch for usecase: "
- "%d, device: %d", __func__, usecase->id,
+ ALOGD("%s: triggering dynamic device switch for usecase(%d: %s)"
+ " stream(%p), device(%d)", __func__, usecase->id,
+ use_case_table[usecase->id], usecase->stream,
usecase->stream.out->devices);
+ select_devices(platform->adev, usecase->id);
}
}
} else {
- ALOGV("%s: native audio not supported: %d", __func__,
+ ALOGD("%s: native audio not supported: %d", __func__,
na_props.platform_na_prop_enabled);
}
}
diff --git a/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp b/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp
index 4cfee1b..6154e0c 100644
--- a/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp
+++ b/mm-audio/aenc-aac/qdsp6/src/omx_aac_aenc.cpp
@@ -4070,6 +4070,8 @@
//The total length of the data to be transcoded
srcStart = buffer->pBuffer;
OMX_U8 *data = NULL;
+ ssize_t bytes = 0;
+
PrintFrameHdr(OMX_COMPONENT_GENERATE_ETB,buffer);
memset(&meta_in,0,sizeof(meta_in));
if ( search_input_bufhdr(buffer) == false )
@@ -4104,7 +4106,22 @@
}
memcpy(&data[sizeof(META_IN)],buffer->pBuffer,buffer->nFilledLen);
- write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
+ bytes = write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
+ if (bytes <= 0) {
+ frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
+
+ if (errno == ENETRESET)
+ {
+ ALOGE("In SSR, return error to close the session");
+ m_cb.EventHandler(&m_cmp,
+ m_app_data,
+ OMX_EventError,
+ OMX_ErrorHardware,
+ 0, NULL );
+ }
+ return OMX_ErrorNone;
+ }
+
pthread_mutex_lock(&m_state_lock);
get_state(&m_cmp, &state);
pthread_mutex_unlock(&m_state_lock);
diff --git a/mm-audio/aenc-evrc/qdsp6/src/omx_evrc_aenc.cpp b/mm-audio/aenc-evrc/qdsp6/src/omx_evrc_aenc.cpp
index 8200365..af9f785 100644
--- a/mm-audio/aenc-evrc/qdsp6/src/omx_evrc_aenc.cpp
+++ b/mm-audio/aenc-evrc/qdsp6/src/omx_evrc_aenc.cpp
@@ -3974,6 +3974,8 @@
//The total length of the data to be transcoded
srcStart = buffer->pBuffer;
OMX_U8 *data = NULL;
+ ssize_t bytes = 0;
+
PrintFrameHdr(OMX_COMPONENT_GENERATE_ETB,buffer);
memset(&meta_in,0,sizeof(meta_in));
if ( search_input_bufhdr(buffer) == false )
@@ -4003,7 +4005,21 @@
}
memcpy(&data[sizeof(META_IN)],buffer->pBuffer,buffer->nFilledLen);
- write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
+ bytes = write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
+ if (bytes <= 0) {
+ frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
+
+ if (errno == ENETRESET)
+ {
+ ALOGE("In SSR, return error to close the session");
+ m_cb.EventHandler(&m_cmp,
+ m_app_data,
+ OMX_EventError,
+ OMX_ErrorHardware,
+ 0, NULL );
+ }
+ return OMX_ErrorNone;
+ }
pthread_mutex_lock(&m_state_lock);
get_state(&m_cmp, &state);
@@ -4045,11 +4061,21 @@
buffer->nAllocLen,buffer->pBuffer,
nReadbytes,nNumOutputBuf);
if (nReadbytes <= 0) {
- buffer->nFilledLen = 0;
+ buffer->nFilledLen = 0;
buffer->nOffset = 0;
- buffer->nTimeStamp = nTimestamp;
- frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
- return OMX_ErrorNone;
+ buffer->nTimeStamp = nTimestamp;
+ frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
+
+ if (errno == ENETRESET)
+ {
+ ALOGE("In SSR, return error to close the session");
+ m_cb.EventHandler(&m_cmp,
+ m_app_data,
+ OMX_EventError,
+ OMX_ErrorHardware,
+ 0, NULL );
+ }
+ return OMX_ErrorNone;
} else
DEBUG_PRINT("Read bytes %d\n",nReadbytes);
// Buffer from Driver will have
diff --git a/mm-audio/aenc-qcelp13/qdsp6/src/omx_qcelp13_aenc.cpp b/mm-audio/aenc-qcelp13/qdsp6/src/omx_qcelp13_aenc.cpp
index 399b8cf..d25eb7f 100644
--- a/mm-audio/aenc-qcelp13/qdsp6/src/omx_qcelp13_aenc.cpp
+++ b/mm-audio/aenc-qcelp13/qdsp6/src/omx_qcelp13_aenc.cpp
@@ -3972,6 +3972,8 @@
//The total length of the data to be transcoded
srcStart = buffer->pBuffer;
OMX_U8 *data = NULL;
+ ssize_t bytes = 0;
+
PrintFrameHdr(OMX_COMPONENT_GENERATE_ETB,buffer);
memset(&meta_in,0,sizeof(meta_in));
if ( search_input_bufhdr(buffer) == false )
@@ -4001,7 +4003,21 @@
}
memcpy(&data[sizeof(META_IN)],buffer->pBuffer,buffer->nFilledLen);
- write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
+ bytes = write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
+ if (bytes <= 0) {
+ frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
+
+ if (errno == ENETRESET)
+ {
+ ALOGE("In SSR, return error to close the session");
+ m_cb.EventHandler(&m_cmp,
+ m_app_data,
+ OMX_EventError,
+ OMX_ErrorHardware,
+ 0, NULL );
+ }
+ return OMX_ErrorNone;
+ }
pthread_mutex_lock(&m_state_lock);
get_state(&m_cmp, &state);
@@ -4043,11 +4059,21 @@
buffer->nAllocLen,buffer->pBuffer,
nReadbytes,nNumOutputBuf);
if (nReadbytes <= 0) {
- buffer->nFilledLen = 0;
+ buffer->nFilledLen = 0;
buffer->nOffset = 0;
- buffer->nTimeStamp = nTimestamp;
- frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
- return OMX_ErrorNone;
+ buffer->nTimeStamp = nTimestamp;
+ frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);
+
+ if (errno == ENETRESET)
+ {
+ ALOGE("In SSR, return error to close the session");
+ m_cb.EventHandler(&m_cmp,
+ m_app_data,
+ OMX_EventError,
+ OMX_ErrorHardware,
+ 0, NULL );
+ }
+ return OMX_ErrorNone;
} else
DEBUG_PRINT("Read bytes %d\n",nReadbytes);