Logo

https://secure.travis-ci.org/tizonia/tizonia-openmax-il.svg?branch=master

Navigation

  • The Tizonia Project
  • News
  • Installation
  • Configuration
  • Upgrade
  • Uninstall
  • Hall of Fame
  • Contributing
  • Changelog
  • License
  • User Guide
  • Developer Guide
    • Components
    • Building from Source
    • Coding Guidelines
    • Writting Documentation
    • API Documentation
    • Debugging Tools

  • Tizonia Website
  • Source (GitHub)
  • Issues (GitHub)
  • Binaries (Bintray)

Related Topics

  • Documentation overview
    • Previous: Raspberry Pi
    • Next: Components

Quick search

Developer Guide¶

Components¶

Familiarize yourself with the various building blocks of the project (click on the image to enlarge):

@startuml
package "Tizonia (command-line app)" {
  node "Local Playback" {
    [Local playback FSMs and IL graphs]
  }
  node "Cloud Playback" {
    [Cloud service FSMs and IL graphs]
  }
  node "Chromecast" {
    [Chromecast service FSMs and IL graphs]
  }
  node "Shoutcast/Icecast Client" {
    [HTTP client FSMs and IL graphs]
  }
  node "Shoutcast/Icecast Server" {
    [HTTP server FSMs and IL graphs]
  }
}

node "OpenMAX IL 1.2 Subsystem" {
  IL - [IL Core (libtizilcore)]
  [IL Base plugin (libtizonia)] - IL
  IL -left- [IL Resource Manager ]
  IL -right- [OS APIS / Utilities (libtizplatform)]
  [Local playback FSMs and IL graphs] --> IL
  [Cloud service FSMs and IL graphs] --> IL
  [Chromecast service FSMs and IL graphs] -- IL
  [HTTP client FSMs and IL graphs] -- IL
  [HTTP server FSMs and IL graphs] -- IL
}


database "OpenMAX IL 1.2 Plugins" {
   [OMX.Aratelia.audio_decoder.opus] - IL_API
   IL_API - [OMX.Aratelia.audio_renderer.pulseaudio.pcm]
   [OMX.Aratelia.audio_decoder.aac] -up- IL_API
   [OMX.Aratelia.audio_source.http] -up- IL_API
   [OMX plugin X ...] -up- IL_API
   [OMX plugin Y ...] -up- IL_API
   IL --> IL_API
}


node "Python Proxies (aka clients)" {
  [tizgmusicproxy] - clientAPI_gmusic
  [tizyoutubeproxy] - clientAPI_youtube
  [tizspotifyproxy] - clientAPI_spotify
  [tizplexproxy] - clientAPI_plex
  [tizsoundcloudproxy] - clientAPI_soundcloud
  [tiztuneinproxy] - clientAPI_tunein
  [tizxxxproxy] - clientAPI_xxx
  [OMX.Aratelia.audio_source.http] --> clientAPI_gmusic
  [OMX.Aratelia.audio_source.http] --> clientAPI_youtube
  [OMX.Aratelia.audio_source.http] --> clientAPI_spotify
  [OMX.Aratelia.audio_source.http] --> clientAPI_plex
  [OMX.Aratelia.audio_source.http] --> clientAPI_soundcloud
  [OMX.Aratelia.audio_source.http] --> clientAPI_tunein
  [OMX.Aratelia.audio_source.http] --> clientAPI_xxx
}

cloud {
  [Google Play Music] -up-> clientAPI_gmusic
  [Spotify] -up-> clientAPI_spotify
  [YouTube] -up-> clientAPI_youtube
  [Plex] -up-> clientAPI_plex
  [SoundCloud] -up-> clientAPI_soundcloud
  [TuneIn] -up-> clientAPI_tunein
  [ServiceX] -up-> clientAPI_xxx
}
@enduml

The Tizonia Project components¶

  • Components
    • Command-line cloud music player and audio streaming client/server.
    • A fully-featured OpenMAX IL 1.2 multimedia framework
    • OpenMAX IL 1.2 plugins
    • Skema: Tizonia’s test execution framework for OpenMAX IL components.

Building from Source¶

Follow one of these guides to build and run the codebase locally.

  • Building from Source (with Meson) [RECOMMENDED]
    • Prerequisites
    • Dependencies
    • Building
  • Building from Source (with Autotools)
    • Prerequisites
    • Dependencies
    • Building
    • Tizonia’s configuration file
    • Resource Manager’s D-BUS service activation file (optional)
    • Known issues
    • Speeding up (re-)compilation using ccache
    • Creating a JSON compilation database, for use with e.g. Emacs RTags

Coding Guidelines¶

  • Coding Style
    • General Philosophy
    • Formatting the Source Code
    • Indentation
    • Naming Variables, Functions, and Files

Writting Documentation¶

  • Documenting Tizonia
    • How To Build the Documentation

API Documentation¶

  • OpenMAX IL Framework
  • OpenMAX IL Plugins
  • Streaming Client Libraries

Debugging Tools¶

  • Logging configuration
  • Environment Variables
    • Tizonia’s Environment Variables
    • Other Environment Variables
©2020, Juan A. Rubio and contributors. | Powered by Sphinx 3.1.0 & Alabaster 0.7.12 | Page source
Fork me on GitHub