From e50919239f94082182e6e0d6fa2dd2cd253bd718 Mon Sep 17 00:00:00 2001 From: Tony Kim Date: Wed, 12 Oct 2022 14:47:57 +0900 Subject: [PATCH] [MMCEI-9987] congested vbi interrupt filtering (2) Change-Id: Ic28f13d36d69ba3ce448a454b10b27aed4e83285 --- amp/src/hal/vpp/g4_hdr/ca_wrapper/source/vpp_api_tz.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/amp/src/hal/vpp/g4_hdr/ca_wrapper/source/vpp_api_tz.c b/amp/src/hal/vpp/g4_hdr/ca_wrapper/source/vpp_api_tz.c index 2cd572c..0889acd 100644 --- a/amp/src/hal/vpp/g4_hdr/ca_wrapper/source/vpp_api_tz.c +++ b/amp/src/hal/vpp/g4_hdr/ca_wrapper/source/vpp_api_tz.c @@ -112,6 +112,7 @@ int VPP_Suspend_request = 0; int VPP_Exit_Flag = 0; int VPP_isr_task_exited = 0; +static int VPP_playback_started = 0; /* Static functions */ static HRESULT VPP_ISR_GetMsg(MV_CC_MSG_t * pMsg) { @@ -160,7 +161,8 @@ static VOID VPP_ISR_Task(VOID) vbiDrop = 0; if (isVBIIntr(msg.m_Param1)){ timeDiff = VPPDRV_vppIntrFreqMonitorGen(VPPDRV_CA_VPPOBJ, VPPDRV_INTR_MONITOR_UINT0_VBI_INTR, VPPDRV_INTR_MONITOR_START, VPPDRV_INTR_MONITOR_NOSHOW); - if (timeDiff < VPP_MIN_ALLOWED_SCHEDULE_DELAY) { + //Allow dropping only after playback is started + if (VPP_playback_started && timeDiff < VPP_MIN_ALLOWED_SCHEDULE_DELAY) { //bCLR_VBI_INTR(msg.m_Param1); vbiDrop = 1; printf("%s:%d: Drop VBI interrupt : %x\n", __func__, __LINE__, timeDiff); @@ -1099,6 +1101,9 @@ INT MV_VPPOBJ_DisplayFrame(INT handle, INT planeID, VOID *frame) pDesc = (VDEC_VID_BUF_DESC *)frame; pVBufInfo = pDesc->user_data; pVBufInfo->m_hDesc = (UINT32)frame; + if (!pVBufInfo->builtinFrame) { + VPP_playback_started = 1; + } #if 1 if(pVBufInfo->m_dv_present_mode == VPP_DOLBY_PRESENT_BL_EL_METADATA) { -- 2.7.4