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.

why dose the GPP application have to link with viddec_binarize.a470MV which is a MVArm codec ?

I have made a codec server that use a codec called "viddec_binarize.x64P" on dsp side,and I didn't enable the gnu.targets.MVArm9 in "usr.bld“ file.
As a result , it failed...
So I then enable the gnu.targets.MVArm9
When I build the Codec Engine Application on GPP side, it shows that :
......
making package.mak (because of package.bld) ...
generating interfaces for package ceapp (because package/package.xdc.xml is older than package.xdc) ...
configuring ceapp.x470MV from package/cfg/ceapp_x470MV.cfg ...
Info: Configuring engine named 'video_binarize' from the info file for DSP server './video_binarize.x64P',
          located in package 'wucao.zhsh.ce.servers.video_binarize':
      Target app will look for the DSP server image 'video_binarize.x64P' in its current directory.
      Adding codec 'viddec_binarize' (wucao.zhsh.ce.codecs.viddec_binarize.VIDDEC_BINARIZE), scratch groupId=0
Info: Reading DSP memory map from the info file for DSP server './video_binarize.x64P',
      located in package 'wucao.zhsh.ce.servers.video_binarize':
ti.sdo.ce.utils.trace.close() ...
ti.sdo.ce.utils.trace.validate() ...
    will link with ti.sdo.ce.utils.trace:lib/TraceUtil.a470MV
    will link with ti.sdo.ce.bioslog:lib/bioslog.a470MV
    will link with wucao.zhsh.ce.codecs.viddec_binarize:lib/viddec_binarize.a470MV
    will link with ti.sdo.ce.video:lib/video.a470MV
    will link with ti.sdo.ce:lib/ce.a470MV
    will link with ti.sdo.ce.ipc.dsplink:lib/ipc_dsplink_6467.a470MV
    will link with ti.sdo.ce.osal.linux:lib/osal_linux_470.a470MV
    will link with ti.sdo.ce.alg:lib/Algorithm_noOS.a470MV;lib/alg.a470MV
    will link with ti.sdo.linuxutils.cmem:lib/cmem.a
    will link with dsplink.gpp:export/BIN/Linux/Davinci/DM6467/RELEASE/dsplink.lib
    will link with ti.sdo.fc.acpy3:acpy3.a470MV
    will link with ti.sdo.fc.dman3:dman3Cfg.a470MV
    will link with ti.sdo.ce.utils.xdm:lib/XdmUtils.a470MV
    will link with ti.sdo.utils.trace:lib/gt.a470MV
cl470MV package/cfg/ceapp_x470MV.c ...
......

so I don't know why the GPP application have to link with a viddec_binarize.a470MV which is a codec on MV ARM target since I have already a codec viddec_binarize.x64P on dsp side ?

  • I checked a automatically genrated file "ceapp_x470MV.c" in my directory "apps/video_binarize/ceapp/package/cfg" just now.
    It seems that there is always a engine called "local" in the engineTab[].Since I didn't set any "local" engine in my config files, I think it's a always existed codec engine in all dual-cpu codec engine applications.
    Am I right ?

    The following is a part of the "ceapp_x470MV.c":

    static Engine_AlgDesc engineAlgs0[] = {
        {
            "viddec_binarize",       /* name */
            {1460164901U},   /* uuid */
            &VIDDEC_STUBS,             /* fxns */
            NULL,        /* idma3Fxns */
            typeTab_VIDDECBINARIZE_WUCAO_VIDDECBINARIZE,              /* typeTab */
            FALSE,          /* isLocal */
            0,        /* groupId */
            3,      /* protocol */
            NULL,         /* iresFxns */
            &wucao_zhsh_ce_codecs_viddec_binarize_VIDDEC_BINARIZE_codecClassConfig  /* stub/skel config params */
        },
        {NULL},
    };
    static Engine_AlgDesc engineAlgs1[] = {
        {NULL},
    };

    /* table of all engines available in this application */
    static Engine_Desc engineTab[] = {
        {"video_binarize",      /* engine name */
          engineAlgs0,    /* alg table */
          "video_binarize.x64P",         /* (optional) server name */
          NULL,        /* (optional) Link config ID */
          1 /* number of algs in alg table */
        },
        {"local",      /* engine name */
          engineAlgs1,    /* alg table */
          NULL,         /* (optional) server name */
          NULL,        /* (optional) Link config ID */
          0 /* number of algs in alg table */
        },
        {NULL, NULL, NULL, 0}       /* NULL-terminate the engine table */
    };

    Engine_Config Engine_config = {
        engineTab,              /* table of all engines */
        "local"   /* local RMS engine name */
    };