Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

DMAI GStreamer Plug-In

7 bytes removed, 23:52, 17 December 2010
no edit summary
==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.
* [http://software-dl.ti.com/sdo/sdo_apps_public_sw/GStreamer_On_TI/FLV1/GStreamer_On_TI.htm Overview Video] ([https[Image://gstreamer.ti.com/gf/download/docmanfileversion/68/1271/GStreameronTIDaVinciandOMAPPlatforms.pdf slides]])* [[DMAI GStreamer Plug-In Getting Started Guide]]* [http://gstreamer.ti.com Recent News]* [http://gstreamer.ti.com Current Status]* [http://gstreamer.ti.com/gf/project/gstreamer_ti/wiki/?pagename=SupportHelp Support]* [http://gstreamer.ti.com/gf/project/gstreamer_ti/tracker/?action=TrackerItemBrowse&tracker_id=143 Issue Tracking]* [[GStreamer Releases]]* [http://gstreamer.ti.com/gf/project/gstreamer_ti/scmsvn Source Code]
== DMAI GStreamer Plug-In System Architecture ==<center>[[Image:Gstreamer system stack.jpg|Figure 1]]</center> == Components ==
<center>[[Image:gstreamer_system_stackGStreamer 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.jpg|Figure 1]]</center>2 displays this media pipeline concept:
==Components==<br> <center>[[Image:Gstreamer example pipeline.jpg]]</center> <br> The GStreamer package contains the following directories.
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: === 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.
<center>[[Image:gstreamer_example_pipelineThere is also a directory called ''patchfiles'' in this directory which contains various patches that are used when building these packages for TI processors.jpg]]<These patches may disable features that impact performance on embedded processors or work around build/center>configuration issues when cross-compiling for the ARM processor.
<br>
The GStreamer package contains the following directories.=== ti_build ===
===opensource_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.
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.<br>
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.=== 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.
===ti_build=Download ==
This directory contains the The TI GStreamer plugin code. The code project is located hosted at ti_buildhttp:/ticodecplugin/srcgstreamer. The TI plugin contains multiple elements which allow for encoding/decoding ti.com. From that page you can either checkout the SVN repository or download one of audio/video/imaging filesthe quarterly file releases from the '''''Files''''' section.
== System Requirements ==
===gstreamer_demo===In order to build/install the TI GStreamer package you will need the following:
*Host PC running Linux *DVSDK software for your processor *A cross-compile toolchain. This directory contains a series of scripts that can may be used to test the functionality of MontaVista tools provided with the various TI GStreamer elementsEVM or CodeSourcery tools for OMAP3. There is a directory for each supported processor as well as a directory for shared scripts*A target file system. The scripts for You can use the processor that the TI GStreamer plugin was build for are installed on the target sample NFS file system during provided with the build stepEVM.
==DownloadBuild Instructions ==
The TI GStreamer project is hosted build instructions for this package can be found in the README.TXT file located in the package root directory. You can also find more information on building the package on the website at http://gstreamer.ti.com. From that page you can either checkout In general the SVN repository or download one of steps to build the quarterly file releases from the '''''Files''''' section.package are:
==System Requirements==#Install the DVSDK software as specified in the GSG for your product #Set up a target file system as specified in the GSG for your product #Download the TI GStreamer package into a working directory #Edit the Makefile.common file in the root of the package tree and set the following variables for your configuration: ##DVSDK_INSTALL_DIR - Directory where the DVSDK was installed to ##TARGET_ROOT_DIR - Path to the root of your target file system ##MVL_VERSION - The version of the MontaVista tools being used. This is either 4.0.1 or 5.0 #build and install the TI GStreamer package using ''make all install''
In order == How to build/install Run the TI GStreamer package you will need Demo on the following: * Host PC running Linux* DVSDK software for your processor* A cross-compile toolchain. This may be the MontaVista tools provided with the EVM or CodeSourcery tools for OMAP3.* A target file system. You can use the sample NFS file system provided with the EVM.Target ==
==Build Instructions==The previous build steps were done on the host file system. Now you can run the demo on the target file system.
The build instructions for this package can be found in *Boot the READMEhardware EVM.TXT It is assumed that you have the file located system mounted over NFS in U-Boot settings. *Once you are at the package login prompt, type root directoryand enter. You can also find more information on building *Go to the package on the website at http:/opt/gstreamer_demo/gstreamer&lt;processor&gt; directory where &lt;processor&gt; is the processor you have build the GStreamer package for (i.tie.comdm6446). In general This directory contains: **sample scripts **codec server files **kernel modules required to run the steps codecs such as CMEM *Run the loadmodules.sh file to build load the kernel modules *Copy your media files (TS, AVI, AAC, MP3, MP4, etc) to the target file system. *Run the sample scripts. For each script you can see the usage commands by executing the script with the package are:-h option.
# Install the DVSDK software as specified in the GSG for your product# Set up a target file system as specified in the GSG for your product# Download the TI GStreamer package into a working directory# Edit the Makefile.common file in the root of the package tree and set the following variables for your configuration:## DVSDK_INSTALL_DIR - Directory where the DVSDK was installed to## TARGET_ROOT_DIR - Path to the root of your target file system## MVL_VERSION - The version of the MontaVista tools being used. == Licensing This is either 4.0.1 or 5.0# build and install the TI GStreamer package using ''make all install''==
==How to Run *The TI GStreamer plugin is licensed under the Demo on the Target==The previous build steps were done on terms of the host file systemGNU LGPL v2. Now you can run the demo on the target file system1. The licensing terms are:
* Boot the hardware EVM. It is assumed that you have the file system mounted over NFS in U-Boot settings.
* Once you are at the login prompt, type root and enter.
* Go to the /opt/gstreamer_demo/<processor> directory where <processor> is the processor you have build the GStreamer package for (i.e. dm6446). This directory contains:
** sample scripts
** codec server files
** kernel modules required to run the codecs such as CMEM
* Run the loadmodules.sh file to load the kernel modules
* Copy your media files (TS, AVI, AAC, MP3, MP4, etc) to the target file system.
* Run the sample scripts. For each script you can see the usage commands by executing the script with the -h option.
 
== 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.
*The DVSDK software package used by the TI GStreamer port is covered under a seperate license. Please refer to the DVSDK click-wrapped license for more information on the terms of use for the DVSDK software. <br> NOTE: This licensing information only covers the TI GStreamer plugin, for information about the licensing of other GStreamer components please see licensing information for that component.  == Submitting Patches ==
You can find information on how to submit patches for bug fixes and enhancements on the project site at [https://gstreamer.ti.com/gf/project/gstreamer_ti/wiki/?pagename=SubmittingChanges Submitting Changes]
NOTE: This licensing information only covers the TI GStreamer plugin, for information about the licensing of other GStreamer components please see licensing information for that component.== Roadmap ==
==Submitting Patches==You can find information on how to submit patches for bug fixes and enhancements on the project site at See [https://gstreamer.ti.com/gf/project/gstreamer_ti/wiki/?pagename=SubmittingChanges Submitting Changes[DMAI GStreamer Plug-in Roadmap]]
== Roadmap More Information ==See [[DMAI GStreamer Plug-in Roadmap]]
==More Information==*[[GstTIPlugin_ElementsGstTIPlugin Elements|Descriptions of DMAI GStreamer Plugin Elements]]*[[Example GStreamer Pipelines]] that use the DMAI GStreamer Plugin*Go to [http://gstreamer.ti.com http://gstreamer.ti.com] for all project-related information, including:**Current Status**TODOs**HOWTOs**Support
**Issue Tracking
[[Category:Linux]][[Category:Codecs]][[Category:Gstreamer]][[Category:DMAI GStreamer PlugDMAI_GStreamer_Plug-In]]