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.

Using a TI pre-built codec with a modified example codec

I have modified the example video_copy server from codec_engine_2_23_01 to include a modified example codec: viddec1_copy.  I've compiled the codec and have integrated it into the server and have used this server in my ARM application.

Now, I have downloaded the TI JPEG Encode Codec and I would like to integrate this codec in the same server I have already set up.  I've tried to put the /packages/ti/sdo/codecs/jpegenc folder within the codec_engine_2_23_01/examples/ti/sdo/ce/examples/codecs folder and then modify my server's .cfg file to reference this as follows:

var JPEG_ENC = xdc.useModule('ti.sdo.ce.examples.codecs.jpegenc.ce.JPEGENC');

I have also added the name and mod to the Server.algs structure within the same .cfg file.

When I try to re-make the DSP server, I get the following error:

PACKAGE_NOT_FOUND: /home/user/dvsdk_2_00_00_22/codec_engine_2_23_01/examples/ti/sdo/ce/examples/codecs/jpegenc/ce/package.xdc found along the package path, but no schema file was found.  Ensure that the package 'ti.sdo.ce.examples.codecs.jpegenc.ce' is completely built.

Bottom line is, I am extremely confused on how to use the TI JPEG codec within the modified server I've already established.  I am working within Linux and the target is a DM6441 device.  Any help with this is extremely appreciated.

  • JasonD3 said:
    PACKAGE_NOT_FOUND: /home/user/dvsdk_2_00_00_22/codec_engine_2_23_01/examples/ti/sdo/ce/examples/codecs/jpegenc/ce/package.xdc found along the package path, but no schema file was found.  Ensure that the package 'ti.sdo.ce.examples.codecs.jpegenc.ce' is completely built.

    This makes it sound like you are missing some generated packaging files, namely something with a .sch extension in /home/user/dvsdk_2_00_00_22/codec_engine_2_23_01/examples/ti/sdo/ce/examples/codecs/jpegenc/ce/package/. If this file and folder do not exist than you probably need to run xdc (literally the command xdc) on the jpegenc package which could involve editing package.bld. In a broad DVSDK sense this would be done for you when you build the base directory of the DVSDK, however having placed a seperate codec package in there this needs to be handled manually.

    If you want the details of what these packages are and how they work you may want to take a look through http://www.eclipse.org/dsdp/rtsc/ or the walk through here in particular. I have not done much work with the jpegenc codec and its packaging myself, so perhaps someone else on the forum can comment on what specifically needs to be done to rebuild the RTSC package.

  • Maybe try http://wiki.davincidsp.com/index.php?title=How_do_I_Integrate_new_codecs_into_DVSDK

    i.e. this walks thru the steps on how to add a codec to an existing combo - which given that u're using dvsdk 2.0 sounds like what u are trying to do.

    Ignore the fact that it talks about mp3 - same steps should apply for JPEGENC.

    Cheers, Alan

  • Alan,

    I tried this procedure, but I don't think my paths agree.  The first thing this wiki asks the user to do is copy the downloaded codec package into the "Codec Server package."  The DVSDK (ver 2_00_00_22) has the example server I am using in the following path:

    home/user/dvsdk_2_00_00_22/codec_engine_2_23_01/examples/ti/sdo/ce/examples/servers/video_copy/evmDM6446

    So, at this point I am confused on where I am supposed to copy the codec package.  The server already knows how to find the example viddec1_copy codec package that is located here:

    home/user/dvsdk_2_00_00_22/codec_engine_2_23_01/examples/ti/sdo/ce/examples/codecs/viddec1_copy

    I reference this codec package in my server .cfg file as follows:

    var VIDDEC1_COPY = xdc.useModule('ti.sdo.ce.examples.codecs.viddec1_copy.VIDDEC1_COPY');

    As I stated in my first post, I tried copying the jpegenc folder that comes within the downloaded codec package into the /examples/codecs directory, as viddec1_copy is, but I think that produced the error shown in my first post because the JPEG codec was "packaged" with a path of packages/ti/sdo/codecs.  There is no similar path for the codec examples that I am using.  Do I have to somehow move the example viddec1_copy codec and video_copy server to a path that will agree with the JPEG package, or can the JPEG codec be re-packaged so that it agrees with the example codec path?  Or am I totally off base here?

    Sorry for the long post but I'm trying to be as clear as I can be.

    Thanks again,

    Jason

  • you are not way off base.  However, I would recommend using

       dvsdk_2_00_00_22/dm6446_dvsdk_combos_2_05/packages

    This directory has the file structure assmed by the codecs provided from TI.

  • Just to provide some background and help rationalize some of this chaos... [8-)]

    XDC Packages are found along the XDC Package Path.  If you're familiar with Java's CLASSPATH, XDC uses the same idea.  Also similar to Java's CLASSPATH is that package names must be "Globally Unique", and are segmented with '.' characters - where each '.' segment maps to the physical storage in which a Package lives (i.e. a subdirectory).  So a package named 'ti.sdo.ce', housed in a directory named "c:/codec_engine_2_24/packages" can be placed on the Package Path by adding "c:/codec_engine_2_24/packages" to the XDCPATH variable.  And in that directory, you'll find the contents of the 'ti.sdo.ce' package in a directory named ti/sdo/ce.

    Following this, you can put your packages in any directory, you just have to add that directory to your Package Path - typically by setting the XDCPATH env var - if you want the XDC tools to find it (e.g. during the build step).  The assembling of the XDCPATH env var is precisely what the Codec Engine's examples/xdcpaths.mak does, and at the end of that file, there's a comment showing how to add your own directories to the XDCPATH.

    So... where do you need to put your new codec package?  You can put it in an existing directory that's _already_ on the XDCPATH, as Juan suggests.  (In doing so, you're kind of polluting that product, but that's an easy way to get your package on the XDCPATH).  Alternatively, you can put your package anywhere you want, and just have to add that directory to your XDCPATH.

    Chris

  • Chris Ring said:
    So... where do you need to put your new codec package?  You can put it in an existing directory that's _already_ on the XDCPATH, as Juan suggests.  (In doing so, you're kind of polluting that product, but that's an easy way to get your package on the XDCPATH). 

    1 way I use to pseudo get around this is via sym links - see e.g.

    http://tiexpressdsp.com/index.php/Codec_FAQ#How_do_I_flip_between_evaluation_and_production_codecs.3F

    Cheers, Alan

  • Juan/Chris/Alan,

    Thank you all for the helpful information.  I created the directory as Juan suggested, and added this directory to the xdcpaths.mak file as Chris directed.  This allowed me to successfully build the DSP server and I have successfully opened an instance of the JPEG encoder in my application.

    Thanks again,

    Jason