DMAI GStreamer Plug-In

From IGEP - ISEE Wiki

Jump to: navigation, search

Overview

The TI DMAI GStreamer (gst-dmai) plug-in uses the Davinci Multimedia Application Interface to simplify application use of the TI Davinci and OMAP hardware accelerators and DSP. GStreamer is run as an application on the ARM processor and through the use of DMAI is able to interact with the DSP or acceleration modules to acquire, render or transform audio and video streams. DMAI also provides portability of the code from one processor to another with minimal code changes. DMAI also takes care of using various hardware modules on the SoC to performs tasks such as frame copies using hardware acceleration.

DMAI GStreamer Plug-In System Architecture

Figure 1

Components

GStreamer is a media-processing library that provides an abstract model of a transformation that is based on a pipeline. Media flows in a defined direction from input to output. GStreamer has gained wide popularity in the digital video programming community through its ability to abstract the manipulation of different media; thus, simplifying the programming process. GStreamer makes it possible to write a general video or music player that can support many different formats and networks. Most operations are performed by plugins, rather than by the GStreamer core. Figure 2 displays this media pipeline concept:


Gstreamer example pipeline.jpg


The GStreamer package contains the following directories.

opensource_build

This directory contains the open source packages used to build GStreamer and the TI plugin. This includes packages such as glib as well as the GStreamer core libraries and plugin libraries. These packages are included in the GStreamer release for convenience so there is no need to download them from various locations, and this way developers know they have the packages that were using during development testing.

There is also a directory called patchfiles in this directory which contains various patches that are used when building these packages for TI processors. These patches may disable features that impact performance on embedded processors or work around build/configuration issues when cross-compiling for the ARM processor.


ti_build

This directory contains the TI GStreamer plugin code. The code is located at ti_build/ticodecplugin/src. The TI plugin contains multiple elements which allow for encoding/decoding of audio/video/imaging files.


gstreamer_demo

This directory contains a series of scripts that can be used to test the functionality of the various TI GStreamer elements. There is a directory for each supported processor as well as a directory for shared scripts. The scripts for the processor that the TI GStreamer plugin was build for are installed on the target file system during the build step.

Download

The TI GStreamer project is hosted at http://gstreamer.ti.com. From that page you can either checkout the SVN repository or download one of the quarterly file releases from the Files section.

Licensing

  • The TI GStreamer plugin is licensed under the terms of the GNU LGPL v2.1. The licensing terms are:
This program is free software; you can redistribute it and/or modify it under the terms of the  
GNU Lesser General Public License as published by the Free Software Foundation version 2.1 of the License. 

Roadmap

See DMAI GStreamer Plug-in Roadmap

More Information