diff options
| author | Zhao Liang <leo.zhao@intel.com> | 2013-04-16 14:21:00 +0800 |
|---|---|---|
| committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:51 -0700 |
| commit | e917b1d0f18861d640ff4bc311d0e4648d579e74 (patch) | |
| tree | 5943ccceb2a7222fddbfe81591ccf36269e34956 /videocodec/OMXVideoEncoderBase.cpp | |
| parent | c6e44824f54f833b3a5a77afc3f68ed6db36a3bc (diff) | |
| download | android_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.cpp | 11 |
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; |
