What is a GStreamer?

GStreamer is essentially a multimedia framework that employs a pipeline-based system based on GObject in the C Programming language. GStreamer is a must have in the sense that it allows you to link together a number of ‘elements’ or media processing systems in order to create chains of complex workflows.

An element is arguably the most essential part of a pipeline as a number of these are linked together and data is allowed to move through them. Each element performs a specific function, whether it be regarding data reading from files, data decoding, or producing output in response to the fed data. A chain of these elements is called a pipeline which as a whole performs a certain function as well such as providing media playback or video streaming.

A pipeline itself provides a bus for data flow when directed and media is then processed to produce the desired output. Pipelines keep running a separate thread unless they are stopped or the data stream ends or is interrupted.

Features of i.MX

i.MX System on Module is a line of system on module products that are based on the different families of NXP’s processors. Since GStreamer works in a plugin fashion, they can be used with i.MX multimedia. Following are a few of the features of i.MX GStreamer plugin:

● GStreamer-imx is ideally compatible with the upstream GStreamer demuxers and parsers and thus there is no requirement for the production of new elements.

● Zero copy support has been made available in this version so the production of CPU based frame copies is avoided and the pipelines are able to run with minimum CPU usage.

● Video transform elements for color space conversion and scaling The PxP, IPU, and G2D units in the imx SoC can perform these operations in one step. Subsequently, the rate of conversions increases.
● The addition of the imxipusink and imxipuvideo transform elements allows for deinterlacing.
● The imx ipu/pxp/g2d compositor elements mimic the properties of the compositor in GStreamer 1.5 and above. Command lines which use that compositor can make use of hardware-accelerated compositing simply by replacing “compositor” with “imx 2d compositor”.

Who needs a GStreamer?

Essentially, GStreamer is used for the purpose of creating media players that can support a vast variety of formats including MP3, MPEG-½, AVI, Quicktime amongst many other names. It is the ideal tool for any applications that support audio or video as it allows a programmer to create a complex workflow for data streams through simple media processing elements, many components already being available at your service. It can be used by programmers to create simple audio or video playback, video or audio editors, streamers, media broadcasters, and media players as well. Such customizability of the GStreamer is largely due to the pluggable and mixable nature of its components which can be linked in multiple orientations to create various pipelines.

How to use GStreamer on Variscite’s System on Module (SoM)?

Top i.MX6 SoMs that support GStreamer: VAR-SOM-MX6, DART-MX6, VAR-SOM-SOLO/DUAL.

Full procedures and software developer guides for all of our products are available on our wiki site: www.variwiki.com

Here is the full guide for using GStreamer on Variscite i.MX6 products: