aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/OMXVideoEncoderBase.cpp
diff options
context:
space:
mode:
authorZhao Liang <leo.zhao@intel.com>2013-04-16 14:21:00 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:51 -0700
commite917b1d0f18861d640ff4bc311d0e4648d579e74 (patch)
tree5943ccceb2a7222fddbfe81591ccf36269e34956 /videocodec/OMXVideoEncoderBase.cpp
parentc6e44824f54f833b3a5a77afc3f68ed6db36a3bc (diff)
downloadandroid_hardware_intel_common_omx-components-e917b1d0f18861d640ff4bc311d0e4648d579e74.tar.gz
android_hardware_intel_common_omx-components-e917b1d0f18861d640ff4bc311d0e4648d579e74.tar.bz2
android_hardware_intel_common_omx-components-e917b1d0f18861d640ff4bc311d0e4648d579e74.zip
Fix wrong IntelMetadataBuffer generating usage, and avoid segment fault during live effect recording
BZ: 100374 IntelMetadataBuffer Serialze will output internal memory ptr instead of copying data out. Change-Id: I0e5c3ea87ad01816cae4f12fa167d85b923169de Signed-off-by: Zhao Liang <leo.zhao@intel.com> Reviewed-on: http://android.intel.com:8080/102009 Reviewed-by: Yuan, Shengquan <shengquan.yuan@intel.com> Reviewed-by: cactus <cactus@intel.com> Reviewed-by: Guo, Nana N <nana.n.guo@intel.com> Reviewed-by: Shi, PingX <pingx.shi@intel.com> Tested-by: Shi, PingX <pingx.shi@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'videocodec/OMXVideoEncoderBase.cpp')
-rw-r--r--videocodec/OMXVideoEncoderBase.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/videocodec/OMXVideoEncoderBase.cpp b/videocodec/OMXVideoEncoderBase.cpp
index 1d1fb01..829752c 100644
--- a/videocodec/OMXVideoEncoderBase.cpp
+++ b/videocodec/OMXVideoEncoderBase.cpp
@@ -922,10 +922,13 @@ int32_t OMXVideoEncoderBase::rgba2nv12conversion(OMX_BUFFERHEADERTYPE *pBuffer)
#endif
// Wrap destination buffer handle to encoder's input format
- IntelMetadataBuffer *imb = new IntelMetadataBuffer(MetadataBufferTypeGrallocSource,
- (int32_t)mBufferHandleMaps[i].mHandle);
- imb->Serialize((uint8_t*&)pBuffer->pBuffer,
- (uint32_t&)pBuffer->nFilledLen);
+ uint8_t* metadata = NULL;
+ uint32_t len = 0;
+
+ IntelMetadataBuffer imb(MetadataBufferTypeGrallocSource, (int32_t)mBufferHandleMaps[i].mHandle);
+ imb.Serialize(metadata, len);
+ memcpy(pBuffer->pBuffer,metadata, len);
+ pBuffer->nFilledLen = len;
return i;