Skip to content

Tizonia OpenMAX IL

Juan A. Rubio edited this page Nov 16, 2015 · 34 revisions

Home | Tizonia OpenMAX IL | Skema

The Tizonia OpenMAX IL framework

Tizonia OpenMAX IL contains a number of modules/libraries:

Module Name Description
libtizcore The OpenMAX IL 1.2 Core
libtizonia An OpenMAX IL 1.2 base component library
tizrmd A D-Bus based Resource Manager deamon process
libtizrmproxy A client library to talk to the RM process
libtizosal A library of utilities and wrapped OS functions

Tizonia OpenMAX IL components

The following OpenMAX IL 1.2 components are currently present in the Tizonia repositories, under the plugins folder.

Standard Components

These are components that are defined in the Standard Components section of the OpenMAX IL specification.

Component OMX Name Roles Description
Binary File Reader OMX.Aratelia.file_reader.binary audio_reader.binary
video_reader.binary
image_reader.binary
other_reader.binary
Binary File Writer OMX.Aratelia.file_writer.binary audio_writer.binary
video_writer.binary
image_writer.binary
other_writer.binary
MP3 decoder OMX.Aratelia.audio_decoder.mp3 audio_decoder.mp3 Based on libmad
MP3 encoder OMX.Aratelia.audio_encoder.mp3 audio_encoder.mp3 Based on LAME
Vorbis decoder OMX.Aratelia.audio_decoder.vorbis audio_decoder.vorbis Based on libfishsound
VP8 decoder OMX.Aratelia.video_decoder.vp8 video_decoder.vp8 Based on libvpx
Audio renderer OMX.Aratelia.audio_renderer.pcm audio_renderer.pcm Based on ALSA
Audio renderer nb OMX.Aratelia.audio_renderer_nb.pcm audio_renderer.pcm Based on ALSA (ALSA non-blocking API)
Video renderer OMX.Aratelia.iv_renderer.yuv.overlay iv_renderer.yuv.overlay Based on libsdl

Non-standard components

These are components that do not have a corresponding definition in the Standard Components section of the OpenMAX IL specification. Tipically, OpenMAX IL extensions are needed to build and run these components. Tizonia's extension can be found in the OMX_TizoniaExt.h header file.

Component OMX Name Roles Description
Opus decoder OMX.Aratelia.audio_decoder.opus audio_decoder.opus Based on libopus
FLAC decoder OMX.Aratelia.audio_decoder.flac audio_decoder.flac Based on libflac
OGG demuxer OMX.Aratelia.container_demuxer.ogg container_demuxer.ogg Based on liboggz
ICEcast-like HTTP Sink OMX.Aratelia.ice_renderer.http ice_renderer.http Implements a simple http streaming server
Mp3 metadata eraser OMX.Aratelia.audio_metadata_eraser.mp3 audio_metadata_eraser.mp3 Based on libmpg123 Implements a simple source that reads mp3s and "wipes" its metadata info on the fly (useful in the ICE/SHOUTcast streaming use case)

In-progress components

These arework in progress components that do not yet include a processing function implementation.

Component OMX Name Roles Description
Webp encoder OMX.Aratelia.image_encoder.webp image_encoder.webp
Webp decoder OMX.Aratelia.image_decoder.webp image_decoder.webp
Vp8 encoder OMX.Aratelia.video_encoder.vp8 video_encoder.vp8

Test components

Component OMX Name Roles Description
Tizonia test component OMX.Aratelia.tizonia.test_component tizonia_test_component.role1 Test component to support libtizonia's unit tests
tizonia_test_component.role2
IL Core test component OMX.Aratelia.ilcore.test_component default Test component to support libtizcore's unit tests

tplay

A command line application that reproduces or streams a number of audio formats using graphs of tunneled OpenMAX IL components.

$ tplay -h
Tizonia OpenMAX IL player version 0.1.0

usage: tplay [-c role] [-d] [-h] [-l] [-v]
	     [-p port] [-r component] [-s]
	     [--shuffle]
	     [--bitrate-modes=comma-separated-list]
	     [--sampling-rates=comma-separated-list]
	     [--station-name=string]
	     [--station-genre=string]
	     <FILE/DIR>
options:
	-c --comps-of-role <role>			Display the components that implement <role>.
	-d --daemon						Run in the background.
	-h --help							Display help.
	-l --list-components				Enumerate all OpenMAX IL components.
	-p --port							Port to be used for http streaming. Default: 8010.
	-r --roles-of-comp <component>		Display the roles found in <component>.
	-R --recurse						Recursively process DIR.
	   --bitrate-modes					A list of bitrate types (CBR, VBR) that will be
										allowed in the playlist (http streaming only). Default: any.
	   --sampling-rates				A list of sampling rates that will be
										allowed in the playlist (http streaming only). Default: any.
	   --shuffle						Shuffle the playlist.
	   --station-genre					SHOUTcast/ICEcast station genre (http streaming only).
	   --station-name					SHOUTcast/ICEcast station name (http streaming only).
	-s --stream						Stream media via http using the SHOUTcast/ICEcast protocol.
	-v --version						Display version info.

Examples:
	 tplay ~/Music

	    * Decodes every supported file in the '~/Music' directory)
	    * File formats currently supported for playback:
	      * mp3, flac (.flac, .ogg, .oga), opus (.opus, .ogg, .oga), vorbis (.ogg, .oga).
	    * Key bindings:
	      * [p] skip to previous file.
	      * [n] skip to next file.
	      * [SPACE] pause playback.
	      * [+/-] increase/decrease volume.
	      * [m] mute.
	      * [q] quit.
	      * [Ctrl-c] terminate the application at any time.

	 tplay --sampling-rates=44100,48000 -p 8011 -s ~/Music

	    * This streams files from the '~/Music' directory.
	    * File formats currently supported for streaming: mp3.
	    * Sampling rates other than [44100,4800] are ignored.
	    * Key bindings:
	      * [q] quit.
	      * [Ctrl-c] terminate the application at any time.

Debug Info:
	    * Boost [1_54]
	    * TagLib [1.9.1]