From b2b7abfcd9204142fd720a42b236cbc999f7f547 Mon Sep 17 00:00:00 2001 From: Tony Kim Date: Mon, 5 Sep 2022 15:33:21 +0900 Subject: [PATCH 3/4] empty_bd_pool crash Change-Id: Iadfedf188b151855a18c2455dbc104b728fc84ef --- amp/src/ddl/vcodec/comp_vdec/source/ddl_vdec.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/amp/src/ddl/vcodec/comp_vdec/source/ddl_vdec.c b/amp/src/ddl/vcodec/comp_vdec/source/ddl_vdec.c index 9b3b0b1..e3828e6 100755 --- a/amp/src/ddl/vcodec/comp_vdec/source/ddl_vdec.c +++ b/amp/src/ddl/vcodec/comp_vdec/source/ddl_vdec.c @@ -774,9 +774,17 @@ static HRESULT empty_bd_pool(VDEC_HLD* pHld) { for(i = 0; i < pHld->uDispBDPoolSize; i++){ rc = AMP_BDCHAIN_PopItem(pHld->pDispBDPoolQ, &hBD); if(rc == SUCCESS) { - VDEC_LOGM(VDECBD"pHld=%p free disp hBD=%p bdid=%d", - pHld, hBD, AMP_BD_GET_BDID(hBD)); - AMP_BD_Free(hBD); + HRESULT Ret = SUCCESS; + BOOL bValid = FALSE; + UINT32 uiRefCnt = 0; + Ret = AMP_BD_GetStatus(hBD, &bValid, &uiRefCnt); + if(Ret != SUCCESS || !bValid || (hBD == pHld->hLastBD)){ + VDEC_LOGH(VDECBD"Exception in empty_bd_pool() hBD [%p] Ret[%d] bValid[%d] uiRefCnt[%d] \n", hBD, Ret, bValid, uiRefCnt); + } else { + VDEC_LOGM(VDECBD"pHld=%p free disp hBD=%p bdid=%d", + pHld, hBD, AMP_BD_GET_BDID(hBD)); + AMP_BD_Free(hBD); + } } else { VDEC_LOGH("pHld=%p Pop BD error", pHld); break; -- 2.7.4