Merge "Decoder: Handle dec_hdl memory allocation failure gracefully" into mnc-dr-dev am: ac0d9cecb5 am: f63836fed1 am: 5448bcea3e am: f87d4848af am: 18ae83b015 am: 04b8990195
am: 7fc07418ef
Change-Id: I4a35de1493f61d04eade152e7792104710990ca8
This commit is contained in:
commit
faf7af464e
1 changed files with 20 additions and 3 deletions
|
|
@ -1490,20 +1490,37 @@ WORD32 ih264d_allocate_static_bufs(iv_obj_t **dec_hdl, void *pv_api_ip, void *pv
|
|||
/*****************************************************************************/
|
||||
WORD32 ih264d_create(iv_obj_t *dec_hdl, void *pv_api_ip, void *pv_api_op)
|
||||
{
|
||||
ih264d_create_ip_t *ps_create_ip;
|
||||
ih264d_create_op_t *ps_create_op;
|
||||
|
||||
WORD32 ret;
|
||||
|
||||
ps_create_ip = (ih264d_create_ip_t *)pv_api_ip;
|
||||
ps_create_op = (ih264d_create_op_t *)pv_api_op;
|
||||
|
||||
ps_create_op->s_ivd_create_op_t.u4_error_code = 0;
|
||||
|
||||
dec_hdl = NULL;
|
||||
ret = ih264d_allocate_static_bufs(&dec_hdl, pv_api_ip, pv_api_op);
|
||||
|
||||
/* If allocation of some buffer fails, then free buffers allocated till then */
|
||||
if((IV_FAIL == ret) && (NULL != dec_hdl))
|
||||
if(IV_FAIL == ret)
|
||||
{
|
||||
ih264d_free_static_bufs(dec_hdl);
|
||||
if(dec_hdl)
|
||||
{
|
||||
if(dec_hdl->pv_codec_handle)
|
||||
{
|
||||
ih264d_free_static_bufs(dec_hdl);
|
||||
}
|
||||
else
|
||||
{
|
||||
void (*pf_aligned_free)(void *pv_mem_ctxt, void *pv_buf);
|
||||
void *pv_mem_ctxt;
|
||||
|
||||
pf_aligned_free = ps_create_ip->s_ivd_create_ip_t.pf_aligned_free;
|
||||
pv_mem_ctxt = ps_create_ip->s_ivd_create_ip_t.pv_mem_ctxt;
|
||||
pf_aligned_free(pv_mem_ctxt, dec_hdl);
|
||||
}
|
||||
}
|
||||
ps_create_op->s_ivd_create_op_t.u4_error_code = IVD_MEM_ALLOC_FAILED;
|
||||
ps_create_op->s_ivd_create_op_t.u4_error_code = 1 << IVD_FATALERROR;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue