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.

scaler capability

Hi, as I know. DM8168 has 5 scaler. I want to is that these 5 scalers have the same capability? Can I set 4 swms link?Every swms link use one different scaler.

Thanks.

  • On 816x you can use 4 different scalers together if you don't use SD display.

    The  scalers have the similar capability in terms of performance.

    There are differences between the scalers in terms of supported input and output format and some additional features like edge detection in some scalers.

    You can create 4 SwMs with 4 different scaler ids. Refer multich_vdec_vdis.c where 2 swms are created with 4 different scaler ids. You can use it as reference to create 4 swms with 1 scaler id each.

  • Badri, Thanks for your reply.

    And could you tell me what difference about input and output format in details?

  • Hi colin,

     

    Here, format means YUV422 or YUV420 input, all four scalar support differnet input and output formats. SC5 supports YU420 input and YUV422 output, whereas SC3/4 suppports both input and output as YUV420. Also note that whereeven YUV420 is supported, YUV422 is also supported, but not otherway round.

     

    Rgds,

    Brijesh

  • My usecase is Multich_vdec_vdis.c. If I set swMsInstId as the follow:

     swMsPrm[0].numSwMsInst          = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_VIP1_SC_NO_DEI;
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[0].enableOuputDup = FALSE;

     swMsPrm[1].numSwMsInst          = 1;
       swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_VIP0_SC_NO_DEI;
     swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableOuputDup = FALSE;

    VPSS will print the follow error when create links.

    [m3vpss ]  1412604: SWMS: Create Done !!!
     [m3vpss ]  1412604: SWMS: Create in progress !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 59 (59)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 59 (0x49004760)
     [m3vpss ] SWMS: instance 0, sc id 7, start win 0 end win 17
     [m3vpss ]  1412782: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  1412787: Assertion @ Line: 2441 in links_m3vpss/swMs/swMsLink_drv.c: pDrvObj->fvidHandle != NULL : failed !!!

     If I set swMsInstId as the follow:

     

     swMsPrm[0].numSwMsInst          = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
            swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[0].enableOuputDup = FALSE;

     swMsPrm[1].numSwMsInst          = 1;
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
     swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableOuputDup = FALSE;

    There is ok when create links.

     

  • Either your vip scalar is being used by someone else or VipScReq is set to FALSE??

     

    Rgds,

    Brijesh

  •  

    I create two swMs links. When I set both of two swMs param includeVipScInDrvPath to FALSE, and set swMsInstId to VIPx_SC. As the follow, There is no error when create links.

    swMsPrm[0].includeVipScInDrvPath = FALSE;
     swMsPrm[0].numSwMsInst          = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_VIP0_SC_NO_DEI;
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[0].enableOuputDup = FALSE;


        swMsPrm[1].includeVipScInDrvPath = TRUE;
     swMsPrm[1].numSwMsInst          = 1;
     swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_VIP1_SC_NO_DEI;
     swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableOuputDup = FALSE;

    But when I set one of the two swMs link includeVipScInDrvPath to FALSE, and this swMs link InstId set to SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI. And the other swMs link includeVipScInDrvPath set to TRUE, instId set to SYSTEM_SW_MS_SC_INST_VIP0_SC_NO_DEI. When create links, There is error printf:

    swMsPrm[0].includeVipScInDrvPath = FALSE;
     swMsPrm[0].numSwMsInst          = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[0].enableOuputDup = FALSE;


        swMsPrm[1].includeVipScInDrvPath = TRUE;
     swMsPrm[1].numSwMsInst          = 1;
     swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_VIP0_SC_NO_DEI;
     swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableOuputDup = FALSE;

      [m3vpss ] SWMS: instance 0, sc id 9, start win 0 end win 17
     [m3vpss ]  12174: SWMS    : VipScReq is TRUE!!!
     [m3vpss ]  12180: Assertion @ Line: 2441 in links_m3vpss/swMs/swMsLink_drv.c: pDrvObj->fvidHandle != NULL : failed !!!


     

  • This is expected.

    SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI opens DEI driver with DEI_SC output path

    SYSTEM_SW_MS_SC_INST_VIP0_SC_NO_DEI will try to open the same DEI driver with VIP_SC output path and it will fail.

    Try using SYSTEM_SW_MS_SC_INST_VIP0_SC which uses scaler path and not DEI driver

    Note that includeVipScInDrvPath flag is meaningful only when using DEI_SC_xx driver in swms.If you use DEI_VIP_SC it has not impact since VipSc will always be included.