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.

scd frame rate

hi TI-friends,

rdk4.1

we can see something below, I want the field "In Recv Frame" to be 10 for each channel

I modify something below

1. in scdLink_priv.h

    #define ALG_LINK_SCD_MAX_OUT_FRAMES_PER_CH (3)   ==> (10)       

2.  in multich_progressive_vcap_venc_vdec_vdis.c

ipcFramesOutVpssPrm[1].baseCreateParams.inputFrameRate = 30;    ==> 30
ipcFramesOutVpssPrm[1].baseCreateParams.outputFrameRate = 30;  ==> 30

dspAlgPrm[1].scdCreateParams.inputFrameRate = 2;     ==>   10
dspAlgPrm[1].scdCreateParams.outputFrameRate = 2;   ==>   10

if(chIdx < dspAlgPrm[1].scdCreateParams.maxNumVaChan)
{
chPrm->inputFrameRate = 10;    ==> 10
chPrm->outputFrameRate = 10;  ==> 10
}
else
{
chPrm->inputFrameRate = 2;  ==> 10
chPrm->outputFrameRate = 2;  ==> 10
}

but I still got the same result ~~   

Any thing wrong with me ??

  • Are you working on your own custom use case or the use case/demo that comes with RDK release.

    If you are using default use case then please check if you are updating frame rate from demo app code. ~/dvr_rdk/demo/ mcfw_api_demos/mcfw_demo/~.

    Check if you have any Vcap_setFrameRate() function call for the path which feeds frame to SCD link.

    In the default demo SCD frame rate is updated at SCD init time please check Demo_scdInit() function. Cross verify if values are as expected.

  • I also found the following with m3VPSS, it look like the reason is from the previous stage in m3vpss, 

  • Ritesh Rajore said:

    Are you working on your own custom use case or the use case/demo that comes with RDK release.

    yes, 

    Ritesh Rajore said:

    Check if you have any Vcap_setFrameRate() function call for the path which feeds frame to SCD link.

    In the default demo SCD frame rate is updated at SCD init time please check Demo_scdInit() function. Cross verify if values are as expected.

    > after checking, following function are executed in Demo_scdInit() ....

        Vcap_setFrameRate(scd_configInfo->chInfo[chId].scdChPrm.scdVaAlgCfg.chId, 4, 30, 10);

    But once I mark it

      // Vcap_setFrameRate(scd_configInfo->chInfo[chId].scdChPrm.scdVaAlgCfg.chId, 4, 30, 10);

    I got following 

    So, where is the location of default setting ?

  • You can check the link before IPCFrameOut., it should be DEI link? You can check the frame rate setting and change it appropriately as you have doen for SCD and other link.

    Or you can try below.

    Call

      Vcap_setFrameRate(scd_configInfo->chInfo[chId].scdChPrm.scdVaAlgCfg.chId, 4, 30, 10);


    for all the channels from SCD init function. Currently it is called for only 1st channel ( i.e. numVaCh = 1). This call would set DEI O/p to 10FPS mode instead of 1FPS

  • Ritesh Rajore said:

    You can check the link before IPCFrameOut., it should be DEI link? You can check the frame rate setting and change it appropriately as you have doen for SCD and other link.

    by checking multich_progressive_vcap_venc_vdec_vdis.c

    deiPrm[i].inputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = MULTICH_PROGRESSIVEDVR_GET_CAPTURE_FRAMES_PER_SEC();
    deiPrm[i].outputFrameRate[DEI_LINK_OUT_QUE_DEI_SC] = MULTICH_PROGRESSIVEDVR_GET_CAPTURE_FRAMES_PER_SEC();

    deiPrm[i].inputFrameRate[DEI_LINK_OUT_QUE_VIP_SC] = MULTICH_PROGRESSIVEDVR_GET_CAPTURE_FRAMES_PER_SEC();
    deiPrm[i].outputFrameRate[DEI_LINK_OUT_QUE_VIP_SC] = MULTICH_PROGRESSIVEDVR_GET_CAPTURE_FRAMES_PER_SEC();

    and

    #define     MULTICH_PROGRESSIVEDVR_GET_CAPTURE_FRAMES_PER_SEC() (gProgressiveDVRUsecaseContext.captureFps/2)

    and

    *captureFps = 60;

    it looks like the output of DEI is 30fps.... any further idea?

  • I think there was some confusion. The previous link is Sclr link.

    Please update the frame rate params of Scalar link in use case file.

    For SCD data flow is as below

    Cap----> dup ---> Sclr ---->NSF ----> ipcFramesOutVpssPrm -> ipcFramesInDspPrm ----> scdLink

  • hello Ritesh,

    thanks for your reply.

    By checking we found

    sclrPrm.inputFrameRate = 30;
    sclrPrm.outputFrameRate = 2;

    nsfParam[0].inputFrameRate = 1;     => May I know why "1" instead of "2"
    nsfParam[0].outputFrameRate = 1;

    ipcFramesOutVpssPrm[1].baseCreateParams.inputFrameRate = 30;      => May I know why "30" instead of "2"
    ipcFramesOutVpssPrm[1].baseCreateParams.outputFrameRate = 30;

  • Great.

    For your other question, No specific reason for those settings. Requirement is that we wanted to keep ratio = 1 i.e. f/w all the frames whatever come at input.

    As long as values match it is okay. No harm in that.