From 7d6143a9f01418e84db285b0202d8b1657bb6e8e Mon Sep 17 00:00:00 2001 From: James Dong Date: Wed, 8 Jun 2011 10:35:19 -0700 Subject: 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 --- media/libstagefright/OMXCodec.cpp | 19 ++++++++++--------- 1 file 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"); -- cgit v1.1