summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2011-06-08 10:35:19 -0700
committerJames Dong <jdong@google.com>2011-06-08 10:38:26 -0700
commit7d6143a9f01418e84db285b0202d8b1657bb6e8e (patch)
tree8aa8468703bfee0d291041a1d63f72074fb7c7f5
parentb5c462f801ec0a0b9dec99232b46f91e91984938 (diff)
downloadframeworks_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.cpp19
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");