GStreamer positioning
From Texas Instruments Embedded Processors Wiki
Jump to: navigation,
search
Contents[hide] |
Introduction
This article discusses when to consider using TI's GStreamer plugin for Multimedia designs
versus other solutions that TI offers.
GStreamer overview/benefits
GStreamer is
an open source library for building multimedia applications (media
players, capture encoders, etc). It encapsulates existing multimedia
software components such as codecs, filters, and platform-specific I/O
in order to provide a uniform framework across platforms. GStreamer is
very modular with the ability to add new functionality via plugins. It
is available for Linux, Windows, and Mac OS X desktop environments.
Lots of media players are built on gstreamer such as Totem which is included as the default media player
in many GNU/Linux operating systems, such as Ubuntu.
GStreamer brings the following value-add features to TI
platforms: -
- Audio/Video synchronization
- Interaction with 100s of open source plugins, including muxers, demuxers, codecs, and filters.
- Playback of real audio/video clips such as YouTube videos.
- Allows developers to join modular elements together in a pipeline to easily create custom workflows.
- No need to write a new application for each use-case.
- Greatly increases testing flexibility by simply modifying the pipeline with no code modifications
- Active open source project with ongoing development.
TI GStreamer port
TI has written a plugin to accelerate GStreamer on TI
platforms. The core of gstreamer remains unmodified. 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.
The TI GStreamer project is an open-source community-based
project hosted at http://gstreamer.ti.com.
It's members include TIers, the 3rd party RidgeRun, and 10s of
active community contributors. As of November '09 the following TI
platforms are supported: -
Comparison of TI Gstreamer .v. other TI solutions
TI provides complete reference platforms and software for certain
markets.
One example of this is the HD Video Surveillance IP Camera Reference Design on
the DM36x platform.
Use-case : DM365 IP Camera Reference Design
The DM365IPNC-MT5 priced @ $795 is a single platform solution based
on the TMS320DM365 DaVinci video processor that provides H.264 in 720P
HD. It includes an Aptina 5 MP sensor CMOS imager optimized for low
light performance. A complete Linux-based IP camera application is
provided with free source code
This reference platform has several advanced features such as: -
- Integrated auto white balance & auto exposure
- AES encryption
- Video stabilization
- 2D/3D Video Noise filter
- Face Detect/Recognition
These features are targeted at IP Network Camera end-applications.
Feature and support comparison
align="center" border="1"Feature | IPNC | GStreamer |
---|---|---|
A/V Synchronization for Encode[a] | Yes. Timestamps are extracted and used in live555 RTP/RTSP streaming | Yes, via standard GStreamer plugin muxers, demuxers e.g. avidemux, mpegtsdemux |
Network Streaming | Yes, typically via streaming live555 RTP, RTSP integration | Yes, typically via standard GStreamer RTP plugins e.g. rtph264pay, rtph264depay. Examples here. |
Advanced domain-specific features | Yes, IPIPE camera leverage, video stabilization, noise filtering, face recognition | No. Only uses video, audio, imaging codecs from the DVSDK. |
Optimized for Multichannel Encode Performance with SmartPlugins (eg: Video Stabilization, Video Noise Filter, Lens Distortion Correction, Global Contrast Enhancement, Deinterlacer, Smart Codec etc..) | Yes. | No. |
Optimized for low latency | Yes. | No. |
Encode, Decode, Transcode support | Yes. As required for capture & encode [a] | Yes. See Example_GStreamer_Pipelines |
First level Application-specific support | Yes, via Appro | No, except if customer leverages RidgeRun for paid support |
Community-based open-source project | No. Integrated domain specific Application closely maintained by TI and Appro. | Yes. Bugtracker, forum, wiki, code integrated into gForge portal. |
Summary
In summary, if a dedicated reference platform with specific software
exists for a target market you should look at this first. It will most
likely get you to market faster since it provides key features
integrated and tested for that solution space. In addition the support
channels have expertise in those areas.
GStreamer could/should be considered when your end application
does not fit within the scope of one of TI's reference platforms.
Examples include media players, digital signage etc. Support
expectations should be set appropriately. The primary support mechanism
is the community-based TI Gstreamer forums and IRC - TI engineers are
present on these channels however for professional support our partner
RidgeRun (which has dedicated gstreamer expertise) can be contracted.
Notes
a. IPCamera supports Encoder application only and hence encoder
applications are compared.