Issue #1299 ยป audio-effects-fix-heap-overflow.patch
| media/libeffects/downmix/EffectDownmix.c | ||
|---|---|---|
|
int32_t DownmixLib_Create(const effect_uuid_t *uuid,
|
||
|
int32_t sessionId,
|
||
|
int32_t ioId,
|
||
|
int32_t sessionId __unused,
|
||
|
int32_t ioId __unused,
|
||
|
effect_handle_t *pHandle) {
|
||
|
int ret;
|
||
|
int i;
|
||
| ... | ... | |
|
switch (cmdCode) {
|
||
|
case EFFECT_CMD_INIT:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
*(int *) pReplyData = Downmix_Init(pDwmModule);
|
||
| ... | ... | |
|
case EFFECT_CMD_SET_CONFIG:
|
||
|
if (pCmdData == NULL || cmdSize != sizeof(effect_config_t)
|
||
|
|| pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
|| pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
*(int *) pReplyData = Downmix_Configure(pDwmModule,
|
||
| ... | ... | |
|
ALOGV("Downmix_Command EFFECT_CMD_GET_PARAM pCmdData %p, *replySize %d, pReplyData: %p",
|
||
|
pCmdData, *replySize, pReplyData);
|
||
|
if (pCmdData == NULL || cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize < (int) sizeof(effect_param_t) + 2 * sizeof(int32_t)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
ALOGV("Downmix_Command EFFECT_CMD_SET_PARAM cmdSize %d pCmdData %p, *replySize %d, " \
|
||
|
"pReplyData %p", cmdSize, pCmdData, *replySize, pReplyData);
|
||
|
if (pCmdData == NULL || (cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)))
|
||
|
|| pReplyData == NULL || *replySize != (int)sizeof(int32_t)) {
|
||
|
|| pReplyData == NULL || replySize == NULL || *replySize != (int)sizeof(int32_t)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *cmd = (effect_param_t *) pCmdData;
|
||
| ... | ... | |
|
break;
|
||
|
case EFFECT_CMD_ENABLE:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
if (pDownmixer->state != DOWNMIX_STATE_INITIALIZED) {
|
||
| ... | ... | |
|
break;
|
||
|
case EFFECT_CMD_DISABLE:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
if (pDownmixer->state != DOWNMIX_STATE_ACTIVE) {
|
||
| ... | ... | |
|
*----------------------------------------------------------------------------
|
||
|
*/
|
||
|
int Downmix_Reset(downmix_object_t *pDownmixer, bool init) {
|
||
|
int Downmix_Reset(downmix_object_t *pDownmixer __unused, bool init __unused) {
|
||
|
// nothing to do here
|
||
|
return 0;
|
||
|
}
|
||
| media/libeffects/lvm/wrapper/Bundle/EffectBundle.cpp | ||
|---|---|---|
|
switch (cmdCode){
|
||
|
case EFFECT_CMD_INIT:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)){
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)){
|
||
|
ALOGV("\tLVM_ERROR, EFFECT_CMD_INIT: ERROR for effect type %d",
|
||
|
pContext->EffectType);
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
case EFFECT_CMD_SET_CONFIG:
|
||
|
//ALOGV("\tEffect_command cmdCode Case: EFFECT_CMD_SET_CONFIG start");
|
||
|
if (pCmdData == NULL||
|
||
|
cmdSize != sizeof(effect_config_t)||
|
||
|
pReplyData == NULL||
|
||
|
*replySize != sizeof(int)){
|
||
|
if (pCmdData == NULL || cmdSize != sizeof(effect_config_t) ||
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
ALOGV("\tLVM_ERROR : Effect_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_CONFIG: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
break;
|
||
|
case EFFECT_CMD_GET_CONFIG:
|
||
|
if (pReplyData == NULL ||
|
||
|
*replySize != sizeof(effect_config_t)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(effect_config_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Effect_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_CONFIG: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
case EFFECT_CMD_GET_PARAM:{
|
||
|
//ALOGV("\tEffect_command cmdCode Case: EFFECT_CMD_GET_PARAM start");
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
if(pContext->EffectType == LVM_BASS_BOOST){
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize < (int) (sizeof(effect_param_t) + sizeof(int32_t))){
|
||
|
ALOGV("\tLVM_ERROR : BassBoost_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
if (pCmdData == NULL || cmdSize < sizeof(effect_param_t) ||
|
||
|
cmdSize < (sizeof(effect_param_t) + p->psize) ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize < (sizeof(effect_param_t) + p->psize)) {
|
||
|
ALOGV("\tLVM_ERROR : EFFECT_CMD_GET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
|
p = (effect_param_t *)pReplyData;
|
||
|
p = (effect_param_t *)pReplyData;
|
||
|
int voffset = ((p->psize - 1) / sizeof(int32_t) + 1) * sizeof(int32_t);
|
||
|
int voffset = ((p->psize - 1) / sizeof(int32_t) + 1) * sizeof(int32_t);
|
||
|
if(pContext->EffectType == LVM_BASS_BOOST){
|
||
|
p->status = android::BassBoost_getParameter(pContext,
|
||
|
p->data,
|
||
|
(size_t *)&p->vsize,
|
||
|
p->data + voffset);
|
||
|
*replySize = sizeof(effect_param_t) + voffset + p->vsize;
|
||
|
//ALOGV("\tBassBoost_command EFFECT_CMD_GET_PARAM "
|
||
|
// "*pCmdData %d, *replySize %d, *pReplyData %d ",
|
||
|
// *(int32_t *)((char *)pCmdData + sizeof(effect_param_t)),
|
||
| ... | ... | |
|
}
|
||
|
if(pContext->EffectType == LVM_VIRTUALIZER){
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize < (int) (sizeof(effect_param_t) + sizeof(int32_t))){
|
||
|
ALOGV("\tLVM_ERROR : Virtualizer_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
|
p = (effect_param_t *)pReplyData;
|
||
|
int voffset = ((p->psize - 1) / sizeof(int32_t) + 1) * sizeof(int32_t);
|
||
|
p->status = android::Virtualizer_getParameter(pContext,
|
||
|
(void *)p->data,
|
||
|
(size_t *)&p->vsize,
|
||
|
p->data + voffset);
|
||
|
*replySize = sizeof(effect_param_t) + voffset + p->vsize;
|
||
|
//ALOGV("\tVirtualizer_command EFFECT_CMD_GET_PARAM "
|
||
|
// "*pCmdData %d, *replySize %d, *pReplyData %d ",
|
||
|
// *(int32_t *)((char *)pCmdData + sizeof(effect_param_t)),
|
||
| ... | ... | |
|
if(pContext->EffectType == LVM_EQUALIZER){
|
||
|
//ALOGV("\tEqualizer_command cmdCode Case: "
|
||
|
// "EFFECT_CMD_GET_PARAM start");
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize < (int) (sizeof(effect_param_t) + sizeof(int32_t))) {
|
||
|
ALOGV("\tLVM_ERROR : Equalizer_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_PARAM");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
|
p = (effect_param_t *)pReplyData;
|
||
|
int voffset = ((p->psize - 1) / sizeof(int32_t) + 1) * sizeof(int32_t);
|
||
|
p->status = android::Equalizer_getParameter(pContext,
|
||
|
p->data,
|
||
|
&p->vsize,
|
||
|
p->data + voffset);
|
||
|
*replySize = sizeof(effect_param_t) + voffset + p->vsize;
|
||
|
//ALOGV("\tEqualizer_command EFFECT_CMD_GET_PARAM *pCmdData %d, *replySize %d, "
|
||
|
// "*pReplyData %08x %08x",
|
||
|
// *(int32_t *)((char *)pCmdData + sizeof(effect_param_t)), *replySize,
|
||
| ... | ... | |
|
}
|
||
|
if(pContext->EffectType == LVM_VOLUME){
|
||
|
//ALOGV("\tVolume_command cmdCode Case: EFFECT_CMD_GET_PARAM start");
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize < (int) (sizeof(effect_param_t) + sizeof(int32_t))){
|
||
|
ALOGV("\tLVM_ERROR : Volume_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
|
p = (effect_param_t *)pReplyData;
|
||
|
int voffset = ((p->psize - 1) / sizeof(int32_t) + 1) * sizeof(int32_t);
|
||
|
p->status = android::Volume_getParameter(pContext,
|
||
|
(void *)p->data,
|
||
|
(size_t *)&p->vsize,
|
||
|
p->data + voffset);
|
||
|
*replySize = sizeof(effect_param_t) + voffset + p->vsize;
|
||
|
//ALOGV("\tVolume_command EFFECT_CMD_GET_PARAM "
|
||
|
// "*pCmdData %d, *replySize %d, *pReplyData %d ",
|
||
|
// *(int32_t *)((char *)pCmdData + sizeof(effect_param_t)),
|
||
|
// *replySize,
|
||
|
// *(int16_t *)((char *)pReplyData + sizeof(effect_param_t) + voffset));
|
||
|
}
|
||
|
*replySize = sizeof(effect_param_t) + voffset + p->vsize;
|
||
|
//ALOGV("\tEffect_command cmdCode Case: EFFECT_CMD_GET_PARAM end");
|
||
|
} break;
|
||
|
case EFFECT_CMD_SET_PARAM:{
|
||
| ... | ... | |
|
// *replySize,
|
||
|
// *(int16_t *)((char *)pCmdData + sizeof(effect_param_t) + sizeof(int32_t)));
|
||
|
if (pCmdData == NULL||
|
||
|
cmdSize != (int)(sizeof(effect_param_t) + sizeof(int32_t) +sizeof(int16_t))||
|
||
|
pReplyData == NULL||
|
||
|
*replySize != sizeof(int32_t)){
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize != (sizeof(effect_param_t) + sizeof(int32_t) +sizeof(int16_t)) ||
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) {
|
||
|
ALOGV("\tLVM_ERROR : BassBoost_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
// *replySize,
|
||
|
// *(int16_t *)((char *)pCmdData + sizeof(effect_param_t) + sizeof(int32_t)));
|
||
|
if (pCmdData == NULL||
|
||
|
cmdSize != (int)(sizeof(effect_param_t) + sizeof(int32_t) +sizeof(int16_t))||
|
||
|
pReplyData == NULL||
|
||
|
*replySize != sizeof(int32_t)){
|
||
|
if (pCmdData == NULL ||
|
||
|
// legal parameters are int16_t or int32_t
|
||
|
cmdSize > (sizeof(effect_param_t) + sizeof(int32_t) +sizeof(int32_t)) ||
|
||
|
cmdSize < (sizeof(effect_param_t) + sizeof(int32_t) +sizeof(int16_t)) ||
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Virtualizer_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
// *(int16_t *)((char *)pCmdData + sizeof(effect_param_t) + sizeof(int32_t)));
|
||
|
if (pCmdData == NULL || cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL || *replySize != sizeof(int32_t)) {
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Equalizer_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
// *replySize,
|
||
|
// *(int16_t *)((char *)pCmdData + sizeof(effect_param_t) +sizeof(int32_t)));
|
||
|
if ( pCmdData == NULL||
|
||
|
cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t))||
|
||
|
pReplyData == NULL||
|
||
|
*replySize != sizeof(int32_t)){
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize != sizeof(int32_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Volume_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
case EFFECT_CMD_ENABLE:
|
||
|
ALOGV("\tEffect_command cmdCode Case: EFFECT_CMD_ENABLE start");
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)){
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
ALOGV("\tLVM_ERROR : Effect_command cmdCode Case: EFFECT_CMD_ENABLE: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
case EFFECT_CMD_DISABLE:
|
||
|
//ALOGV("\tEffect_command cmdCode Case: EFFECT_CMD_DISABLE start");
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)){
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
ALOGV("\tLVM_ERROR : Effect_command cmdCode Case: EFFECT_CMD_DISABLE: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
case EFFECT_CMD_SET_DEVICE:
|
||
|
{
|
||
|
ALOGV("\tEffect_command cmdCode Case: EFFECT_CMD_SET_DEVICE start");
|
||
|
if (pCmdData == NULL){
|
||
|
ALOGV("\tLVM_ERROR : Effect_command cmdCode Case: EFFECT_CMD_SET_DEVICE: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
uint32_t device = *(uint32_t *)pCmdData;
|
||
|
if (pContext->EffectType == LVM_BASS_BOOST) {
|
||
| ... | ... | |
|
break;
|
||
|
}
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize != 2 * sizeof(uint32_t)) {
|
||
|
if (pCmdData == NULL || cmdSize != 2 * sizeof(uint32_t) || pReplyData == NULL ||
|
||
|
replySize == NULL || *replySize < 2*sizeof(int32_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Effect_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_VOLUME: ERROR");
|
||
|
return -EINVAL;
|
||
| media/libeffects/lvm/wrapper/Reverb/EffectReverb.cpp | ||
|---|---|---|
|
} /* end EffectQueryEffect */
|
||
|
extern "C" int EffectCreate(const effect_uuid_t *uuid,
|
||
|
int32_t sessionId,
|
||
|
int32_t ioId,
|
||
|
int32_t sessionId __unused,
|
||
|
int32_t ioId __unused,
|
||
|
effect_handle_t *pHandle){
|
||
|
int ret;
|
||
|
int i;
|
||
| ... | ... | |
|
//ALOGV("\tReverb_command cmdCode Case: "
|
||
|
// "EFFECT_CMD_INIT start");
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)){
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)){
|
||
|
ALOGV("\tLVM_ERROR : Reverb_command cmdCode Case: "
|
||
|
"EFFECT_CMD_INIT: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
case EFFECT_CMD_SET_CONFIG:
|
||
|
//ALOGV("\tReverb_command cmdCode Case: "
|
||
|
// "EFFECT_CMD_SET_CONFIG start");
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize != sizeof(effect_config_t) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize != sizeof(int)) {
|
||
|
if (pCmdData == NULL || cmdSize != sizeof(effect_config_t) ||
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
ALOGV("\tLVM_ERROR : Reverb_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_CONFIG: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
break;
|
||
|
case EFFECT_CMD_GET_CONFIG:
|
||
|
if (pReplyData == NULL ||
|
||
|
*replySize != sizeof(effect_config_t)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(effect_config_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Reverb_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_CONFIG: ERROR");
|
||
|
return -EINVAL;
|
||
| ... | ... | |
|
case EFFECT_CMD_GET_PARAM:{
|
||
|
//ALOGV("\tReverb_command cmdCode Case: "
|
||
|
// "EFFECT_CMD_GET_PARAM start");
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize < (int) (sizeof(effect_param_t) + sizeof(int32_t))){
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
if (pCmdData == NULL || cmdSize < sizeof(effect_param_t) ||
|
||
|
cmdSize < (sizeof(effect_param_t) + p->psize) ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize < (sizeof(effect_param_t) + p->psize)) {
|
||
|
ALOGV("\tLVM_ERROR : Reverb_command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
| ... | ... | |
|
// *replySize,
|
||
|
// *(int16_t *)((char *)pCmdData + sizeof(effect_param_t) + sizeof(int32_t)));
|
||
|
if (pCmdData == NULL || (cmdSize < (int)(sizeof(effect_param_t) + sizeof(int32_t)))
|
||
|
|| pReplyData == NULL || *replySize != (int)sizeof(int32_t)) {
|
||
|
if (pCmdData == NULL || (cmdSize < (sizeof(effect_param_t) + sizeof(int32_t))) ||
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) {
|
||
|
ALOGV("\tLVM_ERROR : Reverb_command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
| media/libeffects/preprocessing/PreProcessing.cpp | ||
|---|---|---|
|
return 0;
|
||
|
}
|
||
|
int NsGetParameter(preproc_effect_t *effect,
|
||
|
void *pParam,
|
||
|
size_t *pValueSize,
|
||
|
void *pValue)
|
||
|
int NsGetParameter(preproc_effect_t *effect __unused,
|
||
|
void *pParam __unused,
|
||
|
uint32_t *pValueSize __unused,
|
||
|
void *pValue __unused)
|
||
|
{
|
||
|
int status = 0;
|
||
|
return status;
|
||
|
}
|
||
|
int NsSetParameter (preproc_effect_t *effect, void *pParam, void *pValue)
|
||
|
int NsSetParameter (preproc_effect_t *effect __unused,
|
||
|
void *pParam __unused,
|
||
|
void *pValue __unused)
|
||
|
{
|
||
|
int status = 0;
|
||
|
return status;
|
||
| ... | ... | |
|
}
|
||
|
break;
|
||
|
case EFFECT_CMD_GET_PARAM:{
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize < (int)sizeof(effect_param_t) ||
|
||
|
pReplyData == NULL ||
|
||
|
*replySize < (int)sizeof(effect_param_t)){
|
||
|
case EFFECT_CMD_GET_PARAM: {
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
if (pCmdData == NULL || cmdSize < sizeof(effect_param_t) ||
|
||
|
cmdSize < (sizeof(effect_param_t) + p->psize) ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize < (sizeof(effect_param_t) + p->psize)){
|
||
|
ALOGV("PreProcessingFx_Command cmdCode Case: "
|
||
|
"EFFECT_CMD_GET_PARAM: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
effect_param_t *p = (effect_param_t *)pCmdData;
|
||
|
memcpy(pReplyData, pCmdData, sizeof(effect_param_t) + p->psize);
|
||
| ... | ... | |
|
case EFFECT_CMD_SET_PARAM:{
|
||
|
if (pCmdData == NULL||
|
||
|
cmdSize < (int)sizeof(effect_param_t) ||
|
||
|
pReplyData == NULL ||
|
||
|
cmdSize < sizeof(effect_param_t) ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize != sizeof(int32_t)){
|
||
|
ALOGV("PreProcessingFx_Command cmdCode Case: "
|
||
|
"EFFECT_CMD_SET_PARAM: ERROR");
|
||
| ... | ... | |
|
} break;
|
||
|
case EFFECT_CMD_ENABLE:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)){
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)){
|
||
|
ALOGV("PreProcessingFx_Command cmdCode Case: EFFECT_CMD_ENABLE: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
break;
|
||
|
case EFFECT_CMD_DISABLE:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)){
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)){
|
||
|
ALOGV("PreProcessingFx_Command cmdCode Case: EFFECT_CMD_DISABLE: ERROR");
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
int PreProcessingFx_ProcessReverse(effect_handle_t self,
|
||
|
audio_buffer_t *inBuffer,
|
||
|
audio_buffer_t *outBuffer)
|
||
|
audio_buffer_t *outBuffer __unused)
|
||
|
{
|
||
|
preproc_effect_t * effect = (preproc_effect_t *)self;
|
||
|
int status = 0;
|
||
| media/libeffects/visualizer/EffectVisualizer.cpp | ||
|---|---|---|
|
switch (cmdCode) {
|
||
|
case EFFECT_CMD_INIT:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
*(int *) pReplyData = Visualizer_init(pContext);
|
||
|
break;
|
||
|
case EFFECT_CMD_SET_CONFIG:
|
||
|
if (pCmdData == NULL || cmdSize != sizeof(effect_config_t)
|
||
|
|| pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
|| pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
*(int *) pReplyData = Visualizer_setConfig(pContext,
|
||
|
(effect_config_t *) pCmdData);
|
||
|
break;
|
||
|
case EFFECT_CMD_GET_CONFIG:
|
||
|
if (pReplyData == NULL ||
|
||
|
if (pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize != sizeof(effect_config_t)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
Visualizer_reset(pContext);
|
||
|
break;
|
||
|
case EFFECT_CMD_ENABLE:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
if (pContext->mState != VISUALIZER_STATE_INITIALIZED) {
|
||
| ... | ... | |
|
*(int *)pReplyData = 0;
|
||
|
break;
|
||
|
case EFFECT_CMD_DISABLE:
|
||
|
if (pReplyData == NULL || *replySize != sizeof(int)) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != sizeof(int)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
if (pContext->mState != VISUALIZER_STATE_ACTIVE) {
|
||
| ... | ... | |
|
case EFFECT_CMD_GET_PARAM: {
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t)) ||
|
||
|
pReplyData == NULL ||
|
||
|
pReplyData == NULL || replySize == NULL ||
|
||
|
*replySize < (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t))) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
| ... | ... | |
|
case EFFECT_CMD_SET_PARAM: {
|
||
|
if (pCmdData == NULL ||
|
||
|
cmdSize != (int)(sizeof(effect_param_t) + sizeof(uint32_t) + sizeof(uint32_t)) ||
|
||
|
pReplyData == NULL || *replySize != sizeof(int32_t)) {
|
||
|
pReplyData == NULL || replySize == NULL || *replySize != sizeof(int32_t)) {
|
||
|
return -EINVAL;
|
||
|
}
|
||
|
*(int32_t *)pReplyData = 0;
|
||
| ... | ... | |
|
case VISUALIZER_CMD_CAPTURE:
|
||
|
if (pReplyData == NULL || *replySize != pContext->mCaptureSize) {
|
||
|
if (pReplyData == NULL || replySize == NULL || *replySize != pContext->mCaptureSize) {
|
||
|
ALOGV("VISUALIZER_CMD_CAPTURE() error *replySize %d pContext->mCaptureSize %d",
|
||
|
*replySize, pContext->mCaptureSize);
|
||
|
return -EINVAL;
|
||