[Matroska-general] Matroska in closed source products
Christian HJ Wiesner
chris at matroska.org
Thu Dec 4 22:48:40 CET 2003
Hauke Duden wrote:
> Hello all,
> I'm currently evaluating on whether we will include Matroska support
> in our free - but closed source - media player (Ashampoo Media Player+).
> However, it seems that this is not possible with either of the two
> licenses you offer for your libraries. The GPL is of course not an
> option for closed source programs. And I'm not too familiar with the
> QPL, but it seems to me that it also requires applications using the
> libraries to be open-sourced.
> Please correct me if I'm wrong, but the following part of the license
> seems to make that pretty clear:
>
> """
> 6. You may develop application programs, reusable components and other
> software items that link with the original or modified versions of the
> Software. These items, when distributed, are subject to the
> following requirements:
> <snip>
> b. You must explicitly license all recipients of your items to use
> and re-distribute original and modified versions of the items in
> both machine-executable and source code forms.
> <snip>
> """
>
> If I understand this correctly, then "items" refers to application
> programs using the matroska libs and 6.b requires those to be open
> source.
> However, I have seen commercial players with Matroska support. Have
> these programs implemented their own Matroska libraries from your
> specs or is there some aspect to this license that I don't understand?
> Thanks for any insights,
> Hauke Duden
Hi Hauke,
thanks for your interest in supporting matroska in Ashampoo+ . You were
reading the license right, libmatroska/libebml are currently QPL/GPL
dual license, and both are opensource licenses that require that the
application which includes them, either as a part of the source code or
via statical linking, are opensource themselves.
However, you have to understand that the main reason for not giving the
libraries away to anybody with a much weaker license form, is not
because we dont want matroska to be supported in closed source apps, but
because in the present situation of the project we want to have as much
control as possible on apps that are CREATING matroska files, to avoid
incompatibilities and frustration of the users, at least until the
format has become widely adopted.
For playback we dont have such intentions, but its hard to split
libmatroska and libebml in a 'read-only' version, and also this would
make it more difficult to maintain, so we havent doen that nor do we
have any intentions to do it. But there are a couple of workarounds we
would like to point you to, to make sure that matroska will finally be
supported in your product ( thats the goal ) :
1. Plugin System : The most easiest way to overcome the opensource
problem is via a player specific 'plugin' . To achieve that, you have to
design your player such that it supports playback plugins, and then you
make a matroska specific plugin and release the sourcecode for the
plugin itself as either GPL or QPL, or both. The most used 'plugin
system' if of course Microsoft DirectShow itself, and most of the
commercial player you saw supporting matroska, were obviously DirectShow
based and using the opensource matroska splitter filter to support the
basic format playback. 'The Core Media Player ( TCMP )' for example, in
addition to the matroska DirectShow parser filter, has a so-called 'CDL'
to be able to read more specific data like tags etc. from matroska
files, which is not possible via DirectShow. Again, the CDL plugin
itself is using libmatroska/libebml and is opensource, while the rest of
the player is not. Please note that thansk to a new interface that was
added to the matroska DirectShow parser filter by Toff, some of the more
advanced things than just basic playback are now even possible via
DirectShow, please PING me if you need a link to the documentation of
the interface.
2. New C library from BBB : Ronald 'BBB' Bultje has made a new library
in C, not C++ like libmatroska/libebml, so that maybe one day matroska
may get supported in FFMPEG/libavformat. The license for this library is
L-GPL, so this allows use in closed source programs also, as long as you
make the code for the library itself available, and even via a link in
your documentation. This code can not be found in the matroska CVS, its
currently in the Gstreamer CVS ( http://gstreamer.net ) and used in the
matroska plugin for gstreamer. Its currently playback only, but should
be ideal for your purpose, even if some of the more advanced features of
matroska are not implemented yet.
3. If 2. is no option for you, and you absolutely cant build matroska
support based on a plugin, then as a last option we might be able to
license you on the code. We already have such a request from another
closed source program, and are admittedly a bit late in getting a proper
license agreement into a written form, and signed by all developers
involved in the making of the 2 libs.
I hope this shows you a couple of options, looking forward to hear from
you about what option may be best for your situation.
Best regards
Christian
matroska project admin
More information about the Matroska-general
mailing list