[FFmpeg-devel] FFmpeg code Attribution

Michael Niedermayer michael at niedermayer.cc
Thu Mar 24 14:06:42 CET 2016


On Wed, Mar 23, 2016 at 06:35:20PM -0400, Aaron Boxer wrote:
> On Wed, Mar 23, 2016 at 3:59 PM, Michael Bradshaw <mjbshaw at gmail.com> wrote:
> 
> > On Wed, Mar 23, 2016 at 12:24 PM, Aaron Boxer <boxerab at gmail.com> wrote:
> > > Hello Again,
> > >
> > > I took a look at the FFmpeg j2k code. Now, I've worked with OpenJPEG for
> > > many years, and I would say at least 20% of the code in FFmpeg was either
> > > directly copied from OpenJPEG, or is very similar to OpenJPEG code.
> > >
> > > I think the people who did the work on the FFmpeg codec would readily
> > admit
> > > that they copied a certain amount directly from the other project.
> > >
> > > So, I think that the OpenJPEG BSD license should appear on those files
> > with
> > > copied code from OpenJPEG, to comply with the BSD license. I can list
> > some
> > > of the files (there aren't many) if people are interested.
> >
> > Go ahead and list the files and sections of code you're concerned
> > about (or the commits that introduced the code). Chances are that's
> > going to come up in the thread anyway, so might as well do it from the
> > get-go.
> >
> 
> Here is the most obvious example:
> 
> j2kenc.c (from FFmpeg)
> 
> static int getnmsedec_sig(int x, int bpno)
> {
>     if (bpno > NMSEDEC_FRACBITS)
>         return lut_nmsedec_sig[(x >> (bpno - NMSEDEC_FRACBITS)) & ((1 <<
> NMSEDEC_BITS) - 1)];
>     return lut_nmsedec_sig0[x & ((1 << NMSEDEC_BITS) - 1)];
> }
> 
> static int getnmsedec_ref(int x, int bpno)
> {
>     if (bpno > NMSEDEC_FRACBITS)
>         return lut_nmsedec_ref[(x >> (bpno - NMSEDEC_FRACBITS)) & ((1 <<
> NMSEDEC_BITS) - 1)];
>     return lut_nmsedec_ref0[x & ((1 << NMSEDEC_BITS) - 1)];
> }
> 
> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> 
> t1.c (from OpenJPEG)
> 
> int16_t opj_t1_getnmsedec_sig(uint32_t x, uint32_t bitpos)
> {
>     if (bitpos > 0) {
>         return lut_nmsedec_sig[(x >> (bitpos)) & ((1 << T1_NMSEDEC_BITS) -
> 1)];
>     }
> 
>     return lut_nmsedec_sig0[x & ((1 << T1_NMSEDEC_BITS) - 1)];
> }
> 
> int16_t opj_t1_getnmsedec_ref(uint32_t x, uint32_t bitpos)
> {
>     if (bitpos > 0) {
>         return lut_nmsedec_ref[(x >> (bitpos)) & ((1 << T1_NMSEDEC_BITS) -
> 1)];
>     }
> 
>     return lut_nmsedec_ref0[x & ((1 << T1_NMSEDEC_BITS) - 1)];
> }
> 
> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> 
> I will post more later.
> 
> But, this example alone requires that the attribution to OpenJPEG be
> mentioned somewhere, as per the BSD license:
> 
> 
> 
>  * Redistribution and use in source and binary forms, with or without
>  * modification, are permitted provided that the following conditions
>  * are met:
>  * 1. Redistributions of source code must retain the above copyright
>  *    notice, this list of conditions and the following disclaimer.
>  * 2. Redistributions in binary form must reproduce the above copyright
>  *    notice, this list of conditions and the following disclaimer in the
>  *    documentation and/or other materials provided with the distribution.
>  *
> 
> 
> What we seem to have is: an FFmpeg codec that was copied partially from
> OpenJPEG, but
> has fewer features than the original: encoding is poor,  as a few have
> mentioned.
> 
> Back to my original point, what is the reasoning not to just switch to
> OpenJPEG?
> 
> Of course it is your absolute right to create your own, but it seems like a
> waste of precious
> open source resources.
> 
> Yes, the same logic could be applied to my own project, but it is a little
> more complicated in my case.

i think this should be CC-ed to the one listed as author in git
thus doing so with that mail and fullquoting

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I do not agree with what you have to say, but I'll defend to the death your
right to say it. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160324/b1574ffb/attachment.sig>


More information about the ffmpeg-devel mailing list