[gst-devel] Monkeys Audio support working

Josh Coalson xflac at yahoo.com
Tue Mar 18 15:36:15 CET 2003


--- David Schleef <ds at schleef.org> wrote:
> On Tue, Mar 18, 2003 at 11:02:32AM -0800, Josh Coalson wrote:
> > Keep in mind that the Monkey's Audio source is automatically
> > GPLed since its range coder is someone else's implementation,
> > released under the GPL.
> 
> Um, no.  That's not how it works.

Well, the Monkey's Audio source is clearly a derived work
according US copyright law and the GPL (more below).  So one of
these must be true:

1. the derived work can not be legally redistributed
2. it must be redistributed under a GPL-compatible license
(the Monkey's Audio license is not GPL compatible)
3. Matt must have permission to redistribute the derived work
under different terms from the range coder author.  This seems
unlikely since the original author is not attributed in the
source.

See http://www.gnu.org/licenses/gpl.html.  Note section 2 where
this is spelled out.  See also
http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic

> > Compare Source/MACLib/BitArray.cpp and Source/MACLib/UnBitArray.cpp
> > with rangecod.c from
> > http://www.compressconsult.com/rangecoder/rangecoder1.3.tar.gz
> 
> Perhaps I'm missing something, but I see only a few lines that are
> even remotely similar between those two files:
> 
>   #define CODE_BITS 32
>   #define TOP_VALUE ((unsigned int ) 1 << (CODE_BITS - 1))
>   #define SHIFT_BITS (CODE_BITS - 9)
>   #define EXTRA_BITS ((CODE_BITS - 2) % 8 + 1)
> 
> Four lines do not make a derived work, otherwise this mail would
> be in violation of copyright.  I wouldn't be surprised if these
> lines even came from one of the research papers referenced in
> rangecoder1.3.tar.gz or the web site.  I wasn't able to check this
> quickly.

The rangecoder1.3.tar.gz code contains refinements that are not
described in the research papers.  In addition, the four lines you
quote are just the tip of the iceberg.  RangeDecodeFast() and
RangeDecodeFastWithUpdate() are obviously derived from
dec_normalize(), decode_culshift(), and decode_update().  They
both even use the same method for flushing the buffer which is
specific to this particular implementation.

See section 0 of the GPL to see how this makes the entire MAC
library a "derived work" under the terms of the GPL.

Josh


__________________________________________________
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!
http://platinum.yahoo.com




More information about the gstreamer-devel mailing list