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.

question about dvrrdk3.0 decoder



when i use dvrrdk2.0 ,i can use this flow to call decoder successfully. but when i use the same flow in dvrrdk3,0 ,i get failed.

flow:

1.Vdec_requestBitstreamBuffer   -----------use VDEC_BUFREQTYPE_BUFSIZE, and number of buf is one

2.copy data to bufVirtAddr----------

3.Vdec_putBitstreamBuffer---------

is there any differences between sdk2.0 and sdk3.0  in decoder ?

thank you !

  • in my code ,i display two channel ,one is from capture ,one if from network.

    [m3vpss ]  Win | Ch  | Input      | Input          | Input         | Input       | Output     |  Output         | Output        | Output      | Low Cost | SWMS | Data  | Blank |
     [m3vpss ]  Num | Num | Start X, Y | Width x Height | Pitch Y / C   | Memory Type | Start X, Y |  Width x Height | Pitch Y / C   | Memory Type | ON / OFF | Inst | Format| Frame |
     [m3vpss ]  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
     [m3vpss ]    0 |   4 |    0,    0 |  1920 x   1080 |  2048 /  2048 | NON-TILED   |    0,  270 |   960 x    540 |  3840 /      0 | NON-TILED   |      OFF |    0 |  420SP |   OFF |
     [m3vpss ]    1 |   1 |    0,    0 |   720 x    144 |  2880 /  2880 | NON-TILED   |  960,  270 |   960 x    540 |  3840 /      0 | NON-TILED   |      ON  |    0 |  422I  |   OFF |

    channel 0 is from decoder, format is 420sp ?is this problem ?i rememberd display format is 422I

  • There are several fields that have to be populated and just copying to bufVirtAddr is not enough.The issue is not due to 420SP format. Based on the usecase you are using refer either

    /dvr_rdk/demos/mcfw_api_demos/mcfw_demo/demo_vcap_venc_vdis_bits_wr.c

    or

    /dvr_rdk/demos/mcfw_api_demos/mcfw_demo/demo_vcap_venc_vdec_vdis_bits_rdwr.c

    for which fields to populate before doing Vdec_putBitstreamBuffer

    Also if there is some error in configuration you will also see some warning printed on the console. Check the console logs.At the minimum you should set filledBufSize and channelNum atleast.

    Note that rdk 3.0 is not supported so you are wasting your time migrating to release that is not supported. Pls migrate to  DVR RDK 4.0 directly.

     

  • dvrrdk 4.0 i can't get this release now. and i refer to demo_vdec_vdis_bits_rd.c to change my project ,but Vdec_requestBitstreamBuffer still use VDEC_BUFREQTYPE_BUFSIZE type. and now ,it got error as follows:

     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS faileddue to invalid cfg
     [m3vpss ] Config:DisplayID[0],ChID[0]
     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS faileddue to invalid cfg
     [m3vpss ] Config:DisplayID[1],ChID[0]
     [m3vpss ] AVSYNC:AVSYNC_LINK_CMD_SET_FIRST_VIDPTS faileddue to invalid cfg
     [m3vpss ] Config:DisplayID[2],ChID[-1]

    and i have setted timestamps like this:

    UInt64 curTimeStamp =
          gVterm_config.frameCnt[pEmptyBuf->chnId] * VDEC_VDIS_FRAME_DURATION_MS;
        pEmptyBuf->lowerTimeStamp = (UInt32)(curTimeStamp & 0xFFFFFFFF);
        pEmptyBuf->upperTimeStamp = (UInt32)((curTimeStamp >> 32)& 0xFFFFFFFF);

    i dont know why it cant display decoder data?

  • i use another chain , by ourselves. and  i found details as follows:

     [m3video]  *** DECODE Statistics ***
     [m3video] 
     [m3video]  Elasped Time           : 667 secs
     [m3video] 
     [m3video] 
     [m3video]  CH  | In Recv In User  Out
     [m3video]  Num | FPS     Skip FPS FPS
     [m3video]  -----------------------------------
     [m3video]    0 |    1482     1482   0
     [m3video]    1 |       0        0   0
     [m3video]    2 |       0        0   0
     [m3video]    3 |       0        0   0

    maybe the issue is skip fps , can you tell me which mistake i may made?

  • If all frames are being skipped it indicates the decode channel is disabled or the channel is not created ,CHeck your decLink create arguments

  • after mapping the decID to disID, now it's ok

    i use MultiCh_setDec2DispMap to do this wok.

    but i dont know how to set the display fps. because i use pip display mode , 

    it seems that two videos have different fps, and then we wiil see the small window will flashing.

  • There is a bug in RDK 3.0 which causes pip display to flicker. Pls migrate to RDK 4.0.Contact TI Sales/FAE to get RDK 4.0 release.

    To see if you are facing this bug try this temporary hack:

    /dvr_rdk/mcfw/src_bios6/links_m3vpss/swMs/swMsLink_drv.c

    Int32 SwMsLink_drvDoScaling(SwMsLink_Obj * pObj)

    Change

        pObj->lastOutBufPtr = pOutFrame;

    to

        pObj->lastOutBufPtr = NULL;

  • thank you very much . 

    now it can display ok!