diff options
author | Devaraj Rangasamy <dev@ti.com> | 2011-09-22 16:45:10 -0700 |
---|---|---|
committer | Iliyan Malchev <malchev@google.com> | 2011-09-22 17:08:11 -0700 |
commit | b471a4ea8699f7444612aa9e00fd2724e83a8d08 (patch) | |
tree | 72c20ebe6b7bb67b0451988a0bd802d797719c86 /domx | |
parent | e96add2500205006f27fbb85f6898b5b9f618ddd (diff) | |
download | hardware_ti_omap4xxx-b471a4ea8699f7444612aa9e00fd2724e83a8d08.zip hardware_ti_omap4xxx-b471a4ea8699f7444612aa9e00fd2724e83a8d08.tar.gz hardware_ti_omap4xxx-b471a4ea8699f7444612aa9e00fd2724e83a8d08.tar.bz2 |
DOMX: H264ENC,MPEG4ENC: Fix file-descriptor leak issue
Fixes b/5360550
H264,MPEG4 Encoder proxies is not releasing pipe on
component deinit during encode usecase exit.
Patchset2:
- removed redundant macro
Patchset3:
- added mpeg4-enc fix too
Change-Id: I1bf9b4bd85fdee7ced74da5918d370624c8c9c43
Signed-off-by: Devaraj Rangasamy <dev@ti.com>
Diffstat (limited to 'domx')
-rw-r--r-- | domx/omx_proxy_component/omx_h264_enc/src/omx_proxy_h264enc.c | 21 | ||||
-rw-r--r-- | domx/omx_proxy_component/omx_mpeg4_enc/src/omx_proxy_mpeg4enc.c | 22 |
2 files changed, 22 insertions, 21 deletions
diff --git a/domx/omx_proxy_component/omx_h264_enc/src/omx_proxy_h264enc.c b/domx/omx_proxy_component/omx_h264_enc/src/omx_proxy_h264enc.c index 21eab68..bb17cba 100644 --- a/domx/omx_proxy_component/omx_h264_enc/src/omx_proxy_h264enc.c +++ b/domx/omx_proxy_component/omx_h264_enc/src/omx_proxy_h264enc.c @@ -809,6 +809,17 @@ OMX_ERRORTYPE LOCAL_PROXY_H264E_ComponentDeInit(OMX_HANDLETYPE hComponent) pCompPrv = (PROXY_COMPONENT_PRIVATE *) hComp->pComponentPrivate; pProxy = (OMX_PROXY_H264E_PRIVATE *) pCompPrv->pCompProxyPrv; + if(pProxy->hBufPipe != NULL) + { + eOSALStatus = TIMM_OSAL_DeletePipe(pProxy->hBufPipe); + pProxy->hBufPipe = NULL; + + if(eOSALStatus != TIMM_OSAL_ERR_NONE) + { + DOMX_ERROR("Pipe deletion failed"); + } + } + if(pProxy->bAndroidOpaqueFormat == OMX_TRUE) { /* Cleanup internal buffers in pipe if not freed on FreeBuffer */ @@ -821,16 +832,6 @@ OMX_ERRORTYPE LOCAL_PROXY_H264E_ComponentDeInit(OMX_HANDLETYPE hComponent) } } - if(pProxy->hBufPipe != NULL) - { - eOSALStatus = TIMM_OSAL_DeletePipe(pProxy->hBufPipe); - pProxy->hBufPipe = NULL; - - if(eOSALStatus != TIMM_OSAL_ERR_NONE) - { - DOMX_ERROR("Pipe deletion failed"); - } - } COLORCONVERT_close(pProxy->hCC,pCompPrv); pProxy->bAndroidOpaqueFormat = OMX_FALSE; diff --git a/domx/omx_proxy_component/omx_mpeg4_enc/src/omx_proxy_mpeg4enc.c b/domx/omx_proxy_component/omx_mpeg4_enc/src/omx_proxy_mpeg4enc.c index d70f9c1..b49700e 100644 --- a/domx/omx_proxy_component/omx_mpeg4_enc/src/omx_proxy_mpeg4enc.c +++ b/domx/omx_proxy_component/omx_mpeg4_enc/src/omx_proxy_mpeg4enc.c @@ -773,6 +773,17 @@ OMX_ERRORTYPE LOCAL_PROXY_MPEG4E_ComponentDeInit(OMX_HANDLETYPE hComponent) pCompPrv = (PROXY_COMPONENT_PRIVATE *) hComp->pComponentPrivate; pProxy = (OMX_PROXY_MPEG4E_PRIVATE *) pCompPrv->pCompProxyPrv; + if(pProxy->hBufPipe != NULL) + { + eOSALStatus = TIMM_OSAL_DeletePipe(pProxy->hBufPipe); + pProxy->hBufPipe = NULL; + + if(eOSALStatus != TIMM_OSAL_ERR_NONE) + { + DOMX_ERROR("Pipe deletion failed"); + } + } + if(pProxy->bAndroidOpaqueFormat == OMX_TRUE) { /* Cleanup internal buffers in pipe if not freed on FreeBuffer */ @@ -785,17 +796,6 @@ OMX_ERRORTYPE LOCAL_PROXY_MPEG4E_ComponentDeInit(OMX_HANDLETYPE hComponent) } } - if(pProxy->hBufPipe != NULL) - { - eOSALStatus = TIMM_OSAL_DeletePipe(pProxy->hBufPipe); - pProxy->hBufPipe = NULL; - - if(eOSALStatus != TIMM_OSAL_ERR_NONE) - { - DOMX_ERROR("Pipe deletion failed"); - } - } - COLORCONVERT_close(pProxy->hCC,pCompPrv); pProxy->bAndroidOpaqueFormat = OMX_FALSE; |