diff options
author | James Dong <jdong@google.com> | 2011-06-08 10:35:19 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2011-06-08 10:38:26 -0700 |
commit | 7d6143a9f01418e84db285b0202d8b1657bb6e8e (patch) | |
tree | 8aa8468703bfee0d291041a1d63f72074fb7c7f5 | |
parent | b5c462f801ec0a0b9dec99232b46f91e91984938 (diff) | |
download | frameworks_base-7d6143a9f01418e84db285b0202d8b1657bb6e8e.zip frameworks_base-7d6143a9f01418e84db285b0202d8b1657bb6e8e.tar.gz frameworks_base-7d6143a9f01418e84db285b0202d8b1657bb6e8e.tar.bz2 |
Call storeMetaDataInVideoBuffers() before get/setParameters() on index OMX_IndexParamPortDefinition
This can potentially save lot of memory for video recording use case since the video encoder
can advertise a much smaller size of the input buffers which are allocated by SF by default.
Change-Id: I582a356cd02c7852e13f2713d90ad5f1eb43177d
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index 9c69a6f..72d0d08 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -1643,25 +1643,26 @@ status_t OMXCodec::allocateBuffersOnPort(OMX_U32 portIndex) { return PERMISSION_DENIED; } + status_t err = OK; + if (mIsMetaDataStoredInVideoBuffers && portIndex == kPortIndexInput) { + err = mOMX->storeMetaDataInBuffers(mNode, kPortIndexInput, OMX_TRUE); + if (err != OK) { + LOGE("Storing meta data in video buffers is not supported"); + return err; + } + } + OMX_PARAM_PORTDEFINITIONTYPE def; InitOMXParams(&def); def.nPortIndex = portIndex; - status_t err = mOMX->getParameter( + err = mOMX->getParameter( mNode, OMX_IndexParamPortDefinition, &def, sizeof(def)); if (err != OK) { return err; } - if (mIsMetaDataStoredInVideoBuffers && portIndex == kPortIndexInput) { - err = mOMX->storeMetaDataInBuffers(mNode, kPortIndexInput, OMX_TRUE); - if (err != OK) { - LOGE("Storing meta data in video buffers is not supported"); - return err; - } - } - CODEC_LOGI("allocating %lu buffers of size %lu on %s port", def.nBufferCountActual, def.nBufferSize, portIndex == kPortIndexInput ? "input" : "output"); |