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.

Adding AUDDEC1 support to libdce

Hi,

I want to run Audio codecs on C66x DSP of Jacinto 6 (DRA7xx).

Currently libdce supports only VIDDEC2, VIDDEC3 and VIDENC2 interfaces.

Can anyone guide me how to add AUDDEC1 interface support to libdce?

Things I tried till now:

I am able to rebuild the DSP server (dsp_vidsvr) using dspdce_1_00_00_04 and run the copycodectest example on target.
I am also able to run an auddec1 codec on the DSP by converting the VIDDEC2 calls/parameters coming from an ARM application (similar to copycodectest.c) to AUDDEC calls/parameters on the DSP server (in dce.c of dspdce_1_00_00_04).

Now I want to make direct AUDDEC calls from ARM side application. Hence I need to add AUDDEC1 interface support in libdce.

Please guide how it can be done.

I am using GLSDK 6.10.00.04.

Regards,
Abhishek

  • Hi Abhishek,
    Since you have already integrated an audio codec at dsp server side, it will be fairly simple to add IAUDDEC1 interface support to libdce and dce.

    DSP-Server
    ---------------
    Create a new enum value say OMAP_DCE_AUDDEC1 in dce_rpc.h.
    Define codec_fxns[] stub fucntions for AUDDEC1

    Libdce
    ---------
    Create a new enum value say OMAP_DCE_AUDDEC1 in dce_rpc.h.
    Define AUDDEC1 interface functions like AUDDEC1_process, AUDDEC1_control etc in libdce which use OMAP_DCE_AUDDEC1 as codec ID.
    You need to modify process function in libdce.c to translate the arguments.
  • Thanks Ram for the reply. I will try this out.

    Currently I am facing a problem in rebuilding libdce.

    I cloned the libdce repo from git://git.omapzoom.org/repo/libdce.git
    and followed the README to build libdce for Linux.

    But I am getting 2 linker errors:

    /usr/bin/ld: cannot find -lmmrpc
    /usr/bin/ld: cannot find -ldrm_omap
    collect2: ld returned 1 exit status

    Where can I find the mmrpc and drm_omap libraries? And how to specify their paths in the Makefile for libdce?

  • Please follow these exports and try
    host $ export GLSDK = <Path to the extracted filesystem>
    host $ export PATH=<Path to cross-compile toolchain>:$PATH
    host $ export PKG_CONFIG_PATH=$GLSDK/usr/lib/pkgconfig
    host $ export INSTALL_PATH = <Install location>

    host $ export DRM_CFLAGS="-I$GLSDK/usr/include -I$GLSDK/usr/include/libdrm/ -I$GLSDK/usr/include/omap -I$GLSDK/usr/include/libkms"
    host $ export DRM_LIBS="-L$GLSDK/usr/lib -ldrm -ldrm_omap"
    host $ export GBM_CFLAGS=-I$GLSDK/usr/include/gbm
    host $ export GBM_LIBS="-L$GLSDK/usr/lib -lgbm"
    host $ export LIBUDEV_CFLAGS=-I$GLSDK/usr/include
    host $ export LIBUDEV_LIBS="-L$GLSDK/usr/lib -ludev"
    host $ export DCE_CFLAGS="-I$GLSDK/usr/include/dce"
    host $ export DCE_LIBS="-L$GLSDK/usr/lib -ldce -lavutil -lavformat"

    host $ cd libdce
    host $ ./autogen.sh --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --prefix=$INSTALL_PATH --with-sysroot=$GLSDK
    host $ make