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.

DVR RDK Use case using Link API's

Other Parts Discussed in Thread: TVP5158

HI,

  I just started working on RDK  (DVRRDK_03.00.00.00) . And I am working at the Link API level. I am trying to create on use case "Multi channel capture, encode  and record". I use /dvr_rdk/demos/link_api_demos/common/chains_ipcBits.c functions to dump the output to file. The chain is not successful and I am not able to see any output written in the file. Please help me to debug my use case.

This is the application file I wrote by referring other Link API demos.

   #include <demos/link_api_demos/common/chains.h>

/*
                      Capture (YUV422I) 16CH D1 60fps
                          |
                          |
                         NSF (YUV420SP)
                          |
                          |
                         ENC (H264)
                          |
                          |
                       FWRITE (FILE)
*/

/*IVA HD MAP Table*/
static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
{
    .isPopulated = 1,
    .ivaMap[0] =
    {
        .EncNumCh  = 10,
        .EncChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0 , 0, 0},
        .DecNumCh  = 0,
        .DecChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    },
    .ivaMap[1] =
    {
        .EncNumCh  = 16,
        .EncChList = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
        .DecNumCh  = 12,
        .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0 , 0, 0},
    },
    .ivaMap[2] =
    {
        .EncNumCh  = 6,
        .EncChList = {10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        .DecNumCh  = 4,
        .DecChList = {12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
    },
};



Void Chains_multiChCaptureNsfDei(Chains_Ctrl *chainsCfg)
{
    CaptureLink_CreateParams    capturePrm;
    NsfLink_CreateParams        nsfPrm;

    IpcLink_CreateParams        ipcOutVpssPrm;
    IpcLink_CreateParams        ipcInVideoPrm;

    EncLink_CreateParams        encPrm;

    IpcBitsOutLinkRTOS_CreateParams   ipcBitsOutVideoPrm;
    IpcBitsInLinkHLOS_CreateParams    ipcBitsInHostPrm;


    CaptureLink_VipInstParams *pCaptureInstPrm;
    CaptureLink_OutParams     *pCaptureOutPrm;

    UInt32 captureId, nsfId, encId;
    UInt32 vipInstId, i;
    UInt32 ipcBitsOutVpssId, ipcBitsInVideoId;
    UInt32 ipcBitsOutVideoId, ipcBitsInHostId;

    Bool switchCh;
    Bool switchLayout;

    char ch;

    captureId           = SYSTEM_LINK_ID_CAPTURE;
    nsfId               = SYSTEM_LINK_ID_NSF_0;
    encId                = SYSTEM_LINK_ID_VENC_0;
    ipcBitsOutVpssId     = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
    ipcBitsInVideoId     = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;
    ipcBitsOutVideoId    = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
    ipcBitsInHostId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;


    System_linkControl(
        SYSTEM_LINK_ID_M3VIDEO,
        SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
        &systemVid_encDecIvaChMapTbl,
        sizeof(SystemVideo_Ivahd2ChMap_Tbl),
        TRUE
    );

    Chains_ipcBitsInit();
    CHAINS_INIT_STRUCT(CaptureLink_CreateParams, capturePrm);
    CHAINS_INIT_STRUCT(NsfLink_CreateParams, nsfPrm);
    CHAINS_INIT_STRUCT(IpcLink_CreateParams, ipcOutVpssPrm);
    CHAINS_INIT_STRUCT(IpcLink_CreateParams, ipcInVideoPrm);
    CHAINS_INIT_STRUCT(EncLink_CreateParams, encPrm);
    CHAINS_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams, ipcBitsOutVideoPrm);
    CHAINS_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams, ipcBitsInHostPrm);

    CaptureLink_CreateParams_Init(&capturePrm);
    capturePrm.numVipInst = 4;

    capturePrm.outQueParams[0].nextLink = nsfId;
    capturePrm.tilerEnable = FALSE;

    for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
    {
        pCaptureInstPrm                     = &capturePrm.vipInst[vipInstId];
        pCaptureInstPrm->vipInstId          = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;
        pCaptureInstPrm->videoDecoderId     = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
        pCaptureInstPrm->inDataFormat       = SYSTEM_DF_YUV422P;
        pCaptureInstPrm->standard           = SYSTEM_STD_MUX_4CH_D1;
        pCaptureInstPrm->numOutput          = 1;

        pCaptureOutPrm                      = &pCaptureInstPrm->outParams[0];
        pCaptureOutPrm->dataFormat          = SYSTEM_DF_YUV422I_YUYV;
        pCaptureOutPrm->scEnable            = FALSE;
        pCaptureOutPrm->scOutWidth          = 0;
        pCaptureOutPrm->scOutHeight         = 0;
        pCaptureOutPrm->outQueId            = 0;
    }
/**
 * Capture to Noise Filter
 **/

    nsfPrm.bypassNsf                = FALSE;
    nsfPrm.tilerEnable              = FALSE;
    nsfPrm.inQueParams.prevLinkId   = captureId;
    nsfPrm.inQueParams.prevLinkQueId= 0;
    nsfPrm.numOutQue                = 1;
    nsfPrm.tilerEnable                = FALSE;
    nsfPrm.outQueParams[0].nextLink = ipcBitsOutVpssId;

/**
* Noise Filter to ipcBitsOutVpss
**/

    ipcOutVpssPrm.inQueParams.prevLinkId    = nsfId;
    ipcOutVpssPrm.inQueParams.prevLinkQueId = 1;
    ipcOutVpssPrm.numOutQue                 = 1;
    ipcOutVpssPrm.notifyNextLink            = FALSE;
    ipcOutVpssPrm.notifyPrevLink            = TRUE;
    ipcOutVpssPrm.noNotifyMode              = TRUE;
    ipcOutVpssPrm.outQueParams[0].nextLink     = ipcBitsInVideoId;
/**
* ipcBitsOutVpss to ipcBitsInVideo
**/
    ipcInVideoPrm.inQueParams.prevLinkId    = ipcBitsOutVpssId;
    ipcInVideoPrm.inQueParams.prevLinkQueId = 0;
    ipcInVideoPrm.numOutQue                 = 1;
    ipcInVideoPrm.notifyNextLink            = TRUE;
    ipcInVideoPrm.notifyPrevLink            = FALSE;
    ipcInVideoPrm.noNotifyMode              = TRUE;
    ipcInVideoPrm.outQueParams[0].nextLink  = encId;
/**
* ipcBitsInVideo to Encoder
**/
    for (i=0; i<16; i++) {
        encPrm.chCreateParams[i].format     = IVIDEO_H264HP;
        encPrm.chCreateParams[i].profile    = IH264_HIGH_PROFILE;
        encPrm.chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED;
        encPrm.chCreateParams[i].fieldMergeEncodeEnable  = TRUE;
        encPrm.chCreateParams[i].defaultDynamicParams.intraFrameInterval = 30;
        encPrm.chCreateParams[i].encodingPreset = XDM_DEFAULT;
        encPrm.chCreateParams[i].enableAnalyticinfo = 0;
        encPrm.chCreateParams[i].enableWaterMarking = 0;
        encPrm.chCreateParams[i].rateControlPreset =
                                 IVIDEO_STORAGE;
        encPrm.chCreateParams[i].defaultDynamicParams.inputFrameRate = 30;
        encPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =
                                 (2 * 1000 * 1000);
        encPrm.chCreateParams[i].defaultDynamicParams.interFrameInterval = 1;
        encPrm.chCreateParams[i].defaultDynamicParams.mvAccuracy =
                                 IVIDENC2_MOTIONVECTOR_QUARTERPEL;
    }
    encPrm.inQueParams.prevLinkId   = ipcBitsInVideoId;
    encPrm.inQueParams.prevLinkQueId= 0;
    encPrm.outQueParams.nextLink = ipcBitsOutVideoId;
/**
* Encoder to ipcBitsOutVideo
**/
    ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId = encId;
    ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    ipcBitsOutVideoPrm.baseCreateParams.numOutQue                 = 1;
    ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink = ipcBitsInHostId;
    Chains_ipcBitsInitCreateParams_BitsOutRTOS(&ipcBitsOutVideoPrm, FALSE);

    ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = ipcBitsOutVideoId;
    ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    ipcBitsInHostPrm.baseCreateParams.noNotifyMode = FALSE;
    Chains_ipcBitsInitCreateParams_BitsInHLOS(&ipcBitsInHostPrm);

    System_linkCreate(captureId, &capturePrm, sizeof(capturePrm));
    System_linkControl(captureId, CAPTURE_LINK_CMD_CONFIGURE_VIP_DECODERS, NULL, 0, TRUE);
    System_linkCreate(nsfId, &nsfPrm, sizeof(nsfPrm));
    System_linkCreate(ipcBitsOutVpssId, &ipcOutVpssPrm, sizeof(ipcOutVpssPrm));
    System_linkCreate(ipcBitsInVideoId, &ipcInVideoPrm, sizeof(ipcInVideoPrm));
    System_linkCreate(encId, &encPrm, sizeof(encPrm));
    System_linkCreate(ipcBitsOutVideoId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm));
    System_linkCreate(ipcBitsInHostId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm));

    Chains_memPrintHeapStatus();

    {
        System_linkStart(ipcBitsInHostId);
        System_linkStart(ipcBitsOutVideoId);
        System_linkStart(encId);
        System_linkStart(ipcBitsInVideoId);
        System_linkStart(ipcBitsOutVpssId);
        System_linkStart(nsfId);
        System_linkStart(captureId);

        //Start taking CPU load just before starting of links
         Chains_prfLoadCalcEnable(TRUE, FALSE, FALSE);

        while(1)
        {
            switchLayout = FALSE;
            switchCh     = FALSE;

            ch = Chains_menuRunTime();

            if(ch=='0')
                break;
            if(ch=='p')
                System_linkControl(captureId, CAPTURE_LINK_CMD_PRINT_ADV_STATISTICS, NULL, 0, TRUE);
            if(ch=='s')
               switchLayout = TRUE;
            if(ch=='c')
               switchCh = TRUE;
        }

        System_linkStop(captureId);
        System_linkStop(nsfId);
        Chains_ipcBitsStop();
        System_linkStop(ipcBitsOutVpssId);
        System_linkStop(ipcBitsInVideoId);
        System_linkStop(encId);
        System_linkStop(ipcBitsOutVideoId);
        System_linkStop(ipcBitsInHostId);
    }

    System_linkDelete(captureId);
    System_linkDelete(nsfId);
    System_linkDelete(ipcBitsOutVpssId);
    System_linkDelete(ipcBitsInVideoId);
    System_linkDelete(encId);
    System_linkDelete(ipcBitsOutVideoId);
    System_linkDelete(ipcBitsInHostId);
    Chains_ipcBitsExit();

    /* Print the HWI, SWI and all tasks load */
    /* Reset the accumulated timer ticks */
    Chains_prfLoadCalcEnable(FALSE, TRUE, FALSE);
}

Is there any flaw in the above chain creation? I have experience with EZSDK. I have no clue to debug an use case in RDK. Please help as early as possible.

  • Chains demo is obsolete and not supported in recent RDK versions. Please refer multich_vcap_venc_vdis.c for your use case. This use case is a complex one with display & CIF support. You could remove the unwanted links and create a simple data flow as per your requirement.

  • I see the following issues:

    ipcBitsOutVideoId    = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;

    this should be

    ipcBitsOutVideoId    = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;

    ipcOutVpssPrm.inQueParams.prevLinkQueId = 1;

    this should be

    ipcOutVpssPrm.inQueParams.prevLinkQueId = 0;

    System_linkControl(captureId, CAPTURE_LINK_CMD_CONFIGURE_VIP_DECODERS, NULL, 0, TRUE);

     - We are no longer supporting external video decoder configuration on M3. Refer /dvr_rdk/mcfw/src_linux/mcfw_api/usecases/multich_vcap_vdis.c

    You have to invoke Vcap_configVideoDecoder passing the appropritate parameters

  • Badri,

        Thanks for your fast response!!!

    I took all your recommendations, Video Decoder configuration also I changed to invoke Vcap_configVideoDecoder(). To start the video decoder, I used Device_tvp5158Control() function with CmdID = DEVICE_CMD_START.

       But I am not able to see any data flow. The Chains_ipcBitsRecvFxn() fuction is waiting on the "bitsInNotifySem" semaphore. Even if I bypass the semaphore, I get fullBufList.numBufs = 0.


       How do I debug this case?

          >>> Is the Video Decoder is capture & sending the data or not?

          >>> Is the data coming to encoder or not ? and so on.

    Expecting early reply.

    Thanks

    Pasting the console Print as well...

     [host] CHAINS_IPCBITS:Chains_ipcBitsSendFxn:Entered...
     [host] CHAINS_IPCBITS:Chains_ipcBitsRecvFxn:Entered...
     VCAP: TVP5158-0 (0x58): Detected video (720x240@59Hz, 1) !!!
     VCAP: TVP5158-1 (0x5c):  NO Video Detected !!!
     VCAP: TVP5158-2 (0x5a):  NO Video Detected !!!
     VCAP: TVP5158-3 (0x5e):  NO Video Detected !!!

     [host] CHAINS_IPCBITS:Chains_ipcBitsSendFxn:INFO: periodic print.. TVP5158: 0x58: Downloading patch ...
     [host] CHAINS_IPCBITS:Chains_ipcBitsRecvFxn:INFO: periodic print..
     TVP5158: 0x58: Downloading patch ... DONE !!!
     TVP5158: 0x58: 5158:0002:0302
     TVP5158: 0x5c: Downloading patch ...

     TVP5158: 0x5c: Downloading patch ... DONE !!!
     TVP5158: 0x5c: 5158:0002:0302
     TVP5158: 0x5a: Downloading patch ...

     TVP5158: 0x5a: Downloading patch ... DONE !!!
     TVP5158: 0x5a: 5158:0002:0302

     TVP5158: 0x5e: Downloading patch ...

     TVP5158: 0x5e: Downloading patch ... DONE !!!
     TVP5158: 0x5e: 5158:0002:0302
     [m3vpss ]  35108: CAPTURE: Create in progress !!!
     [m3vpss ]  35137: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Pixel-mux Embedded Sync] !!!
     [m3vpss ]  35223: CAPTURE: VIP0 PortB capture mode is [ 8-bit, Pixel-mux Embedded Sync] !!!
     [m3vpss ]  35309: CAPTURE: VIP1 PortA capture mode is [ 8-bit, Pixel-mux Embedded Sync] !!!
     [m3vpss ]  35395: CAPTURE: VIP1 PortB capture mode is [ 8-bit, Pixel-mux Embedded Sync] !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)
     [m3vpss ] CAPTURE::HEAPID:0    USED:992
     [m3vpss ] CAPTURE::HEAPID:4    USED:78759936
     [m3vpss ]  35481: CAPTURE: Create Done !!!
     [m3vpss ]  35481: NSF: Create in progress !!!
     [m3video]  35624: IPC_IN_M3   : Create in progress !!!
     [m3video]  35624: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_0] ...
     [m3video]  35624: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_0] ...
     [m3vpss ] NSF::HEAPID:0        USED:128
     [m3video]  35626: IPC_IN_M3   : Create Done !!!
     [m3vpss ] NSF::HEAPID:1        USED:26048
     [m3video]  35626: ENCODE: Create in progress ... !!!
     [m3vpss ] NSF::HEAPID:4        USED:30277632
     [m3vpss ]  35622: NSF: Create Done !!!
     [m3vpss ]  35623: IPC_OUT_M3   : Create in progress !!!
     [m3vpss ]  35623: IPC_OUT_M3   : Create Done !!!
     [m3video]  35733: ENCODE: Creating CH0 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:13808
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35743: ENCODE: Creating CH1 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35751: ENCODE: Creating CH2 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35760: ENCODE: Creating CH3 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35769: ENCODE: Creating CH4 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35778: ENCODE: Creating CH5 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35786: ENCODE: Creating CH6 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35795: ENCODE: Creating CH7 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...

     [host] IpcBitsInLink_tskMain:Entered
     [host]  23567: IPC_BITS_IN   : Create in progress !!!

     [host]  23567: IPC_BITS_IN   : ListMPOpen start !!!

     [host]  23567: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
     23569: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...

     [host]  23571: IPC_BITS_IN   : ListMPOpen done !!!

     [host]  23572: IPC_BITS_IN   : System_linkGetInfo done !!!

     [host]  23572: IPC_BITS_IN   : Create Done !!!
    SYSTEM INFO >>> CAP -> NSF -> ENC -> FWRITE Chain Started

     ====================
     Chains Run-time Menu
     ====================

     0: Stop Chain

     s: Switch Display Layout  (Sequential change of layout)
     c: Switch Display Channel (Sequential: Increments by 1)
     p: Print Capture Statistics
     b: Modify Encoder Bit Rate
     f: Modify Encoder Frame Rate
     r: Modify Intra Frame Interval(GOP)
     t: Toggle force IDR frame
     g: Print Encoder Dynamic Parameters
     i: Print IVA-HD Statistics
     m: Print SwMs Statistics
     a: Audio Capture / Playback

     Enter Choice:  [m3video] ENCLINK_H264:HEAPID:0 USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35804: ENCODE: Creating CH8 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35812: ENCODE: Creating CH9 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate = 2
    000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35821: ENCODE: Creating CH10 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate =
    2000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35830: ENCODE: Creating CH11 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate =
    2000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35839: ENCODE: Creating CH12 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate =
    2000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35847: ENCODE: Creating CH13 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate =
    2000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35856: ENCODE: Creating CH14 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate =
    2000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35865: ENCODE: Creating CH15 of 704 x 240, pitch = (704, 704) [INTERLACED ] [NON-TILED  ], bitrate =
    2000 Kbps ...
     [m3video] ENCLINK_H264:HEAPID:0        USED:11912
     [m3video] ENCLINK_H264:HEAPID:3        USED:1683456
     [m3video]  35874: ENCODE: All CH Create ... DONE !!!
     [m3video] ENCLINK:HEAPID:0     USED:192608
     [m3video] ENCLINK:HEAPID:2     USED:23224320
     [m3video] ENCLINK:HEAPID:3     USED:26935296
     [m3video]  35875: ENCODE: Create ... DONE !!!
     [m3video]  35876: IPC_BITS_OUT   : Create in progress !!!
     [m3video]  35877: IPC_BITS_OUT   : Create Done !!!

     [host] CHAINS_IPCBITS:Chains_ipcBitsSendFxn:INFO: periodic print..

     [host] CHAINS_IPCBITS:Chains_ipcBitsSendFxn:INFO: periodic print..

     

  • I dont see links being started in the log. Pls share your updates usecase file after doing the fixes I mentioned.

    Use i: Print IVA-HD Statistics - Print encoder stats

    Use p: Print Capture Statistics - Print capture stats

    Pls share log with above two stats also

  • Badri,

       Thanks again!!.

       I have attached the source file again after incorporating your recommendations.  

      1) How do I enable the IVA-HD and Capture statistics prints? which file to modify (use i & p) to get the stat prints?

      2) From the previous console prints, we could clearly make out that the BITS_IN_IPC_HLOS is not created at all. the system almost stops after creation of IPC_BITS_OUT.

    please help me to get the stat prints. I will send the logs again.


    Thanks

    (Modified file follows..)

    #include <demos/link_api_demos/common/chains.h>
    #include <ti_vcap_priv.h>

    /*
                          Capture (YUV422I) 16CH D1 60fps
                              |
                              |
                             NSF (YUV420SP)
                              |
                              |
                             ENC (H264)
                              |
                              |
                           FWRITE (FILE)
    */
    #define NUM_CAPTURE_DEVICES        (4)

    /*IVA HD MAP Table*/
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 10,
            .EncChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0 , 0, 0},
            .DecNumCh  = 0,
            .DecChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 16,
            .EncChList = {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
            .DecNumCh  = 12,
            .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0 , 0, 0},
        },
        .ivaMap[2] =
        {
            .EncNumCh  = 6,
            .EncChList = {10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
            .DecNumCh  = 4,
            .DecChList = {12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        },
    };



    Void Chains_multiChCaptureNsfDei(Chains_Ctrl *chainsCfg)
    {
        CaptureLink_CreateParams    capturePrm;
        NsfLink_CreateParams        nsfPrm;

        IpcLink_CreateParams        ipcOutVpssPrm;
        IpcLink_CreateParams        ipcInVideoPrm;

        EncLink_CreateParams        encPrm;

        IpcBitsOutLinkRTOS_CreateParams   ipcBitsOutVideoPrm;
        IpcBitsInLinkHLOS_CreateParams    ipcBitsInHostPrm;


        CaptureLink_VipInstParams *pCaptureInstPrm;
        CaptureLink_OutParams     *pCaptureOutPrm;

        VCAP_VIDDEC_PARAMS_S vidDecVideoModeArgs[NUM_CAPTURE_DEVICES];

        UInt32 captureId, nsfId, encId;
        UInt32 vipInstId, i, status;
        UInt32 ipcBitsOutVpssId, ipcBitsInVideoId;
        UInt32 ipcBitsOutVideoId, ipcBitsInHostId;

        Bool switchCh;
        Bool switchLayout;

        char ch;

        captureId           = SYSTEM_LINK_ID_CAPTURE;
        nsfId               = SYSTEM_LINK_ID_NSF_0;
        encId                = SYSTEM_LINK_ID_VENC_0;
        ipcBitsOutVpssId     = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
        ipcBitsInVideoId     = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;
        ipcBitsOutVideoId    = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
        ipcBitsInHostId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;

        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
        );

        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_encDecIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
        );

        Chains_ipcBitsInit();
        CHAINS_INIT_STRUCT(CaptureLink_CreateParams, capturePrm);
        CHAINS_INIT_STRUCT(NsfLink_CreateParams, nsfPrm);
        CHAINS_INIT_STRUCT(IpcLink_CreateParams, ipcOutVpssPrm);
        CHAINS_INIT_STRUCT(IpcLink_CreateParams, ipcInVideoPrm);
        CHAINS_INIT_STRUCT(EncLink_CreateParams, encPrm);
        CHAINS_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams, ipcBitsOutVideoPrm);
        CHAINS_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams, ipcBitsInHostPrm);

        CaptureLink_CreateParams_Init(&capturePrm);
        capturePrm.numVipInst = 4;

        capturePrm.outQueParams[0].nextLink = nsfId;
        /*capturePrm.maxBlindAreasPerCh       = 4;*/
        capturePrm.tilerEnable = FALSE;

        for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
        {
            pCaptureInstPrm                     = &capturePrm.vipInst[vipInstId];
            pCaptureInstPrm->vipInstId          = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;
            pCaptureInstPrm->videoDecoderId     = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
            pCaptureInstPrm->inDataFormat       = SYSTEM_DF_YUV422P;
            pCaptureInstPrm->standard           = SYSTEM_STD_MUX_4CH_D1;
            pCaptureInstPrm->numOutput          = 1;

            pCaptureOutPrm                      = &pCaptureInstPrm->outParams[0];
            pCaptureOutPrm->dataFormat          = SYSTEM_DF_YUV422I_YUYV;
            pCaptureOutPrm->scEnable            = FALSE;
            pCaptureOutPrm->scOutWidth          = 0;
            pCaptureOutPrm->scOutHeight         = 0;
            pCaptureOutPrm->outQueId            = 0;
        }

        for(i = 0; i < NUM_CAPTURE_DEVICES; i++)
       {
           vidDecVideoModeArgs[i].videoIfMode        = DEVICE_CAPT_VIDEO_IF_MODE_8BIT;
           vidDecVideoModeArgs[i].videoDataFormat    = SYSTEM_DF_YUV422P;
           vidDecVideoModeArgs[i].standard           = SYSTEM_STD_MUX_4CH_D1;
           vidDecVideoModeArgs[i].videoCaptureMode   =
                       DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC;
           vidDecVideoModeArgs[i].videoSystem        =
                                         DEVICE_VIDEO_DECODER_VIDEO_SYSTEM_AUTO_DETECT;
           vidDecVideoModeArgs[i].videoCropEnable    = FALSE;
           vidDecVideoModeArgs[i].videoAutoDetectTimeout = -1;
       }
        System_Vcap_configVideoDecoder(vidDecVideoModeArgs, NUM_CAPTURE_DEVICES);
    /**
     * Capture to Noise Filter
     **/
        NsfLink_CreateParams_Init(&nsfPrm);
        nsfPrm.bypassNsf                = FALSE;
        nsfPrm.tilerEnable              = FALSE;
        nsfPrm.inQueParams.prevLinkId   = captureId;
        nsfPrm.inQueParams.prevLinkQueId= 0;
        nsfPrm.numOutQue                = 1;
        nsfPrm.tilerEnable                = FALSE;
        nsfPrm.outQueParams[0].nextLink = ipcBitsOutVpssId;

    /**
    * Noise Filter to ipcBitsOutVpss
    **/

        ipcOutVpssPrm.inQueParams.prevLinkId    = nsfId;
        ipcOutVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVpssPrm.numOutQue                 = 1;
        ipcOutVpssPrm.notifyNextLink            = FALSE;
        ipcOutVpssPrm.notifyPrevLink            = TRUE;
        ipcOutVpssPrm.noNotifyMode              = TRUE;
        ipcOutVpssPrm.outQueParams[0].nextLink     = ipcBitsInVideoId;
    /**
    * ipcBitsOutVpss to ipcBitsInVideo
    **/
        ipcInVideoPrm.inQueParams.prevLinkId    = ipcBitsOutVpssId;
        ipcInVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcInVideoPrm.numOutQue                 = 1;
        ipcInVideoPrm.notifyNextLink            = TRUE;
        ipcInVideoPrm.notifyPrevLink            = FALSE;
        ipcInVideoPrm.noNotifyMode              = TRUE;
        ipcInVideoPrm.outQueParams[0].nextLink  = encId;
    /**
    * ipcBitsInVideo to Encoder
    **/
        for (i=0; i<16; i++) {
            encPrm.chCreateParams[i].format     = IVIDEO_H264HP;
            encPrm.chCreateParams[i].profile    = IH264_HIGH_PROFILE;
            encPrm.chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED;
            encPrm.chCreateParams[i].fieldMergeEncodeEnable  = TRUE;
            encPrm.chCreateParams[i].defaultDynamicParams.intraFrameInterval = 30;
            encPrm.chCreateParams[i].encodingPreset = XDM_DEFAULT;
            encPrm.chCreateParams[i].enableAnalyticinfo = 0;
            encPrm.chCreateParams[i].enableWaterMarking = 0;
            encPrm.chCreateParams[i].rateControlPreset =
                                     IVIDEO_STORAGE;
            encPrm.chCreateParams[i].defaultDynamicParams.inputFrameRate = 30;
            encPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =
                                     (2 * 1000 * 1000);
            encPrm.chCreateParams[i].defaultDynamicParams.interFrameInterval = 1;
            encPrm.chCreateParams[i].defaultDynamicParams.mvAccuracy =
                                     IVIDENC2_MOTIONVECTOR_QUARTERPEL;
        }
        encPrm.inQueParams.prevLinkId   = ipcBitsInVideoId;
        encPrm.inQueParams.prevLinkQueId= 0;
        encPrm.outQueParams.nextLink = ipcBitsOutVideoId;
    /**
    * Encoder to ipcBitsOutVideo
    **/
        ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId = encId;
        ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcBitsOutVideoPrm.baseCreateParams.numOutQue                 = 1;
        ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink = ipcBitsInHostId;
        Chains_ipcBitsInitCreateParams_BitsOutRTOS(&ipcBitsOutVideoPrm, TRUE);

        ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = ipcBitsOutVideoId;
        ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        //ipcBitsInHostPrm.baseCreateParams.noNotifyMode = FALSE;
        ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink   = SYSTEM_LINK_ID_INVALID;
        Chains_ipcBitsInitCreateParams_BitsInHLOS(&ipcBitsInHostPrm);

        System_linkCreate(captureId, &capturePrm, sizeof(capturePrm));
        /*System_linkControl(captureId, CAPTURE_LINK_CMD_CONFIGURE_VIP_DECODERS, NULL, 0, TRUE);*/
        System_linkCreate(nsfId, &nsfPrm, sizeof(nsfPrm));
        System_linkCreate(ipcBitsOutVpssId, &ipcOutVpssPrm, sizeof(ipcOutVpssPrm));
        System_linkCreate(ipcBitsInVideoId, &ipcInVideoPrm, sizeof(ipcInVideoPrm));
        System_linkCreate(encId, &encPrm, sizeof(encPrm));
        System_linkCreate(ipcBitsOutVideoId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm));
        System_linkCreate(ipcBitsInHostId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm));

        Chains_memPrintHeapStatus();

        {
            System_linkStart(ipcBitsInHostId);
            System_linkStart(ipcBitsOutVideoId);
            System_linkStart(encId);
            System_linkStart(ipcBitsInVideoId);
            System_linkStart(ipcBitsOutVpssId);
            System_linkStart(nsfId);
            /*System_linkStart(captureId);*/
            status = System_Vcap_start();

            if (-1 == status)
                printf("SYSTEM INFO >>> Vcap start failure...\n");


            //Start taking CPU load just before starting of links
             Chains_prfLoadCalcEnable(TRUE, FALSE, FALSE);
            printf("SYSTEM INFO >>> CAP -> NSF -> ENC -> FWRITE Chain Started\n");

            while(1)
            {
                switchLayout = FALSE;
                switchCh     = FALSE;

                ch = Chains_menuRunTime();

                if(ch=='0')
                    break;
                if(ch=='p')
                    System_linkControl(captureId, CAPTURE_LINK_CMD_PRINT_ADV_STATISTICS, NULL, 0, TRUE);
                if(ch=='s')
                   switchLayout = TRUE;
                if(ch=='c')
                   switchCh = TRUE;
            }

            System_linkStop(captureId);
            System_linkStop(nsfId);
            Chains_ipcBitsStop();
            System_linkStop(ipcBitsOutVpssId);
            System_linkStop(ipcBitsInVideoId);
            System_linkStop(encId);
            System_linkStop(ipcBitsOutVideoId);
            System_linkStop(ipcBitsInHostId);
        }

        System_linkDelete(captureId);
        System_linkDelete(nsfId);
        System_linkDelete(ipcBitsOutVpssId);
        System_linkDelete(ipcBitsInVideoId);
        System_linkDelete(encId);
        System_linkDelete(ipcBitsOutVideoId);
        System_linkDelete(ipcBitsInHostId);
        Chains_ipcBitsExit();

        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        Chains_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    }

  • How do I enable the IVA-HD and Capture statistics prints? which file to modify (use i & p) to get the stat prints?

     - Capture statistics is already enabled in while(1) loop in the function Chains_multiChCaptureNsfDei

                   if(ch=='p')
                    System_linkControl(captureId, CAPTURE_LINK_CMD_PRINT_ADV_STATISTICS, NULL, 0, TRUE);
    - To enable IVA_HD statistics

                   if(ch=='p')
                    System_linkControl(<enc_link_id>, ENC_LINK_CMD_PRINT_IVAHD_STATISTICS, NULL, 0, TRUE);

    2) From the previous console prints, we could clearly make out that the BITS_IN_IPC_HLOS is not created at all. the system almost stops after creation of IPC_BITS_OUT.

      - No IPC_BITS_IN create log are present.Pls search the full log.I dont see captureLink start though

  • Hi badri,

      I have attached the Capture and IVA-HD stats prints.
    Thanks
    Subash

     
    [m3vpss ]  *** Capture Driver Advanced Statistics ***
     [m3vpss ]
     [m3vpss ]  VIP Parser Reset Count : 0
     [m3vpss ]
     [m3vpss ]      |   Total    Even     Odd  Total  Even   Odd  Min /  Max  Min /  Max Dropped Fid Repeat Frame Error Y/C
     [m3vpss ]  CH  |  Fields  Fields  Fields    FPS   FPS   FPS       Width      Height  Fields      Count (Desc Error Y/C)
     [m3vpss ]  ------------------------------------------------------------------------------------------------------------
     [m3vpss ]  000 |    3116    1558    1558     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  001 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  002 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  003 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  100 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  101 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  102 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  103 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  200 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  201 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  202 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  203 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  300 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  301 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  302 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  303 |    3103    1552    1551     68    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]
     [m3vpss ]  VIP Capture Port 0 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]  VIP Capture Port 1 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]  VIP Capture Port 2 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]  VIP Capture Port 3 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]
     [m3vpss ]  *** Capture List Manager Advanced Statistics ***
     [m3vpss ]
     [m3vpss ]  List Post Count        : 22930
     [m3vpss ]  List Stall Count       : 0
     [m3vpss ]  List Post Time (ms)    : Max = 0, Min = 0, Avg = 0, Total = 0
     [m3vpss ]  INTC Timeout Count     : (0, 0) (Min timeout value = 970, 987)
     [m3vpss ]  Descriptor miss found count : 0
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  VIP and VPDMA registers,
     [m3vpss ]  VIP0 : FIQ_STATUS  : 0x4810551c = 0x0000f400
     [m3vpss ]  VIP1 : FIQ_STATUS  : 0x48105a1c = 0x0000fc00
     [m3vpss ]  VPDMA: LIST_BUSY   : 0x4810d00c = 0x00000000
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  116588: CAPTURE: Fields = 49632 (fps = 1082, CPU Load = 0)
     [m3vpss ]  116588: CAPTURE: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  116588: SYSTEM  : FREE SPACE : System Heap      = 6320 B, Mbx = 10240 msgs)
     [m3vpss ]  116588: SYSTEM  : FREE SPACE : SR0 Heap         = 11003648 B (10 MB)
     [m3vpss ]  116588: SYSTEM  : FREE SPACE : Frame Buffer     = 104821632 B (99 MB)
     [m3vpss ]  116589: SYSTEM  : FREE SPACE : Bitstream Buffer = 198197120 B (189 MB)
     [m3vpss ]  116589: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134217728 B (128 MB)  - TILER ON
     [m3vpss ]  116589: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON


     **************** ENC Link IVA HD Statistics *********************

     Enter Choice:  [m3video]       120566: HDVICP-ID:0
     [m3video] All percentage figures are based off totalElapsedTime
     [m3video]               totalAcquire2wait :0 %
     [m3video]               totalWait2Isr :0 %
     [m3video]               totalIsr2Done :0 %
     [m3video]               totalWait2Done :0 %
     [m3video]               totalDone2Release :0 %
     [m3video]               totalAcquire2Release :0 %
     [m3video]               totalAcq2acqDelay :0 %
     [m3video]               totalElapsedTime in msec :       0
     [m3video]               numAccessCnt:       0
     [m3video]              IVA-FPS :       0
     [m3video]              Average time spent per frame in microsec:       0
     [m3video]      120567: HDVICP-ID:1
     [m3video] All percentage figures are based off totalElapsedTime
     [m3video]               totalAcquire2wait :0 %
     [m3video]               totalWait2Isr :0 %
     [m3video]               totalIsr2Done :0 %
     [m3video]               totalWait2Done :0 %
     [m3video]               totalDone2Release :0 %
     [m3video]               totalAcquire2Release :0 %
     [m3video]               totalAcq2acqDelay :0 %
     [m3video]               totalElapsedTime in msec :       0
     [m3video]               numAccessCnt:       0
     [m3video]              IVA-FPS :       0
     [m3video]              Average time spent per frame in microsec:       0
     [m3video]      120568: HDVICP-ID:2
     [m3video] All percentage figures are based off totalElapsedTime
     [m3video]               totalAcquire2wait :0 %
     [m3video]               totalWait2Isr :0 %
     [m3video]               totalIsr2Done :0 %
     [m3video]               totalWait2Done :0 %
     [m3video]               totalDone2Release :0 %
     [m3video]               totalAcquire2Release :0 %
     [m3video]               totalAcq2acqDelay :0 %
     [m3video]               totalElapsedTime in msec :       0
     [m3video]               numAccessCnt:       0
     [m3video]              IVA-FPS :       0
     [m3video]              Average time spent per frame in microsec:       0

  • Capture is captruing frames but encoding is not happening. You will have to debug slink by lnik to see which link is dropping buffers.

    Pls check the log of following linkControlCmds:

    1.NSF_LINK_CMD_PRINT_STATISTICS

    2.NSF_LINK_CMD_PRINT_BUFFER_STATISTICS

    3.ENC_LINK_CMD_PRINT_STATISTICS

    4.ENC_LINK_CMD_PRINT_BUFFER_STATISTICS

    Capture will output fields and since you dont have dei in the chain, encoder will also do field encoding. Are you sure this is what you want ?

  • Hi Badri,

     Thanks again!!!

    I took this use case to have more hands on experience with RDK Link APIs. Once successful, I will start my actual use cases. So field encoding isn't a problem, I shall introduce DEI later.

    I have attached all 4 stat and Buff stat prints.

    Thanks

    Subash

    *********** NSF_LINK_CMD_PRINT_STATISTICS ***************
     [m3vpss ]  *** [NSF0] NSF Statistics ***
     [m3vpss ]
     [m3vpss ]  Elasped Time           : 41 secs
     [m3vpss ]  Total Fields Processed : 21974
     [m3vpss ]  Total Fields FPS       : 1192 FPS
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  CH  | In Recv In Reject In Process Out User Out Out
     [m3vpss ]  Num | FPS     FPS       FPS        FPS Skip FPS Skip FPS
     [m3vpss ]  ------------------------------------------------
     [m3vpss ]    0 |      67        33         33  33       33        0
     [m3vpss ]    1 |      66        33         33  33       33        0
     [m3vpss ]    2 |      66        33         33  33       33        0
     [m3vpss ]    3 |      66        33         33  33       33        0
     [m3vpss ]    4 |      66        33         33  33       33        0
     [m3vpss ]    5 |      66        33         33  33       33        0
     [m3vpss ]    6 |      66        33         33  33       33        0
     [m3vpss ]    7 |      66        33         33  33       33        0
     [m3vpss ]    8 |      66        33         33  33       33        0
     [m3vpss ]    9 |      66        33         33  33       33        0
     [m3vpss ]   10 |      66        33         33  33       33        0
     [m3vpss ]   11 |      66        33         33  33       33        0
     [m3vpss ]   12 |      66        33         33  33       33        0
     [m3vpss ]   13 |      66        33         33  33       33        0
     [m3vpss ]   14 |      66        33         33  33       33        0
     [m3vpss ]   15 |      66        33         33  33       33        0
     [m3vpss ]

     [host] CHAINS_IPCBITS:Chains_ipcBitsSendFxn:INFO: periodic print..

     ************ NSF_LINK_CMD_PRINT_BUFFER_STATISTICS **************

     Enter Choice:  [m3vpss ]
     [m3vpss ]  *** [NSF0] NSF Statistics ***
     [m3vpss ] 218023: NSF: Rcvd from prev = 48325, Returned to prev = 48325
     [m3vpss ] NSF Out [0] Buf Q Status
     [m3vpss ] Empty Q -> count 0, wrPtr 0, rdPtr 0
     [m3vpss ] Full Q -> count 7, wrPtr 358, rdPtr 351

     ************* ENC_LINK_CMD_PRINT_STATISTICS ****************

     Enter Choice:  [m3video]
     [m3video]  *** ENCODE Statistics ***
     [m3video]
     [m3video]  Elasped Time           : 51 secs
     [m3video]
     [m3video]
     [m3video]  CH  | In Recv In Skip In User  Out Latency
     [m3video]  Num | FPS     FPS     Skip FPS FPS Min / Max
     [m3video]  --------------------------------------------
     [m3video]    0 |      34      34        0   0 255 /   0
     [m3video]    1 |      34      34        0   0 255 /   0
     [m3video]    2 |      34      34        0   0 255 /   0
     [m3video]    3 |      34      34        0   0 255 /   0
     [m3video]    4 |      34      34        0   0 255 /   0
     [m3video]    5 |      34      34        0   0 255 /   0
     [m3video]    6 |      34      34        0   0 255 /   0
     [m3video]    7 |      34      34        0   0 255 /   0
     [m3video]    8 |      34      34        0   0 255 /   0
     [m3video]    9 |      34      34        0   0 255 /   0
     [m3video]   10 |      34      34        0   0 255 /   0
     [m3video]   11 |      34      34        0   0 255 /   0
     [m3video]   12 |      34      34        0   0 255 /   0
     [m3video]   13 |      34      34        0   0 255 /   0
     [m3video]   14 |      34      34        0   0 255 /   0
     [m3video]   15 |      34      34        0   0 255 /   0
     [m3video]
     [m3video] Multi Channel Encode Average Submit Batch Size
     [m3video] Max Submit Batch Size : 24
     [m3video] IVAHD_0 Average Batch Size : 0
     [m3video] IVAHD_0 Max achieved Batch Size : 0
     [m3video] IVAHD_1 Average Batch Size : 0
     [m3video] IVAHD_1 Max achieved Batch Size : 0
     [m3video] IVAHD_2 Average Batch Size : 0
     [m3video] IVAHD_2 Max achieved Batch Size : 0
     [m3video]
     [m3video] Multi Channel Encode Batch break Stats
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %

    ********** ENC_LINK_CMD_PRINT_BUFFER_STATISTICS *************

     Enter Choice:  [m3video]
     [m3video]  *** Encode Statistics ***
     [m3video]   227913: ENC: Rcvd from prev = 29512, Returned to prev = 29503
     [m3video]  ENC Out  BitBuf Q Status
     [m3video] Empty Q 0 -> count 96, wrPtr 96, rdPtr 0
     [m3video] Full Q -> count 0, wrPtr 0, rdPtr 0


  • It appears frames are being dropped due to FID mismatch.Pls try with the following changes:

     ipcOutVpssPrm.notifyNextLink            = TRUE;
     ipcOutVpssPrm.notifyPrevLink            = TRUE;
     ipcOutVpssPrm.noNotifyMode              = FALSE;

      ipcInVideoPrm.notifyNextLink            = TRUE;

      ipcInVideoPrm.notifyPrevLink            = TRUE;
      ipcInVideoPrm.noNotifyMode              = FALSE;

    /dvr_rdk/demos/link_api_demos/common/chains_ipcBits.c

    #define CHAINS_IPC_BITS_NONOTIFYMODE_BITSIN                                 (FALSE)

     

  • Hi Badri,

        I took your recommended settings!! modified "chains_ipcBits.c" as well..

    The changes are below!!!

    /**
    * Noise Filter to ipcBitsOutVpss
    **/

        ipcOutVpssPrm.inQueParams.prevLinkId    = nsfId;
        ipcOutVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVpssPrm.numOutQue                 = 1;
        ipcOutVpssPrm.notifyNextLink            = TRUE;
        ipcOutVpssPrm.notifyPrevLink            = TRUE;
        ipcOutVpssPrm.noNotifyMode              = FALSE;
        ipcOutVpssPrm.outQueParams[0].nextLink     = ipcBitsInVideoId;
    /**
    * ipcBitsOutVpss to ipcBitsInVideo
    **/
        ipcInVideoPrm.inQueParams.prevLinkId    = ipcBitsOutVpssId;
        ipcInVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcInVideoPrm.numOutQue                 = 1;
        ipcInVideoPrm.notifyNextLink            = TRUE;
        ipcInVideoPrm.notifyPrevLink            = TRUE;
        ipcInVideoPrm.noNotifyMode              = FALSE;
        ipcInVideoPrm.outQueParams[0].nextLink  = encId;


    But still, ENC Link is not receiving any data.

    Attaching the prints after modification.

    ************* ENC_LINK_CMD_PRINT_STATISTICS ****************
     Enter Choice:  [m3video] Multi Channel Encode Average Submit Batch Size
     [m3video] Max Submit Batch Size : 24
     [m3video] IVAHD_0 Average Batch Size : 0
     [m3video] IVAHD_0 Max achieved Batch Size : 0
     [m3video] IVAHD_1 Average Batch Size : 0
     [m3video] IVAHD_1 Max achieved Batch Size : 0
     [m3video] IVAHD_2 Average Batch Size : 0
     [m3video] IVAHD_2 Max achieved Batch Size : 0
     [m3video]
     [m3video] Multi Channel Encode Batch break Stats
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %

    ********** ENC_LINK_CMD_PRINT_BUFFER_STATISTICS *************

     Enter Choice:  [m3video]
     [m3video]  *** Encode Statistics ***
     [m3video]   532064: ENC: Rcvd from prev = 248944, Returned to prev = 248933
     [m3video]  ENC Out  BitBuf Q Status
     [m3video] Empty Q 0 -> count 96, wrPtr 96, rdPtr 0
     [m3video] Full Q -> count 0, wrPtr 0, rdPtr 0


    Thanks

    Subash


  • Pls share log of all the stats cmds.

  • Attached all the stat prints....

    Enter Choice:  [m3vpss ]
     [m3vpss ]  *** Capture Driver Advanced Statistics ***
     [m3vpss ]
     [m3vpss ]  VIP Parser Reset Count : 0
     [m3vpss ]
     [m3vpss ]      |   Total    Even     Odd  Total  Even   Odd  Min /  Max  Min /  Max Dropped Fid Repeat Frame Error Y/C
     [m3vpss ]  CH  |  Fields  Fields  Fields    FPS   FPS   FPS       Width      Height  Fields      Count (Desc Error Y/C)
     [m3vpss ]  ------------------------------------------------------------------------------------------------------------
     [m3vpss ]  000 |    1321     661     660     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  001 |    1316     658     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  002 |    1316     658     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  003 |    1316     658     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  100 |    1316     659     657     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  101 |    1316     659     657     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  102 |    1316     659     657     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  103 |    1316     659     657     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  200 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  201 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  202 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  203 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          0 0/0 (0/0)
     [m3vpss ]  300 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  301 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  302 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]  303 |    1317     659     658     69    34    34  720 /  720  243 /  244       1          1 0/0 (0/0)
     [m3vpss ]
     [m3vpss ]  VIP Capture Port 0 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]  VIP Capture Port 1 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]  VIP Capture Port 2 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]  VIP Capture Port 3 | DescMissMatch1 = 0, DescMissMatch2 = 0 , DescMissMatch3 = 0
     [m3vpss ]
     [m3vpss ]  *** Capture List Manager Advanced Statistics ***
     [m3vpss ]
     [m3vpss ]  List Post Count        : 9734
     [m3vpss ]  List Stall Count       : 0
     [m3vpss ]  List Post Time (ms)    : Max = 0, Min = 0, Avg = 0, Total = 0
     [m3vpss ]  INTC Timeout Count     : (0, 0) (Min timeout value = 979, 991)
     [m3vpss ]  Descriptor miss found count : 0
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  VIP and VPDMA registers,
     [m3vpss ]  VIP0 : FIQ_STATUS  : 0x4810551c = 0x0000f400
     [m3vpss ]  VIP1 : FIQ_STATUS  : 0x48105a1c = 0x0000fc00
     [m3vpss ]  VPDMA: LIST_BUSY   : 0x4810d00c = 0x00000000
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  75182: CAPTURE: Fields = 21034 (fps = 1080, CPU Load = 0)
     [m3vpss ]  75182: CAPTURE: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  75183: SYSTEM  : FREE SPACE : System Heap      = 6320 B, Mbx = 10239 msgs)
     [m3vpss ]  75183: SYSTEM  : FREE SPACE : SR0 Heap         = 11003648 B (10 MB)
     [m3vpss ]  75183: SYSTEM  : FREE SPACE : Frame Buffer     = 104821632 B (99 MB)
     [m3vpss ]  75183: SYSTEM  : FREE SPACE : Bitstream Buffer = 198197120 B (189 MB)
     [m3vpss ]  75183: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134217728 B (128 MB)  - TILER ON
     [m3vpss ]  75183: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON

    ********************* IVA-HD STATS *****************************

     Enter Choice:  [m3video]       104825: HDVICP-ID:0
     [m3video] All percentage figures are based off totalElapsedTime
     [m3video]               totalAcquire2wait :0 %
     [m3video]               totalWait2Isr :0 %
     [m3video]               totalIsr2Done :0 %
     [m3video]               totalWait2Done :0 %
     [m3video]               totalDone2Release :0 %
     [m3video]               totalAcquire2Release :0 %
     [m3video]               totalAcq2acqDelay :0 %
     [m3video]               totalElapsedTime in msec :       0
     [m3video]               numAccessCnt:       0
     [m3video]              IVA-FPS :       0
     [m3video]              Average time spent per frame in microsec:       0
     [m3video]      104826: HDVICP-ID:1
     [m3video] All percentage figures are based off totalElapsedTime
     [m3video]               totalAcquire2wait :0 %
     [m3video]               totalWait2Isr :0 %
     [m3video]               totalIsr2Done :0 %
     [m3video]               totalWait2Done :0 %
     [m3video]               totalDone2Release :0 %
     [m3video]               totalAcquire2Release :0 %
     [m3video]               totalAcq2acqDelay :0 %
     [m3video]               totalElapsedTime in msec :       0
     [m3video]               numAccessCnt:       0
     [m3video]              IVA-FPS :       0
     [m3video]              Average time spent per frame in microsec:       0
     [m3video]      104827: HDVICP-ID:2
     [m3video] All percentage figures are based off totalElapsedTime
     [m3video]               totalAcquire2wait :0 %
     [m3video]               totalWait2Isr :0 %
     [m3video]               totalIsr2Done :0 %
     [m3video]               totalWait2Done :0 %
     [m3video]               totalDone2Release :0 %
     [m3video]               totalAcquire2Release :0 %
     [m3video]               totalAcq2acqDelay :0 %
     [m3video]               totalElapsedTime in msec :       0
     [m3video]               numAccessCnt:       0
     [m3video]              IVA-FPS :       0
     [m3video]              Average time spent per frame in microsec:       0


    *********** ENC_LINK_CMD_PRINT_STATISTICS ********************

     Enter Choice:  [m3video]
     [m3video]  *** ENCODE Statistics ***
     [m3video]
     [m3video]  Elasped Time           : 30 secs
     [m3video]
     [m3video]
     [m3video]  CH  | In Recv In Skip In User  Out Latency
     [m3video]  Num | FPS     FPS     Skip FPS FPS Min / Max
     [m3video]  --------------------------------------------
     [m3video]    0 |      34      34        0   0 255 /   0
     [m3video]    1 |      34      34        0   0 255 /   0
     [m3video]    2 |      34      34        0   0 255 /   0
     [m3video]    3 |      34      34        0   0 255 /   0
     [m3video]    4 |      34      34        0   0 255 /   0
     [m3video]    5 |      34      34        0   0 255 /   0
     [m3video]    6 |      34      34        0   0 255 /   0
     [m3video]    7 |      34      34        0   0 255 /   0
     [m3video]    8 |      34      34        0   0 255 /   0
     [m3video]    9 |      34      34        0   0 255 /   0
     [m3video]   10 |      34      34        0   0 255 /   0
     [m3video]   11 |      34      34        0   0 255 /   0
     [m3video]   12 |      34      34        0   0 255 /   0
     [m3video]   13 |      34      34        0   0 255 /   0
     [m3video]   14 |      34      34        0   0 255 /   0
     [m3video]   15 |      34      34        0   0 255 /   0
     [m3video]
     [m3video] Multi Channel Encode Average Submit Batch Size
     [m3video] Max Submit Batch Size : 24
     [m3video] IVAHD_0 Average Batch Size : 0
     [m3video] IVAHD_0 Max achieved Batch Size : 0
     [m3video] IVAHD_1 Average Batch Size : 0
     [m3video] IVAHD_1 Max achieved Batch Size : 0
     [m3video] IVAHD_2 Average Batch Size : 0
     [m3video] IVAHD_2 Max achieved Batch Size : 0
     [m3video]
     [m3video] Multi Channel Encode Batch break Stats
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %
     [m3video] Total Number of Batches created: 0
     [m3video] All numbers are based off total number of Batches created
     [m3video]       Batch breaks due to batch sizeexceeding limit: 0 %
     [m3video]       Batch breaks due to ReqObj Que being empty: 0 %
     [m3video]       Batch breaks due to changed resolution class: 0 %
     [m3video]       Batch breaks due to interlace and progressivecontent mix: 0 %
     [m3video]       Batch breaks due to channel repeat: 0 %
     [m3video]       Batch breaks due to different codec: 0 %

    ************** ENC_LINK_CMD_PRINT_BUFFER_STATISTICS **********************

     Enter Choice:  [m3video]
     [m3video]  *** Encode Statistics ***
     [m3video]   89397: ENC: Rcvd from prev = 18217, Returned to prev = 18209
     [m3video]  ENC Out  BitBuf Q Status
     [m3video] Empty Q 0 -> count 96, wrPtr 96, rdPtr 0
     [m3video] Full Q -> count 0, wrPtr 0, rdPtr 0


    ******************* NSF_LINK_CMD_PRINT_STATISTICS **********************
     Enter Choice:  [m3vpss ]
     [m3vpss ]  *** [NSF0] NSF Statistics ***
     [m3vpss ]
     [m3vpss ]  Elasped Time           : 43 secs
     [m3vpss ]  Total Fields Processed : 23318
     [m3vpss ]  Total Fields FPS       : 1192 FPS
     [m3vpss ]
     [m3vpss ]
     [m3vpss ]  CH  | In Recv In Reject In Process Out User Out Out
     [m3vpss ]  Num | FPS     FPS       FPS        FPS Skip FPS Skip FPS
     [m3vpss ]  ------------------------------------------------
     [m3vpss ]    0 |      68        34         34  34       34        0
     [m3vpss ]    1 |      67        33         33  33       33        0
     [m3vpss ]    2 |      67        33         33  33       33        0
     [m3vpss ]    3 |      67        33         33  33       33        0
     [m3vpss ]    4 |      67        33         33  33       33        0
     [m3vpss ]    5 |      67        33         33  33       33        0
     [m3vpss ]    6 |      67        33         33  33       33        0
     [m3vpss ]    7 |      67        33         33  33       33        0
     [m3vpss ]    8 |      67        33         33  33       33        0
     [m3vpss ]    9 |      67        33         33  33       33        0
     [m3vpss ]   10 |      67        33         33  33       33        0
     [m3vpss ]   11 |      67        33         33  33       33        0
     [m3vpss ]   12 |      67        33         33  33       33        0
     [m3vpss ]   13 |      67        33         33  33       33        0
     [m3vpss ]   14 |      67        33         33  33       33        0
     [m3vpss ]   15 |      67        33         33  33       33        0
     [m3vpss ]

     
    **************** NSF_LINK_CMD_PRINT_BUFFER_STATISTICS **********************
     Enter Choice:  [m3vpss ]
     [m3vpss ]  *** [NSF0] NSF Statistics ***
     [m3vpss ] 101193: NSF: Rcvd from prev = 49220, Returned to prev = 49220
     [m3vpss ] NSF Out [0] Buf Q Status
     [m3vpss ] Empty Q -> count 0, wrPtr 0, rdPtr 0
     [m3vpss ] Full Q -> count 0, wrPtr 38, rdPtr 38

  • Looks like your app is setting NSF_LINK_CMD_SET_FRAME_RATE with input as 60 and output as 30.This is the reason for the skip.Ensure

    NsfLink_CreateParams.inputFrameRate = 60

    NsfLink_CreateParams.outputFrameRate = 60

    and you dont invoke NSF_LINK_CMD_SET_FRAME_RATE with wrong values.

  • Thanks Badri,

        With the NSF frame rate settings, Everything works fine now!! I am able to dump the encoded bits to a file.

    Thank you very much for your help!!