How to Use DVSDK on the OMAPL138

The following guide describes the method for building TI DVSDK for the OMAPL138 Platforms.

Requirements

Release 2.6.34-mitydsp-ts1

Tested Platforms mitydsp_l138f
DVSDK Version 04.03.00.06
CGTools 7.3.4 (my.TI Account Required)
Kernel Command Line console=ttyS2,115200 ip=dhcp root=/dev/nfs rw mem=32M@0xc0000000 mem=64M@0xc4000000

Release 2.6.37-davinci-ts1

Tested Platforms OMAPL138 EVM
OMAPL138 EXP
DVSDK Version 04.03.00.06
CGTools 7.3.4 (my.TI Account Required)
Kernel Command Line console=ttyS2,115200 ip=dhcp root=/dev/nfs rw mem=32M@0xc0000000 mem=64M@0xc4000000

Installation

  1. The DVSDK is enabled with "make menuconfig" and the following selections:
    Target Software  --->
      Software Packages  --->
        Multimedia  --->
          Video  --->
            [*] ti-dvsdk_omapl138  --->
    
  2. Point TSWO_ti_dvsdk_omapl138-evm_CODEGEN_INSTALL_DIR in the factory config to the location selected during CGTools installation.
  3. Run make. The resulting file system will contain the necessary components for DVSDK.

Running the sample applications

DSP Exerciser Through DSPLink

Copy the following from the ti-dvsdk_omapl138-evm-04_03_00_06/ti-dvsdk_omapl138-evm_04_03_00_06 build directory to a test directory on the target:

  • example-applications/dsp-benchmark_1_00_00_02/dsp_benchmark_app/dsp_benchmark_app
  • c6accel_1_01_00_07/soc/packages/ti/c6accel_unitservers/omapl138/c6accel_omapl138.x674
  • c6accel_1_01_00_07/soc/app/test_files

run dsp_benchmark_app

Encoding / Decoding

Copy the following from the ti-dvsdk_omapl138-evm-04_03_00_06/ti-dvsdk_omapl138-evm_04_03_00_06 build directory to a test directory on the target:

  • codecs-omapl138_4_02_00_00/packages/ti/sdo/codecs/aachedec/app/Client/Test/TestVecs/Input/davinci.aac
  • linux-devkit/arm-arago-linux-gnueabi/usr/bin/qtopia/examples/graphicsview/weatheranchorlayout/images/5days.jpg
  • the attached davincieffect_qcif_192kbps.264 (from the OMAP3 DVSDK)

Display a test pattern:

/usr/dvsdk/dmai/video_display_omapl138.x470MV -y 16 -O lcd --display_buffer 2

Decode and play a .aac audio file:

/usr/dvsdk/dmai/audio_decode1_omapl138.x470MV -c aachedec -e decode -i davinci.aac -n 1000

Convert a .aac audio file to PCM:

/usr/dvsdk/dmai/audio_decode_io1_omapl138.x470MV -c aachedec -e decode -i davinci.aac -n 1000 -o output.pcm

To listen to the resulting PCM file:
aplay -t raw -r 88200 -f S16_LE output.pcm

Convert raw H.264 to YUV:

/usr/dvsdk/dmai/video_decode_io2_omapl138.x470MV -c h264dec -e decode -i davincieffect_qcif_192kbps.264 -n 30 -o output.yuv

The original raw H.264 file can be played on a Ubuntu host using totem. The output YUV file can be viewed using the yuvplayer from http://sourceforge.net/projects/raw-yuvplayer. Select UYUV for the color and QCIF for the size in yuvplayer.

Convert YUV to raw H.264:

/usr/dvsdk/dmai/video_encode_io1_omapl138.x470MV -c h264enc -i output.yuv -o output.264 -r 176x144 -n 30

Convert a JPEG image to YUV:

/usr/dvsdk/dmai/image_decode_io1_omapl138.x470MV -c jpegdec -e decode -i 5days.jpg -o output.yuv

Convert YUV to JPEG:

/usr/dvsdk/dmai/image_encode_io1_omapl138.x470MV -c jpegenc -e encode -i output.yuv -o output.jpg -r 202x112 --iColorSpace 3 --oColorSpace 1

Gstreamer Plugins

DVSDK also supports a number of Gstreamer plugins via the gst-ti-plugins package.

Video Playback

Supports h.264, MPEG-4, and MPEG-2 video formats.

gst-launch filesrc location=filename ! typefind ! TIViddec2 ! \
queue ! TIC6xColorspace engineName=codecServer ! queue ! tidisplaysink2 -v

Audio Playback

Supports AAC Audio format.

gst-launch filesrc location=filename ! \
typefind ! TIAuddec1 ! alsasink -v

Video and Audio playback

MP4 Container

gst-launch -v filesrc location=filename ! \
 qtdemux name=demux \
 demux.audio_00 ! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 ! TIAuddec1 ! alsasink \
 demux.video_00 ! queue ! TIViddec2 ! TIC6xColorspace engineName=codecServer ! queue ! tidisplaysink2 -v

AVI Container

gst-launch -v filesrc location=filename ! \
 avidemux name=demux \
 demux.audio_00 ! queue max-size-buffers=8000 max-size-time=0 max-size-bytes=0 ! TIAuddec1 ! alsasink \
 demux.video_00 ! queue ! TIViddec2 ! TIC6xColorspace engineName=codecServer ! queue ! tidisplaysink2 -v