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.

HDVICP and RMAN versioning on DM6467

Hello,

I created a codec server containing some of our algorithms as well as TI's mpeg2dec (from the object code in the codec evaluation pack). Our algorithms run correctly, however when attempting to create an instance of mpeg2dec, I get the following messages:

[DSP] @0,874,111tk: [+0 T:0x8fa49e44 S:0x8fa4dabc] ti.sdo.fc.rman - RMAN_assignResources> Enter (algHandle=0x8a000000, resFxns=0x8fa46bb8, scratchGroupId=0)
[DSP] @0,874,256tk: [+7 T:0x8fa49e44 S:0x8fa4dabc] ti.sdo.fc.rman - RMAN_assignResources> Resource protocol ti.sdo.fc.ires.hdvicp and version 0x8fa46b5c didn't match any registered protocol and version
[DSP] @0,874,372tk: [+7 T:0x8fa49e44 S:0x8fa4db0c] ti.sdo.ce.alg.Algorithm - Algorithm_create> Assignment of alg resources through RMAN FAILED (0x8)

In the document about IRES and RMAN (spraai5), there is this comment:

"Currently RMAN does a check to ensure that the versions are an exact match. It will raise an error when an algorithm is built with a different version of a resource protocol definition than the version used by the registered IRESMAN resource manager implementation."

How would I determine which version of RMAN we are using, and the version against which mpeg2dec was built?

Thanks, Olivier

  • RMAN is part of the framework components software module.  Each codec should come with a user's guide, datasheet, and release notes.  The release notes should have information on the version of framework components used to build the codec. 

    Similarly, you can go to the root DVSDK directory which you are using, and see the version of the framework components you are using (typically matches name of framework components directory).  Alternatively, codec engine release notes should also describe the framework components version.

  • Thanks Juan. Here is what is in the release notes for the mpeg2dec:

    MPEG2 Decoder Version 1.00 Release Notes (June 2008)
    Validated on DM6467 EVM:
      - Code Composer Studio Version 3.3.49
      - Code Generation Tool version 6.0.8
      - Codec Engine (CE) version 2.10.01 or newer
      - DSP/BIOS version 5.31
      - HDVICP API version 1.01.000

    Some of the packages we have installed (on Linux):

      - Code generation tools 6.1.3
      - Codec Engine 2.10.01
      - BIOS 5.32.04
      - Framework 2.10.01

    In our framework components, the file packages/ti/sdo/fc/ires/hdvicp/ires_hdvicp.h shows this:

      IRES_HDVICP_PROTOCOLREVISION = {1, 0, 0}

    I'm not sure if I'm reading this right, but it seems that the header file shows version 1.0.0 whereas the mpeg2dec was built against HDVICP 1.1.0? If that is the case, where can I find the latest HDVICP? The framework components 2.10.01 seem to be the latest available for download from TI.

    Thanks, Olivier

     

  • After double-checking the package versions, I can't find anything amiss.

    I have looked through the runtime debug message (setting DMAI_DEBUG=2, CE_DEBUG=3 and CE_DSPDEBUG=1 in the environment), but can't find any more hints as to what is causing this problem.

    Given the initial error message...

    ti.sdo.fc.rman - RMAN_assignResources> Resource protocol ti.sdo.fc.ires.hdvicp and version 0x8fa46a0c didn't match any registered protocol and version

    ...is there a way to get RMAN to dump out all the registered protocols?


  • Are you working with DVSDK 1_40_00_31? it looks like all the versions you listed above (for codec and your work environment) match this DVSDK release.

    If so can you build the dm6467_dvsdk_combos_1_15 directory, this should include the MPEG2 decoder.  If you can build this, then at least we will know you have all the right software components. 

     

  • Yes, we have DVSDK_1_40_00_31.

    I can't rebuild the dm6467_dvsdk_combos_1_15 directory. Here's the build output:
    /opt/dvsdk/xdctools_3_10/xdc -PR packages
    making all: Fri Sep 5 14:49:57 MDT 2008 ...
    ======== .interfaces [packages/ti/sdo/codecs/aacdec] ========
    ======== .interfaces [packages/ti/sdo/codecs/aacdec/ce] ========
    #
    # making package.mak (because of .xdcenv.mak) ...
    /opt/dvsdk/xdctools_3_10/tconf  -Dxdc.path="/home/olivier/ti/dm6467_dvsdk_combos_1_15;/home/olivier/ti/dm6467_dvsdk_combos_1_15/packages;/opt/dvsdk/xdais_6_10_01/packages;/opt/dvsdk/framework_components_2_10_01/packages;/opt/dvsdk/framework_components_2_10_01/fctools/packages;/opt/dvsdk/bios_5_32_04/packages;/opt/dvsdk/cmem_2_10_00_02/packages;/opt/dvsdk/dsplink-davinci-v1.50-prebuilt/packages;/opt/dvsdk/codec_engine_2_10_01/packages;/opt/dvsdk/codec_engine_2_10_01/cetools/packages;/opt/dvsdk/biosutils_1_01_00/packages;/opt/dvsdk/xdctools_3_10/packages;../../../../.." -Dxdc.root=/opt/dvsdk/xdctools_3_10 -Dxdc.hostOS=Linux -Dconfig.importPath=".;/home/olivier/ti/dm6467_dvsdk_combos_1_15;/home/olivier/ti/dm6467_dvsdk_combos_1_15/packages;/opt/dvsdk/xdais_6_10_01/packages;/opt/dvsdk/framework_components_2_10_01/packages;/opt/dvsdk/framework_components_2_10_01/fctools/packages;/opt/dvsdk/bios_5_32_04/packages;/opt/dvsdk/cmem_2_10_00_02/packages;/opt/dvsdk/dsplink-davinci-v1.50-prebuilt/packages;/opt/dvsdk/codec_engine_2_10_01/packages;/opt/dvsdk/codec_engine_2_10_01/cetools/packages;/opt/dvsdk/biosutils_1_01_00/packages;/opt/dvsdk/xdctools_3_10/packages;../../../../..;/opt/dvsdk/xdctools_3_10;/opt/dvsdk/xdctools_3_10/etc" -Dxdc.bld.targets="" -DTOOLS=   /opt/dvsdk/xdctools_3_10/packages/xdc/bld/bld.js /home/olivier/ti/dm6467_dvsdk_combos_1_15/config.bld package.bld package.mak "prod"
    #
    # generating interfaces for package ti.sdo.codecs.aacdec.ce (because package/package.xdc.inc is older than package/build.cfg) ...
    /opt/dvsdk/xdctools_3_10/xs -Dxdc.path="/home/olivier/ti/dm6467_dvsdk_combos_1_15;/home/olivier/ti/dm6467_dvsdk_combos_1_15/packages;/opt/dvsdk/xdais_6_10_01/packages;/opt/dvsdk/framework_components_2_10_01/packages;/opt/dvsdk/framework_components_2_10_01/fctools/packages;/opt/dvsdk/bios_5_32_04/packages;/opt/dvsdk/cmem_2_10_00_02/packages;/opt/dvsdk/dsplink-davinci-v1.50-prebuilt/packages;/opt/dvsdk/codec_engine_2_10_01/packages;/opt/dvsdk/codec_engine_2_10_01/cetools/packages;/opt/dvsdk/biosutils_1_01_00/packages;/opt/dvsdk/xdctools_3_10/packages;../../../../.." -Dxdc.root=/opt/dvsdk/xdctools_3_10 -Dxdc.hostOS=Linux -Dconfig.importPath=".;/home/olivier/ti/dm6467_dvsdk_combos_1_15;/home/olivier/ti/dm6467_dvsdk_combos_1_15/packages;/opt/dvsdk/xdais_6_10_01/packages;/opt/dvsdk/framework_components_2_10_01/packages;/opt/dvsdk/framework_components_2_10_01/fctools/packages;/opt/dvsdk/bios_5_32_04/packages;/opt/dvsdk/cmem_2_10_00_02/packages;/opt/dvsdk/dsplink-davinci-v1.50-prebuilt/packages;/opt/dvsdk/codec_engine_2_10_01/packages;/opt/dvsdk/codec_engine_2_10_01/cetools/packages;/opt/dvsdk/biosutils_1_01_00/packages;/opt/dvsdk/xdctools_3_10/packages;../../../../..;/opt/dvsdk/xdctools_3_10;/opt/dvsdk/xdctools_3_10/etc" -Dxdc.bld.targets="" -DTOOLS=  -f xdc/services/intern/cmd/build.xs -m package/package.xdc.dep -i package/package.xdc.inc package.xdc
        translating AACDEC
    gmake[1]: *** No rule to make target `package/.vers_g102', needed by `.interfaces'.  Stop.
    gmake: *** [packages/ti/sdo/codecs/aacdec/ce,.interfaces] Error 2
    make: *** [.all-packages] Error 2

    I can, however, rebuild the demos in dvsdk_demos_1_40_00_18.I can also build new applications that use just our algorithms.

    What I noticed is that in dm6467_dvsdk_combos_1_15, there is no object code for mpeg2dec. We got a separate package containing "dm6467_mpeg2dec_1_00_011_evaluation", which has the mpeg2dec object code.

  • Interesting, I just checked and you are correct, the mpeg2 libs are not there.  Where did you get the evaluation codec?  Did you only get the mpeg2dec codec (which means you will need to modify files to omit the other codecs before attempting to build combo)?

    I have build these dsp servers in the past and would like to give building this one a try, but I want to make sure I am using the same files you are.

     

  • We filled out an evaluation request form, then got a link to download the evaluation pack ("dm646x_eval_1_0_06aug08.zip"). It contained:

    dm6467_h264bp_enc_1_00_013
    dm6467_jpeg_dec_1_13_002
    dm6467_jpeg_enc_1_12_001
    dm6467_mpeg2mp_dec_1_00_011

    Here's what I've done so far, as a proof of concept for our requirements:

    • I created a simple test algorithm (it merges two strings).
    • I created a new codec server that included only my string merge algorithm.
    • I created an ARM application that uses the VISA APIs to instantiate the codec on the DSP.
    • After copying the application and the codec server to the board, I was able to test it. Worked as expected.

    After that, I modified my codec server to link in mpeg2dec from the evaluation pack. I adjusted the DSP/BIOS configuration file to account for the mpeg2dec resource requirement (which initially prevented the algorithm from being loaded on the DSP). After that, it seems to load correctly, but fails as I described earlier (the HDVICP version problem).

  • I decided to pursue the earlier idea of dumping out the RMAN tables. With a few lines of code on the DSP, I found the tables to be empty, which explains the error message.

    After reviewing every source file, I found that the <server>.cfg file included the EDMA3 and HDVICP modules, but that they were not initialized in the codec server's main() function. After adding the initialization code - to initialize each module and register it with RMAN - the codec fired up perfectly.

    -Olivier

  • This is great news!  Thank you for your perseverance to track down this issue and share the solution with the community.