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.

How to build h264 codec server(loopbackCombo) for DVSDK1.3

Hi guys,

I am blocked on making h264 codec server(loopbackCombo) for DVSDK1.3 for couple of weeks. We are using H264 codec(loopbackCombo) for our demo product which comes from the dm6446 EVM board CDs. As we wanted production version of H264 codec and we got DM644XBB01P_v1.3.exe file by requesting TI.This file contains h264venc_ti.l64P, h264vdec_ti.l64P and other codecs.I have set up dvsdk1.3 build environment and compiled the example codec engine and server on the following directory.

$cd dvsdk_1_30_01_41/codec_engine_2_00_01/examples/ti/sdo/ce/examples/codecs

$make clean; make;

$cd dvsdk_1_30_01_41/codec_engine_2_00_01/examples/ti/sdo/ce/examples/servers/video_copy

$make clean; make;

So, I don't have any problem on make video_copy example codec server (*.x64P) in DVSDK1.3. But the problem I faced to build h264 codec server.I took the loopback server codec which comes with dvsdk1.3. (dvsdk_1_30_01_41/dm6446_dvsdk_combos_1_35/packages/ti/sdo/servers/loopback). I found that it does not have any Makefile to build the server. Then I used the make file from video_copy example and did some minor change. Here is my output error:

 

console output

============

manjur@manjur-desktop:~/dvsdk_1_30_01_41/codec_engine_2_00_01/examples/ti/sdo/ce/examples/servers/loopback$ make clean; make
rm -rf loopback.x64P ti_sdo_ce_examples_servers_loopback.tar *.obj package package.* loopback
XDCPATH="/home/manjur/dvsdk_1_30_01_41/codec_engine_2_00_01/examples/ti/sdo/ce/examples/servers/loopback/../../../../../..;/home/manjur/dvsdk_1_30_01_41/codec_engine_2_00_01/packages;/home/manjur/dvsdk_1_30_01_41/xdais_6_00_01/packages;/home/manjur/dvsdk_1_30_01_41/dsplink_140-05p1/packages;/home/manjur/dvsdk_1_30_01_41/cmem_2_00_01/packages;/home/manjur/dvsdk_1_30_01_41/codec_engine_2_00_01/examples/audcp;/home/manjur/dvsdk_1_30_01_41/framework_components_2_00_01/packages;/home/manjur/dvsdk_1_30_01_41/biosutils_1_00_02/packages;/home/manjur/dvsdk_1_30_01_41/bios_5_31_08/packages" /home/manjur/dvsdk_1_30_01_41/xdc_3_00_04/xs xdc.tools.configuro -c ~/dvsdk_1_30_01_41/TI_CGT_C6000_6.0.16 -o loopback \
        -t ti.targets.C64P -p ti.platforms.evmDM6446 \
                --tcf loopback.cfg
making package.mak (because of package.bld) ...
generating interfaces for package loopback (because package/package.xdc.xml is older than package.xdc) ...
configuring loopback.x64P from package/cfg/loopback_x64P.cfg ...
ti.sdo.ce.bioslog.init() ...
js: "..cfg", line 21: exception from uncaught JavaScript throw: TypeError: Cannot read property "profile" from undefined (..cfg#21)
    "/home/manjur/dvsdk_1_30_01_41/xdc_3_00_04/include/utils.tci", line 588
    "/home/manjur/dvsdk_1_30_01_41/xdc_3_00_04/include/utils.tci", line 506
    "./package/cfg/loopback_x64P.cfg", line 642
    "./package/cfg/loopback_x64P.cfg", line 603
    "/home/manjur/dvsdk_1_30_01_41/xdc_3_00_04/packages/xdc/cfg/Main.xs", line 188
    "/home/manjur/dvsdk_1_30_01_41/xdc_3_00_04/packages/xdc/cfg/Main.xs", line 154
    "/home/manjur/dvsdk_1_30_01_41/xdc_3_00_04/packages/xdc/xs.js", line 144
gmake: *** [package/cfg/loopback_x64P.c] Error 1
gmake: *** [package/cfg/loopback_x64P.c] Deleting file `package/cfg/loopback_x64Pcfg.cmd'
gmake: *** [package/cfg/loopback_x64P.c] Deleting file `package/cfg/loopback_x64Pcfg_c.c'
gmake: *** [package/cfg/loopback_x64P.c] Deleting file `package/cfg/loopback_x64Pcfg.s62'
make: *** [loopback] Error 2

 

From the output it looks like the build process was failed because it did not to find profile from loopback.cfg file. Here is the fragment of cfg file:

var H264ENC = xdc.useModule('ti.sdo.codecs.h264enc.ce.H264ENC');
var H264DEC = xdc.useModule('ti.sdo.codecs.h264dec.ce.H264DEC');

if (prog.build.cfgArgs.profile == "eval") { <================================= This is line #21 where it failed.
    /* This server is for evaluation, so use the watermarked versions */
    print("Configuring server to use watermarked codecs...");
   
    H264ENC.alg.watermark = true;
    H264DEC.alg.watermark = true;
}
else
{
  /* This server is for production, so use the actual versions */
    print("Configuring server to use original codecs...");

    H264ENC.alg.watermark = false;
    H264DEC.alg.watermark = false;
}

 

I also managed to build the loopbackCombo for DVSDK2.0. But it does not help us because we are using dvsdk1.3 for our project release.

I will appreciate any sort of help regarding this problem for DVSDK1.3.

 

  • I'm not real familiar with how the DVSDK ships its servers, so someone more knowledgeable, feel free to jump in here...

    You'll need a rebuildable release of that particular loopback server package (ti.sdo.servers.loopback).  It appears that its config script [unfortunately] requires special arguments to be provided (specifically prog.build.cfgArgs.profile) by its own build scripts.

    That said, do you see a makefile in dvsdk_1_30_01_41/dm6446_dvsdk_combos_1_35?  Is there a "package.bld" file sitting in ti/sdo/servers/loopback?  If so, you may already have what you need, you just need to drop the new libraries in "the right place" and build the server from the dm6446_dvsdk_combos_1_35 dir(?).

    Chris

  • Thanks Chris for you replay.

    There is no makefile in dvsdk_1_30_01_41/dm6446_dvsdk_combos_1_35. Also there is no *.l64P codec file in dvsdk_1_30_01_41/dm6446_dvsdk_combos_1_35/packages/ti/sdo/codecs/h264enc/lib and other corresponding directory. But there is a "package.bld"  file in servers/loopback.

    It seems that dvsdk_1_30_01_41/dm6446_dvsdk_combos_1_35 has some missing file which is needed to build the codec server. Tough /dvsdk_2_00_00_22/dm6446_dvsdk_combos_2_05 has makefile and config.bld file and I can build *.x64P server binary without any problem.

    I tried to mix the makefile and config.bld from dm6446_dvsdk_combos_2_05 into dm6446_dvsdk_combos_1_35 with some necessary change, but the build process failed with error.

    Where can I download dm6446_dvsdk_combos_1_35 which has makefile to build loopbackCombo.x64P?

  • David Liu36097 said:
    Where can I download dm6446_dvsdk_combos_1_35 which has makefile to build loopbackCombo.x64P?

    Unfortunately I could not say, this may not actually exist, please keep in mind that for the most part we have moved past the old 1.30 release and most folks use the 2.00 DVSDK that you have been able to use successfully. There will actually be another major release in the coming months of DVSDK 3.10 which will begin to make the 2.00 SDK dated.

    As to actually resolving your problem, if you have been spending so much time trying to patch together an existing server build with the new codecs, it may be easier just to make a whole new server, I realize this may sound crazy given the build complexity of the system, but if you leverage the wizard tools it could be done fairly quickly, all the build material will be generated for you based on GUI inputs.

    Since you are using the old DVSDK 1.30 you would be using the older wizard from ceutils, but it should still serve your purposes. There is a good bit of documentation on these including a FAQ page, introduction page, and a set of instructional slides that may be useful for building your server.

    What you would need to do is make unitservers for each codec you want in the combo server (you already have the codec packages ready) and than combine them into a codec combo as described here in the FAQ.

  • Thanks Bernie for your reply.

    Do you have any guide line to make loopbackCombo with DVSDK1.3?  Right now this issue is holding our product release. And we cannot update to DVSDK2.0 as we have already invested our effort to DVSDK1.3 and our product is stable with it.

    And we really need support to build loopback Combo with DVSDK1.3. I believe there should be the build source code or build guide line for that particular version.

    Looking forward to hearing from you.

     

  • Have you tried using the wizards to make your server? Note that using the old wizard means you can still use the DVSDK 1.3 software stack, that is the easiest way I can think of to make it work.

    I do not know of any collateral specific to rebuilding the loopback combo itself and could not really help you there, I do not believe they were meant to be rebuilt by DVSDK users. When the 1.30 DVSDK was released the codecs were not free, and distibution would have been through an authrorized software provider (ASP) third party who would help in creating your custom DSP server image, likely using the wizards mentioned above.