summaryrefslogtreecommitdiff
path: root/omx
diff options
context:
space:
mode:
authorMasaki Sato <masaki.sato@motorola.com>2009-08-10 14:04:33 -0500
committerRebecca Schultz Zavin <rebecca@android.com>2009-08-11 15:26:33 -0700
commit21f301bd17942e35730d802c7fdc5e5b0e7d31f4 (patch)
tree3c872d0f3f7d1d0f446b523fbe8002c274ae2521 /omx
parentb4c4a90655e277a89ed2cc3704e9f008b311ea0f (diff)
downloadomap3-21f301bd17942e35730d802c7fdc5e5b0e7d31f4.tar.gz
AAC FF and short playback fix
Diffstat (limited to 'omx')
-rw-r--r--omx/audio/src/openmax_il/aac_dec/inc/OMX_AacDec_Utils.h1
-rw-r--r--omx/audio/src/openmax_il/aac_dec/src/OMX_AacDec_Utils.c4
-rw-r--r--omx/audio/src/openmax_il/aac_dec/src/OMX_AacDecoder.c4
3 files changed, 6 insertions, 3 deletions
diff --git a/omx/audio/src/openmax_il/aac_dec/inc/OMX_AacDec_Utils.h b/omx/audio/src/openmax_il/aac_dec/inc/OMX_AacDec_Utils.h
index 276fcfc..36fe56e 100644
--- a/omx/audio/src/openmax_il/aac_dec/inc/OMX_AacDec_Utils.h
+++ b/omx/audio/src/openmax_il/aac_dec/inc/OMX_AacDec_Utils.h
@@ -648,6 +648,7 @@ typedef struct USN_AudioCodecParams{
/* ==================================================================== */
typedef struct {
unsigned long ulFrameCount;
+ unsigned long isLastBuffer;
}AACDEC_UAlgOutBufParamStruct;
typedef struct AACDEC_UALGParams{
diff --git a/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDec_Utils.c b/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDec_Utils.c
index 27971f6..c92ce46 100644
--- a/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDec_Utils.c
+++ b/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDec_Utils.c
@@ -325,6 +325,7 @@ OMX_ERRORTYPE AACDEC_Fill_LCMLInitParams(OMX_HANDLETYPE pComponent,
pTemp_char += EXTRA_BYTES;
pTemp_lcml->pOpParam = (AACDEC_UAlgOutBufParamStruct*)pTemp_char;
pTemp_lcml->pOpParam->ulFrameCount = DONT_CARE;
+ pTemp_lcml->pOpParam->isLastBuffer = 0;
pTemp->nFlags = NORMAL_BUFFER_AACDEC;
((AACDEC_COMPONENT_PRIVATE *)pTemp->pPlatformPrivate)->pHandle = pHandle;
@@ -2543,7 +2544,7 @@ OMX_ERRORTYPE AACDEC_LCML_Callback (TUsnCodecEvent event,void * args [10])
pLcmlHdr->pBufHdr->hMarkTargetComponent = pComponentPrivate->hMarkTargetComponent;
}
pComponentPrivate->num_Reclaimed_Op_Buff++;
- if (pComponentPrivate->bIsEOFSent){
+ if (pLcmlHdr->pOpParam->isLastBuffer){
OMX_PRBUFFER2(pComponentPrivate->dbg, "%d : UTIL: Adding EOS flag to the output buffer\n",__LINE__);
pLcmlHdr->pBufHdr->nFlags |= OMX_BUFFERFLAG_EOS;
OMX_PRBUFFER2(pComponentPrivate->dbg, "%d : UTIL:: pLcmlHdr->pBufHdr = %p\n",__LINE__,pLcmlHdr->pBufHdr);
@@ -3701,6 +3702,7 @@ OMX_ERRORTYPE AACDECFill_LCMLInitParamsEx(OMX_HANDLETYPE pComponent,OMX_U32 inde
pTemp_lcml->pOpParam = (AACDEC_UAlgOutBufParamStruct*)ptr;
pTemp_lcml->pOpParam->ulFrameCount = DONT_CARE;
+ pTemp_lcml->pOpParam->isLastBuffer = 0;
pTemp->nFlags = NORMAL_BUFFER_AACDEC;
((AACDEC_COMPONENT_PRIVATE *)pTemp->pPlatformPrivate)->pHandle = pHandle;
diff --git a/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDecoder.c b/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDecoder.c
index 67a555b..c4849fa 100644
--- a/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDecoder.c
+++ b/omx/audio/src/openmax_il/aac_dec/src/OMX_AacDecoder.c
@@ -252,8 +252,8 @@ OMX_ERRORTYPE OMX_ComponentInit (OMX_HANDLETYPE hComp)
pComponentPrivate->iPVCapabilityFlags.iOMXComponentSupportsExternalOutputBufferAlloc = OMX_FALSE;
pComponentPrivate->iPVCapabilityFlags.iOMXComponentSupportsExternalInputBufferAlloc = OMX_FALSE;
pComponentPrivate->iPVCapabilityFlags.iOMXComponentSupportsMovableInputBuffers = OMX_FALSE;
- pComponentPrivate->iPVCapabilityFlags.iOMXComponentSupportsPartialFrames = OMX_TRUE;
- pComponentPrivate->iPVCapabilityFlags.iOMXComponentCanHandleIncompleteFrames = OMX_TRUE;
+ pComponentPrivate->iPVCapabilityFlags.iOMXComponentSupportsPartialFrames = OMX_FALSE;
+ pComponentPrivate->iPVCapabilityFlags.iOMXComponentCanHandleIncompleteFrames = OMX_FALSE;
#endif