[FFmpeg-devel] Support master branch of OpenJPEG and Grok J2K codecs

Aaron Boxer boxerab at gmail.com
Mon Apr 4 14:49:05 CEST 2016


On Mon, Apr 4, 2016 at 5:37 AM, Michael Niedermayer <michael at niedermayer.cc>
wrote:

> On Sun, Apr 03, 2016 at 05:31:25PM -0400, Aaron Boxer wrote:
> > Hi Folks,
> >
> > Here is a small patch to get FFmpeg working with both OpenJPEG master and
> > Grok master, for J2K support.  The comment on the commit has all of the
> > details; the main change is to remove the OPJ_STATIC flag from configure,
> > so that FFmpeg can be configured with a dynamic build of both codecs.
> >
>
> > I also want to reiterate that because FFmpeg can be distributed under GPL
> > v3, and Grok is licensed under the AGPL, there are no licensing issues
> > regarding distributing FFmpeg together with Grok.
>
> FFmpeg support a wide varity of network protools, from low level
> tcp&udp to higher level http, ftp, rtp, rtsp, rtmp, mms, ...
>
> the AGPL requires "if you modify the Program, your modified version must
> prominently offer all users interacting with it remotely through a computer
> network (if your version supports such interaction) an opportunity to
> receive the Corresponding Source of your version by providing access to the
> Corresponding Source from a network server at no charge, through some
> standard or customary means of facilitating copying of software."
>
> yet you here suggest to link AGPL software to GPL where the GPL sw
> will not offer any source though any of its quite numerous network
> interfaces
>
> Iam no lawyer so i dont know if you can do that or not but
> either the combination needs to offer source code through its network
> protocols or you just suggested to circumvent your own licenses main
> point
>
>
Here is clarification from the horse's mouth AKA FSF:

http://www.gnu.org/licenses/gpl-faq.html#AGPLv3CorrespondingSource

Under AGPLv3, when I modify the Program under section 13, what
Corresponding Source does it have to offer? (#AGPLv3CorrespondingSource
<http://www.gnu.org/licenses/gpl-faq.html#AGPLv3CorrespondingSource>)

“Corresponding Source” is defined in section 1 of the license, and you
should provide what it lists. So, if your modified version depends on
libraries under other licenses, such as the Expat license or GPLv3, the
Corresponding Source should include those libraries (unless they are System
Libraries). If you have modified those libraries, you must provide your
modified source code for them.

The last sentence of the first paragraph of section 13 is only meant to
reinforce what most people would have naturally assumed: even though
combinations with code under GPLv3 are handled through a special exception
in section 13, the Corresponding Source should still include the code that
is combined with the Program this way. This sentence does not mean that you
*only* have to provide the source that's covered under GPLv3; instead it
means that such code is *not* excluded from the definition of Corresponding
Source.


In GPLv3 and AGPLv3, what does it mean when it says “notwithstanding any
other provision of this License”? (#v3Notwithstanding
<http://www.gnu.org/licenses/gpl-faq.html#v3Notwithstanding>)

This simply means that the following terms prevail over anything else in
the license that may conflict with them. For example, without this text,
some people might have claimed that you could not combine code under GPLv3
with code under AGPLv3, because the AGPL's additional requirements would be
classified as “further restrictions” under section 7 of GPLv3. This text
makes clear that our intended interpretation is the correct one, and you
can make the combination.

This text only resolves conflicts between different terms of the license.
When there is no conflict between two conditions, then you must meet them
both. These paragraphs don't grant you carte blanche to ignore the rest of
the license—instead they're carving out very limited exceptions.
Under AGPLv3, when I modify the Program under section 13, what
Corresponding Source does it have to offer? (#AGPLv3CorrespondingSource
<http://www.gnu.org/licenses/gpl-faq.html#AGPLv3CorrespondingSource>)

“Corresponding Source” is defined in section 1 of the license, and you
should provide what it lists. So, if your modified version depends on
libraries under other licenses, such as the Expat license or GPLv3, the
Corresponding Source should include those libraries (unless they are System
Libraries). If you have modified those libraries, you must provide your
modified source code for them.

The last sentence of the first paragraph of section 13 is only meant to
reinforce what most people would have naturally assumed: even though
combinations with code under GPLv3 are handled through a special exception
in section 13, the Corresponding Source should still include the code that
is combined with the Program this way. This sentence does not mean that you
*only* have to provide the source that's covered under GPLv3; instead it
means that such code is *not* excluded from the definition of Corresponding
Source.

So, if I distribute both GPL 3 and APGL 3 code together, then this is
legally allowed, with the proviso that
any changes to either AGPL 3 source or *corresponding* GPL 3 source must be
made available if a user is connecting over the network and requests the
source.  See "corresponding source" above.

HTH,
Aaron


More information about the ffmpeg-devel mailing list