Hi
We use 8168 based on DVRRDK4.0 in our project. During test, we found some limitations in SWMS windows and crop parameters as summarized below:
WINDOW_S.width must >=24
crop Width must >=24
crop Height must >=8
Take an example, if we set the crop Width for a window to 16, then the SWMS will give an ASSERT and dead:
[m3vpss ] 0 | 0 | 0, 0 | 16 x 16 | 896 / 896 | NON-TILED | 0, 0 | 16 x 16 | 3840 / 0 | NON-TILED | OFF | 0 | 420SP | OFF |
[m3vpss ]
[m3vpss ] 121112:SWMS:SwMs window overlap.WinId1[0]:startX[0]:startY[0]:endX[16]:endY[16]::WinId2[1]:startX[0]:startY[0]:endX[24]:endY[20]
[m3vpss ] 121114: Assertion @ Line: 686 in hal/src/vpshal_sc.c: (0 == scCheckParams(handle, config)) : failed !!!
[m3vpss ] 121148: Assertion @ Line: 3692 in links_m3vpss/swMs/swMsLink_drv.c: status == FVID2_SOK : failed !!!
For the first Assertion (from scCheckParams), we found below macro that lead to the assertion in vpsshal_sc.c:
* \brief Minumim values for height and width for Scalar module */
#define SC_MIN_REQ_WIDTH (34u)
#define SC_MIN_REQ_HEIGHT (8u)
This rule is applied to the crop width. But we found actually you can break the rule: if you set the crop width to 24, the system can work despite that it gives a complain of the first Assertion.
The second assertion (from swMsLink_drv.c: status == FVID2_SOK) is from the below rules defined in vpshal_vpdma.h:
/* Minumum width is suggested by hardware team. This
* is not the actual hardware restriction, but combination
* of hardware paths like SC_H, DEI_H etc
*/
#define VPSHAL_VPDMA_MIN_FRAME_WIDTH (24u)
#define VPSHAL_VPDMA_MIN_FRAME_HEIGHT (8u)
It says that the minimum crop width should be 24. However, it said it's not the hardware restriction. But after I changed the VPSHAL_VPDMA_MIN_FRAME_WIDTH to 8u, then running swms with a crop witdh set to 8 and hoping it can work, the system just dead without any hint. We checked the code and found that it seems to be blocked at below line in SwMsLink_DrvProcessFrames function.
Semaphore_pend(pDrvObj[i]->complete, BIOS_WAIT_FOREVER);
So my questions are:
1. which one will have effect on the final width limitation, the SC_MIN_REQ_WIDTH or VPSHAL_VPDMA_MIN_FRAME_WIDTH?
2. The test result shows the crop width must greater than 24. Is this a hardware limitation? Is there anyway to break the limitation , for example, set the crop width to a minimum value of 8?
Thanks!