This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

what's the width and height limitation in SWMS module

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!