I met an issue with swOSD which will be blocked all the time.
It is in function SWOSD_TI_algBlendFrame, the first time calling SWOSD_TI_DMA_FastWait will be blocked.
It seems the EDMA didn't finish the operation.
What should do to debug and solve this issue?
Thanks!
Update:
I have found the root cause.
I set maxWidth to 1920. In SWOSD_open, it will return NULL!
It skipped calling DSKT2_createAlg and RMAN_assignResources.
But SWOSD_open with return value of NULL will be treated as successful.
So no EDMA resources had been assigned to SWOSD.
I change maxWidth to 720, EDMA worked just fine.
But another problem, no OSD logo showed after processing.
Update2:
In AlgLink_OsdWindowPrm, if transperencyEnable is FALSE,
OSD logo wouldn't be showed, or would be showed.
Why?
Update3:
The memory pointed by pLineBufAlp in SWOSD_TI_algBlendFrame will be zero in default.
If transperencyEnable is TRUE, The memory pointed by pLineBufAlp will be set in SWOSD_TI_algBlendLineYuv2Yuv or SWOSD_TI_algBlendLineRgb2Yuv.
So if transperencyEnable is FALSE, all alpha will be zero, and no logo after blending.
In SWOSD_TI_algBlendFrame I initialize the memory pointed by pLineBufAlp,
the logo will be showed when transperencyEnable is FALSE.