diff options
author | James Dong <jdong@google.com> | 2010-06-11 16:21:05 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-06-11 16:23:46 -0700 |
commit | 0f8e72a03dc50f6d6b81aa87803ea558fe4f7b6c (patch) | |
tree | e28d98475bce8f10c0961fbc2a77803349fb7c93 | |
parent | a0b2785f72203860a685b5acbe3c7d4a11e61d4d (diff) | |
download | omap3-0f8e72a03dc50f6d6b81aa87803ea558fe4f7b6c.tar.gz |
Don't overwrite read-only argument in the implementation for OMX_SetParameter$
Also, comment out the code does not apply to android platform (direct /dev/ access)
Change-Id: I2ca7736fb67e60ed4c31ec77901660b5032c41cb
-rw-r--r-- | omx/audio/src/openmax_il/nbamr_enc/src/OMX_AmrEncoder.c | 32 | ||||
-rw-r--r-- | omx/audio/src/openmax_il/wbamr_enc/src/OMX_WbAmrEncoder.c | 46 |
2 files changed, 41 insertions, 37 deletions
diff --git a/omx/audio/src/openmax_il/nbamr_enc/src/OMX_AmrEncoder.c b/omx/audio/src/openmax_il/nbamr_enc/src/OMX_AmrEncoder.c index a7fc638..2d825e2 100644 --- a/omx/audio/src/openmax_il/nbamr_enc/src/OMX_AmrEncoder.c +++ b/omx/audio/src/openmax_il/nbamr_enc/src/OMX_AmrEncoder.c @@ -1126,51 +1126,53 @@ static OMX_ERRORTYPE SetParameter (OMX_HANDLETYPE hComp, memcpy(((AMRENC_COMPONENT_PRIVATE*) pHandle->pComponentPrivate)->pcmParams, pCompAmrParam, sizeof(OMX_AUDIO_PARAM_AMRTYPE)); } else if (pCompAmrParam->nPortIndex == 1) { /* 1 means Output port */ + if (((AMRENC_COMPONENT_PRIVATE *) pHandle->pComponentPrivate)->amrParams == NULL) { + eError = OMX_ErrorBadParameter; + goto EXIT; + } + + memcpy(((AMRENC_COMPONENT_PRIVATE *) + pHandle->pComponentPrivate)->amrParams, pCompAmrParam, sizeof(OMX_AUDIO_PARAM_AMRTYPE)); + switch (pCompAmrParam->eAMRBandMode) { case OMX_AUDIO_AMRBandModeNB7: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR122; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR122; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR122 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB6: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR102; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR102; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR102 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB5: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR795; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR795; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR795 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB4: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR74; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR74; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR74 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB3: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR67; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR67; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR67 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB2: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR59; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR59; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR59 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB1: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR515; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR515; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR515 \n",__LINE__); break; case OMX_AUDIO_AMRBandModeNB0: - pCompAmrParam->eAMRBandMode = SN_AUDIO_475; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_475; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode = SN_AUDIO_BR475 \n",__LINE__); break; default: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR122; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR122; OMX_PRDSP2(pComponentPrivate->dbg, "%d :: SetParameter OMX_IndexParamAudioAmr:: pCompAmrParam->eAMRBandMode =DEFAULT!! SN_AUDIO_BR122 \n",__LINE__); break; } - if (((AMRENC_COMPONENT_PRIVATE *) pHandle->pComponentPrivate)->amrParams == NULL) { - eError = OMX_ErrorBadParameter; - goto EXIT; - } - memcpy(((AMRENC_COMPONENT_PRIVATE *) - pHandle->pComponentPrivate)->amrParams, pCompAmrParam, sizeof(OMX_AUDIO_PARAM_AMRTYPE)); if (pCompAmrParam->eAMRFrameFormat == OMX_AUDIO_AMRFrameFormatConformance) { pComponentPrivate->frameMode = NBAMRENC_FORMATCONFORMANCE; } diff --git a/omx/audio/src/openmax_il/wbamr_enc/src/OMX_WbAmrEncoder.c b/omx/audio/src/openmax_il/wbamr_enc/src/OMX_WbAmrEncoder.c index 7fc1b8d..797dd64 100644 --- a/omx/audio/src/openmax_il/wbamr_enc/src/OMX_WbAmrEncoder.c +++ b/omx/audio/src/openmax_il/wbamr_enc/src/OMX_WbAmrEncoder.c @@ -167,11 +167,12 @@ static OMX_ERRORTYPE GetExtensionIndex(OMX_IN OMX_HANDLETYPE hComponent, static OMX_ERRORTYPE ComponentRoleEnum(OMX_IN OMX_HANDLETYPE hComponent, OMX_OUT OMX_U8 *cRole, OMX_IN OMX_U32 nIndex); - +#ifdef DSP_RENDERING_ON /* interface with audio manager*/ #define FIFO1 "/dev/fifo.1" #define FIFO2 "/dev/fifo.2" #define PERMS 0666 +#endif /*-------------------------------------------------------------------*/ /** @@ -507,7 +508,7 @@ ComponentThread %d", eError); #endif #ifndef UNDER_CE - +#ifdef DSP_RENDERING_ON if ((pComponentPrivate->fdwrite = open(FIFO1, O_WRONLY)) < 0) { OMX_PRCOMM4(pComponentPrivate->dbg, "Failure to open Write pipe"); } @@ -515,7 +516,7 @@ ComponentThread %d", eError); if ((pComponentPrivate->fdread = open(FIFO2, O_RDONLY)) < 0) { OMX_PRCOMM4(pComponentPrivate->dbg, "Failure to open Read pipe"); } - +#endif #endif pComponentPrivate->nPendingStateChangeRequests = 0; @@ -1106,48 +1107,49 @@ static OMX_ERRORTYPE SetParameter (OMX_HANDLETYPE hComp, pCompAmrParam, sizeof(OMX_AUDIO_PARAM_AMRTYPE)); } else if (pCompAmrParam->nPortIndex == 1) { /* 1 means Output port */ + if (((WBAMRENC_COMPONENT_PRIVATE *)pHandle->pComponentPrivate)->amrParams == NULL) { + eError = OMX_ErrorBadParameter; + break; + } + memcpy(((WBAMRENC_COMPONENT_PRIVATE *) + pHandle->pComponentPrivate)->amrParams, + pCompAmrParam, + sizeof(OMX_AUDIO_PARAM_AMRTYPE)); + + switch (pCompAmrParam->eAMRBandMode) { case OMX_AUDIO_AMRBandModeWB0: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR660; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR660; break; case OMX_AUDIO_AMRBandModeWB1: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR885; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR885; break; case OMX_AUDIO_AMRBandModeWB2: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR1265; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR1265; break; case OMX_AUDIO_AMRBandModeWB3: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR1425; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR1425; break; case OMX_AUDIO_AMRBandModeWB4: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR1585; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR1585; break; case OMX_AUDIO_AMRBandModeWB5: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR1825; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR1825; break; case OMX_AUDIO_AMRBandModeWB6: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR1985; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR1985; break; case OMX_AUDIO_AMRBandModeWB7: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR2305; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR2305; break; case OMX_AUDIO_AMRBandModeWB8: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR2385; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR2385; break; default: - pCompAmrParam->eAMRBandMode = SN_AUDIO_BR660; + pComponentPrivate->amrParams->eAMRBandMode = SN_AUDIO_BR660; break; } - if (((WBAMRENC_COMPONENT_PRIVATE *)pHandle->pComponentPrivate)->amrParams == NULL) { - eError = OMX_ErrorBadParameter; - break; - } - memcpy(((WBAMRENC_COMPONENT_PRIVATE *) - pHandle->pComponentPrivate)->amrParams, - pCompAmrParam, - sizeof(OMX_AUDIO_PARAM_AMRTYPE)); - if (pCompAmrParam->eAMRFrameFormat == OMX_AUDIO_AMRFrameFormatConformance) { pComponentPrivate->frameMode = WBAMRENC_FORMATCONFORMANCE; } else if (pCompAmrParam->eAMRFrameFormat == OMX_AUDIO_AMRFrameFormatFSF) { |