diff options
author | Rudolf Tammekivi <rtammekivi@gmail.com> | 2014-02-08 23:42:56 +0200 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2014-11-19 05:16:02 +0000 |
commit | a755a9e946b33965e4d2c63cb40d4b286c709d86 (patch) | |
tree | 653c1d87a1bc29903b9c5585c7cffd323442bb5a | |
parent | 5038d532daa4b4dd39c9a28f38a07c2326742c05 (diff) | |
download | android_hardware_qcom_media-a755a9e946b33965e4d2c63cb40d4b286c709d86.tar.gz android_hardware_qcom_media-a755a9e946b33965e4d2c63cb40d4b286c709d86.tar.bz2 android_hardware_qcom_media-a755a9e946b33965e4d2c63cb40d4b286c709d86.zip |
mm-video: vdec: Fix memory leak in color converter.
When OMX is deinitialized, the color converter buffers stay intact, causing the
available memory pool to have less continuous space available.
Change-Id: Icc2d730d540bae153c9fde36a6f4267ff3f9f088
-rw-r--r-- | mm-video/vidc/vdec/inc/omx_vdec.h | 4 | ||||
-rw-r--r-- | mm-video/vidc/vdec/src/omx_vdec.cpp | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/mm-video/vidc/vdec/inc/omx_vdec.h b/mm-video/vidc/vdec/inc/omx_vdec.h index 416161d5..bde02481 100644 --- a/mm-video/vidc/vdec/inc/omx_vdec.h +++ b/mm-video/vidc/vdec/inc/omx_vdec.h @@ -874,8 +874,9 @@ private: OMX_BUFFERHEADERTYPE **bufferHdr,OMX_U32 port,OMX_PTR appData, OMX_U32 bytes); OMX_ERRORTYPE free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr); - private: #define MAX_COUNT 32 + OMX_BUFFERHEADERTYPE m_out_mem_ptr_client[MAX_COUNT]; + private: omx_vdec *omx; bool enabled; OMX_COLOR_FORMATTYPE ColorFormat; @@ -889,7 +890,6 @@ private: OMX_QCOM_PLATFORM_PRIVATE_LIST m_platform_list_client[MAX_COUNT]; OMX_QCOM_PLATFORM_PRIVATE_ENTRY m_platform_entry_client[MAX_COUNT]; OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO m_pmem_info_client[MAX_COUNT]; - OMX_BUFFERHEADERTYPE m_out_mem_ptr_client[MAX_COUNT]; struct vdec_ion op_buf_ion_info[MAX_COUNT]; unsigned char *pmem_baseaddress[MAX_COUNT]; int pmem_fd[MAX_COUNT]; diff --git a/mm-video/vidc/vdec/src/omx_vdec.cpp b/mm-video/vidc/vdec/src/omx_vdec.cpp index 55ac1bbb..9ccdc6b8 100644 --- a/mm-video/vidc/vdec/src/omx_vdec.cpp +++ b/mm-video/vidc/vdec/src/omx_vdec.cpp @@ -6407,6 +6407,7 @@ OMX_ERRORTYPE omx_vdec::component_deinit(OMX_IN OMX_HANDLETYPE hComp) for (i=0; i < drv_ctx.op_buf.actualcount; i++ ) { free_output_buffer (&m_out_mem_ptr[i]); + client_buffers.free_output_buffer (&client_buffers.m_out_mem_ptr_client[i]); #ifdef _ANDROID_ICS_ if (m_enable_android_native_buffers) { |