The iTV middleware.

Where's the source?

The code repository is on GitHub:


Ginga is free-software. Help is always welcomed. A good starting-point for new contributors is the issues page on Ginga's GitHub. Fell free to contact us on

Bug Reporting

Bugs should be reported on the issues page on Ginga's GitHub. When reporting bugs, try to be as clear as possible and to keep one bug per report. We recommend following the GNOME guidelines for bug reporting.

Best Practices

When hacking Ginga, to keep the code in shape, be sure to consider the following practices.

Good Habits

  • Configure the project with debugging and warnings enabled.
    $ ./configure --enable-debug --enable-warnings
  • Except when writing tests, don't use libginga internal API outside the library. That is, programs should only include ginga.h.
  • Before reinventing the wheel, check out aux-ginga.h for auxiliary functions.
  • Keep the inclusions in the global headers sorted alphabetically.
  • Use GLib assertions to check for unrecoverable or impossible conditions.

Coding Standards and Style

  • Read the GNU coding standards. We try to follow this document as much as possible, including the coding-style, which we adapted to C++11.
  • Be sure to write good Git commit messages. Read the seven rules of a great Git commit message.
  • Avoid tabs and trailing whitespace, check your editor settings.
  • Use "-" instead of "_" as word separators in file names.

Repository Structure

The repository of Ginga consists of the following directories.

  • build-aux: Auxiliary build scripts and macros for Autotools.
  • build-cmake: Configuration for CMake build.
  • debian: Configuration for Debian distribution.
  • doc: Documentation.
  • examples: Complete NCL examples.
  • extra: Extra stuff.
  • lib: The libginga sources.
  • src: The sources of the command-line players.
  • src-gui: The sources of the GUI player.
  • tests: Automated tests.
  • tests-ncl: NCL test files.


The current core maintainers of Ginga are:

Name Affiliation E-Mail
Álan Lívio PUC-Rio, TeleMídia
Guilherme F. Lima PUC-Rio, TeleMídia
Roberto Azevedo PUC-Rio, TeleMídia

See the contributors page on Ginga's GitHub for the full list of contributors.