Multimedia Component |
- Imaging and Video Adaptation - Platform specific codecs and containers for GStreamer
- Camera Adaptation - Platform specific codecs and containers for GStreamer. Adaptation interface is CameraBin.
- UPnP - Universal Plug and Play provides a UPnP stack, the UPnP profile for audio and video.
- Gstreamer - GStreamer, through its plugins, provides playback, streaming, and imaging functionality to the system.
- Audio Adaptation - Platform specific modules for PulseAudio
- Pulse Audio - The audio subsystem handles audio inputs, post and pre processing, and outputs in a system. The purpose is to provide a proxy between audio applications and audio hardware.
Multi Media Stack |
QT mobility project delivers a set of new APIs to Qt with features,which allow the developer easily apply in multi platform.QT Mobility covers a collection of apis or frameworks to support the multimedia features to a full extent. this link will provide much more info on QT mobilty and multimedia http://doc.qt.nokia.com/qtmobility-1.0-tp/multimedia.html.
Qt Mobilty's media library enables developers to easily create applications that make best advantage of the system mediacapabilities and it covers the items of most direct interest to developers:plyback,recording,playlist,management,metadata,radio,mediaediting,TV,etc.
Advantages of QT Mobiltiy multimedia framework:
1)developer can now implement fundamental functions with minimal code.
2)A great deal of flexibility with the media source.
3)Many different codecs are supported 'out of box'
•How to create a video player
–QMediaPlayer: used for generic player.
–QVideoWidget: control of video source,full screen,etc.
–VideoWidget: inherts from QVideoWidget to add functions, such as double click , particular keypres
–Three Output Types:
•WindowOutput(X11/Overlay) •RenderOutput(QGraphicsVideoItem)
•WidgetOutput (xvimagesink) .
Extends the functinality of multimedia class -uses a 3 derived classes from them.
Extended functinality of a new service and a sample application code :
QT Mobilty multimedia framework supports a rich backend
like Gstreammer,Quicktime,DirectShow,etc
Breif on Gstreamer:
It is a OpenSource framework for creating media applications and it as a alone is not a player.it is pipeline based media framework written in C programming language witha type system based on Gobject.
GStreamer allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing. The pipeline design serves as a base to create many types of multimedia applications such as video editors, streaming media broadcasters, and media players.
Designed to be cross-platform, it is known to work on Linux (x86, PowerPC and ARM), Solaris (Intel and SPARC) and OpenSolaris, FreeBSD, OpenBSD, NetBSD, Mac OS X, Microsoft Windows and OS/400. GStreamer has bindings for programming-languages like Python, Vala, C++, Perl, GNU Guile and Ruby. GStreamer is licensed under the GNU Lesser General Public License.
Designed to be cross-platform, it is known to work on Linux (x86, PowerPC and ARM), Solaris (Intel and SPARC) and OpenSolaris, FreeBSD, OpenBSD, NetBSD, Mac OS X, Microsoft Windows and OS/400. GStreamer has bindings for programming-languages like Python, Vala, C++, Perl, GNU Guile and Ruby. GStreamer is licensed under the GNU Lesser General Public License.
Main Advantages of Gstreamer:
Pluggable elements could be mixed to form arbitrary pipelines to support various kinds of audio and vedio codecs.
Unified APIS for the devvekoper to create pipelines and media players.
Gstreamer Concepts :
–Element is the most important object in Gstreamer, it is derived from GstObject.
–create a chain of elements linked together and let data flow through this chain of elements
PAD:
–Pad is used to negotiate links and data flow between elements in GStreamer
–Pad could be sink pad or source pad
–Pad can restrict the type of data that flows through it.
BIN & PIPELINE:
–A Bin is a container for a collection of elements. E.g. playbin
–A pipeline is a special subtype of a bin that allows execution of all of its contained child elements.
–A pipeline is a top-level bin. As you set it to PAUSED or PLAYING state, data flow will start and media processing will take place.
–GstPipeline is derived from GstBin
AUTOPLUGGING:
Nice Article on GStreamer.. Thanks a lot. It will benefit everyone a lot.
ReplyDeletethank u for visiting
ReplyDeleteAwesome Avinash!! Will be in my Favorites list.. Great going! Keep up the good work - LG
ReplyDelete