How Pogg is developed

Pogg is a library based on the example template that you can find in the Libraries Overview. Just as the template, we use the Eclipse IDE for Java developers and the Ant build tool. It should be easy to use other IDEs like Netbeans instead.

Pogg is based on Cortado. You can download the source code of Cortado from here.

License issues

Pogg is released under the version 2 of the LGPL and Cortado is released under the version 2 of the GPL but has many LGPL classes.

We prefer the LGPL because it allows a wider usage of the library, including its use in closed source applications. The core library of is released under the LGPL as well.

Only the Cortado LGPL classes are used for Pogg, because if some GPL piece of code was used in Pogg, it could not be released under the LGPL anymore and could only be released under the GPL.

For more information about these licenses, a good point to start is the Wikipedia articles: GNU General Public License and GNU Lesser General Public License

Cortado GPL classes (not used in Pogg)

Cortado has several GPL classes that are needed to compile the LGPL classes. These classes are in the com.fluendo.utils and com.fluendo.jst:

  • com.fluendo.jst
    • Buffer
    • Bus
    • Clock
    • ClockProvider
    • Event
    • Format
    • Message
    • Query
    • SystemClock
  • com.fluendo.utils
    • Base64Converter
    • Debug
    • MemUtils

There are some other GPL classes in com.fluendo.examples and com.fluendo.player that are not used either, but they are not needed to compile the rest of the packages.


The first step to create a LGPL library based on Cortado was to remove all GPL classes and try to compile. The package com.fluendo.plugins was LGPL but had many references to the GPL classes in com.fluendo.jst (see list above) so it was deleted as well. Many classes used the GPL com.fluendo.utils which didn't exist anymore, but fortunately it was easy to imagine what their methods should do and these classes were implemented from scratch.

The first attempt was based in the com.fluendo.examples.DumpVideo class in Cortado. This example was simple enough and did not use any GPL class.

Then I noticed that DumpVideo class was very similar to the com.fluendo.plugin.TheoraDec and that the com.fluendo.plugin package (which I previously deleted because of its GPL dependencies) had many other interesting classes (sound, http access, and so on). So I started to move one class at a time to the package pogg.plugin, that does not use the GPL com.fluendo.jst classes mentioned above.

Rules used to develop Pogg

  • If a Cortado class has a GPL license delete it
  • If a Cortado class needs one of the deleted classes, try to guess what it does or just comment these lines but do not look at the GPL implementation.
Back to top
how_pogg_is_developed.txt · Last modified: 2013/01/21 07:14 (external edit)
CC Attribution-Noncommercial-Share Alike 3.0 Unported = chi`s home Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0