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.

a question about vdec_vdis demo in DVRRDK

Hi, I want to know if the output of declink is in decode order or display order in vdec_vdis demo.

I change the link structure as below:

BitOutHost-BitInVideo-DEC-OutVideo-InVpss-Dup ---- FrameOutVpss-FrameInHost
                                                                                 |
                                                                             SWMS ---- Display

After FrameInHost, I use mmap to the frame buffer data and  write it into a yuv file.

Then I play the yuv file and find that the picture is there but it seems that the picture order is sometimes reversed.So I doubt whether the output order of declink is the same as display order if there are B frames.

The display result is correct with no order reversed.What makes the difference between the displayed video and the video written to file?


  • The decoder output is in display order. Does your input stream have B -frames ? If so when running the vdec_vdis demo what is the value of displaydelay that you are setting in the ini file ? Can you share the .ini file ? Also what is the number of reference frames for your stream ?

  • Hi, I have checked the input stream and it has B frames. 

    The .ini file is like:

    [file00]

    path = /data/dm816x_1080p_demo.264

    width = 1920

    height = 1080

    enable = 1

    with no displaydelay in it.

    I also check the pps value, both num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1 are 0.

    Should I add a displaydelay ?

  • Which RDK version are you using ? Can add the following to the ini file:

    numbuf    = 0
    displaydelay    = 0

    Also can you disable AVSYNC in file

    /dvr_rdk/mcfw/src_linux/mcfw_api/usecases/multich_vdec_vdis.c

    mulich_vdec_vdis_set_avsync_vidque_prm()

    queCfg->avsyncEnable = FALSE;


  • I am using DVRRDK_01.06.00.11(an old version).

    I add numbuf and displaydelay but it does not work.When reading ini files, current program does not read numbuf and displaydelay value. The proof is that in demo_vdec_vdis.h I find no numbuf and displaydelay value:

    #define MCFW_IPC_BITS_GENERATE_INI_AUTOMATIC 0
    #define MCFW_IPC_BITS_INI_FILE_NO "file"
    #define MCFW_IPC_BITS_INI_FILE_PATH "path"
    #define MCFW_IPC_BITS_INI_FILE_WIDTH "width"
    #define MCFW_IPC_BITS_INI_FILE_HEIGHT "height"
    #define MCFW_IPC_BITS_INI_FILE_ENABLE "enable"
    #define MCFW_IPC_BITS_MAX_FILE_NUM_IN_INI 100
    #define MCFW_IPC_BITS_MAX_RES_NUM 10

    Maybe my dvrrdk is old but could I just change bottom layer settings like decodelink?

  • Pls migrate to latest RDK version 3.0.1 as I am not sure if Bframe support was present in the version you are using.

    If you want to modify decLink change

    /dvr_rdk/mcfw/src_bios6/links_m3video/iva_dec/decLink_h264.c

    decLink_h264_set_static_params

    staticParams->viddec3Params.displayDelay = IVIDDEC3_DISPLAY_DELAY_AUTO.

    Although I am not sure if it will work as this is very old RDK version