GStreamer positioning
From Texas Instruments Embedded Processors Wiki
Jump to: navigation, search
GStreamer positioning
Contents
[hide]
- 1 Introduction
- 2 GStreamer overview/benefits
- 3 TI GStreamer port
- 4 Comparison of TI Gstreamer .v. other TI solutions
- 4.1 Use-case : DM365 IP Camera Reference Design
- 4.2 Feature and support comparison
- 5 Summary
- 6 Notes
|
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: -
- DM355
- DM357
- DM644x
- DM646x
- DM365
- OMAP353x
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"
IPNC .v. GStreamer comparison
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.