Loading post_proc/volume_listener.c +23 −2 Original line number Diff line number Diff line Loading @@ -312,6 +312,13 @@ static void check_and_set_gain_dep_cal() * Effect Control Interface Implementation */ static inline int16_t clamp16(int32_t sample) { if ((sample>>15) ^ (sample>>31)) sample = 0x7FFF ^ (sample>>31); return sample; } static int vol_effect_process(effect_handle_t self, audio_buffer_t *in_buffer, audio_buffer_t *out_buffer) Loading @@ -330,7 +337,15 @@ static int vol_effect_process(effect_handle_t self, // calculation based on channel count 2 if (in_buffer->raw != out_buffer->raw) { if (context->config.outputCfg.accessMode == EFFECT_BUFFER_ACCESS_ACCUMULATE) { size_t i; for (i = 0; i < out_buffer->frameCount*2; i++) { out_buffer->s16[i] = clamp16(out_buffer->s16[i] + in_buffer->s16[i]); } } else { memcpy(out_buffer->raw, in_buffer->raw, out_buffer->frameCount * 2 * sizeof(int16_t)); } } else { ALOGW("%s: something wrong, didn't handle in_buffer and out_buffer same address case", __func__); Loading Loading @@ -374,6 +389,12 @@ static int vol_effect_command(effect_handle_t self, case EFFECT_CMD_SET_CONFIG: ALOGV("%s :: cmd called EFFECT_CMD_SET_CONFIG", __func__); if (p_cmd_data == NULL || cmd_size != sizeof(effect_config_t) || p_reply_data == NULL || reply_size == NULL || *reply_size != sizeof(int)) { return -EINVAL; } context->config = *(effect_config_t *)p_cmd_data; *(int *)p_reply_data = 0; break; case EFFECT_CMD_GET_CONFIG: Loading Loading @@ -600,7 +621,7 @@ static int lib_init() static int vol_prc_lib_create(const effect_uuid_t *uuid, int32_t session_id, int32_t io_id, int32_t io_id __unused, effect_handle_t *p_handle) { int itt = 0; Loading Loading
post_proc/volume_listener.c +23 −2 Original line number Diff line number Diff line Loading @@ -312,6 +312,13 @@ static void check_and_set_gain_dep_cal() * Effect Control Interface Implementation */ static inline int16_t clamp16(int32_t sample) { if ((sample>>15) ^ (sample>>31)) sample = 0x7FFF ^ (sample>>31); return sample; } static int vol_effect_process(effect_handle_t self, audio_buffer_t *in_buffer, audio_buffer_t *out_buffer) Loading @@ -330,7 +337,15 @@ static int vol_effect_process(effect_handle_t self, // calculation based on channel count 2 if (in_buffer->raw != out_buffer->raw) { if (context->config.outputCfg.accessMode == EFFECT_BUFFER_ACCESS_ACCUMULATE) { size_t i; for (i = 0; i < out_buffer->frameCount*2; i++) { out_buffer->s16[i] = clamp16(out_buffer->s16[i] + in_buffer->s16[i]); } } else { memcpy(out_buffer->raw, in_buffer->raw, out_buffer->frameCount * 2 * sizeof(int16_t)); } } else { ALOGW("%s: something wrong, didn't handle in_buffer and out_buffer same address case", __func__); Loading Loading @@ -374,6 +389,12 @@ static int vol_effect_command(effect_handle_t self, case EFFECT_CMD_SET_CONFIG: ALOGV("%s :: cmd called EFFECT_CMD_SET_CONFIG", __func__); if (p_cmd_data == NULL || cmd_size != sizeof(effect_config_t) || p_reply_data == NULL || reply_size == NULL || *reply_size != sizeof(int)) { return -EINVAL; } context->config = *(effect_config_t *)p_cmd_data; *(int *)p_reply_data = 0; break; case EFFECT_CMD_GET_CONFIG: Loading Loading @@ -600,7 +621,7 @@ static int lib_init() static int vol_prc_lib_create(const effect_uuid_t *uuid, int32_t session_id, int32_t io_id, int32_t io_id __unused, effect_handle_t *p_handle) { int itt = 0; Loading