summaryrefslogtreecommitdiffstats
path: root/domx
diff options
context:
space:
mode:
authorDevaraj Rangasamy <dev@ti.com>2011-09-22 16:45:10 -0700
committerIliyan Malchev <malchev@google.com>2011-09-22 17:08:11 -0700
commitb471a4ea8699f7444612aa9e00fd2724e83a8d08 (patch)
tree72c20ebe6b7bb67b0451988a0bd802d797719c86 /domx
parente96add2500205006f27fbb85f6898b5b9f618ddd (diff)
downloadhardware_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.c21
-rw-r--r--domx/omx_proxy_component/omx_mpeg4_enc/src/omx_proxy_mpeg4enc.c22
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;