[Ffmpeg-devel] overall license review - adding proper license headers

Diego Biurrun diego
Fri Sep 1 16:13:47 CEST 2006


I took the time to look through all of the files in FFmpeg and review
the licensing conditions.  Not the most exciting thing in the world to
do, but I figured it would be worth the while.  I've stumbled across
some things that demand attention and/or clarification.  I'm willing to
commit the fixes, but I'll need your opinions, comments and permission.


libavcodec/fdctref.c claims all rights reserved.  This is non-free.
Houston, we have a problem.  Where does this file come from?


In libavformat/ dv1394.h is marked as GPL while dv1394.c is marked as
LGPL.  While this is probably an oversight, this makes FFmpeg versions
compiled with dv1394 support effectively GPL.  It's compiled in by
default on platforms that support it.  This looks like a simple
oversight, but probably the original author should be asked before this
is changed or the code put under CONFIG_GPL.


libavcodec/armv4l/simple_idct_arm.S is marked as GPL, but the original
commit message from Alex says:

  Optimized simple idct for arm by Frederic 'dilb' Boulay <...>.
  Currently licensed under the GPLv2, but the author
  allowed to license it under the LGPL, feel free to change

I think this should simply be switched to LGPL then.


libavcodec/i386/idct_mmx.c is marked as GPL but with the exception that
it can be used as LGPL in libavcodec.  IMO this is equivalent to
releasing it under the LGPL in libavcodec.  The licensing note should be
updated.


libavcodec/ps2/idct_mmi.c seems to be from Intel Application Note
AP-922, all the links in the file are 404, thus the license of this file
is unclear.  Hmmm, not good.


libavcodec/liba52/resample_mmx.c is informally marked as "under GPL", I
suggest adding the official GPL header instead.
Same for libavutil/softfloat.h but with LGPL.


libswscale/rgb2rgb.c and libswscale/rgb2rgb_template.c have a note

  palette & yuv & runtime cpu stuff by Michael (michaelni at ...) (under GPL)

but the rest was apparently written by Nick Kurshev and Alex.  I think
the rest can be assumed to be GPL as well, IMO we should make this
explicit with the official GPL header.


libavutil/adler32.c says

 * For conditions of distribution and use, see copyright notice in zlib.h

we don't include zlib.h so the conditions should be pasted there IMO.


libavcodec/truemotion1data.h is taken from GPL code and relicensed under
the assumption that data tables are not copyrightable.  Hmmmmm.

In libavcodec/ jfdctfst.c, jfdctint.c and jrevdct.c refer to a README
file for conditions of distribution and use.  Where do they come from?
What does that README file say?


libavcodec/mpegaudiotab.h says that "The licence of this code is
contained in file LICENCE found in the same archive".  What archive?
What LICENSE file?


The files listed below have no license header.  I would suggest adding
the proper/official (L)GPL license header to them to make things crystal
clear.  Some are very short header files, but we have 5 line headers
that do come with an LGPL header.  Some are data tables, but we do have
data tables that come with an LGPL header.

I would assume that adding license headers to those files is acceptable
since they have been implicitly licensed under the (L)GPL all the time.

Thoughts/comments/flames welcome.

Diego


libpostproc/mangle.h

libswscale/rgb2rgb.h
libswscale/yuv2rgb_altivec.c

libavutil/adler32.h
libavutil/avutil.h
libavutil/bswap.h
libavutil/common.h
libavutil/crc.c
libavutil/crc.h
libavutil/internal.h
libavutil/intfloat_readwrite.h
libavutil/log.h
libavutil/mathematics.h
libavutil/md5.h
libavutil/softfloat.c
libavutil/x86_cpu.h

libavformat/allformats.h
libavformat/avformat.h
libavformat/avi.h
libavformat/avio.h
libavformat/barpainet.[ch]
libavformat/framehook.h
libavformat/gxf.h
libavformat/isom.h
libavformat/ogg.c
libavformat/os_support.h
libavformat/qtpalette.h
libavformat/riff.h
libavformat/rtspcodes.h

libavcodec/ac3tab.h
libavcodec/apiexample.c
libavcodec/avcodec.h
libavcodec/bitstream.h
libavcodec/bitstream_filter.c
libavcodec/dct-test.c
libavcodec/faandct.h
libavcodec/fft-test.c
libavcodec/h261data.h
libavcodec/h263data.h
libavcodec/indeo2data.h
libavcodec/indeo3data.h
libavcodec/internal.h
libavcodec/lzo.h
libavcodec/motion_test.c
libavcodec/mpeg12data.h
libavcodec/mpeg4data.h
libavcodec/mpegaudio.h
libavcodec/mpegaudiodectab.h
libavcodec/msmpeg4data.h
libavcodec/oggvorbis.c
libavcodec/opt.h
libavcodec/rtjpeg.h
libavcodec/simple_idct.h
libavcodec/svq1_vlc.h
libavcodec/swscale.h
libavcodec/truemotion1data.h
libavcodec/truespeech_data.h
libavcodec/ulti_cb.h
libavcodec/vc1acdata.h
libavcodec/vc1data.h
libavcodec/vorbis.h
libavcodec/vp3data.h
libavcodec/wmadata.h

libavcodec/alpha/regdef.h

libavcodec/armv4l/dsputil_iwmmxt_rnd.h
libavcodec/armv4l/mpegvideo_iwmmxt.c

libavcodec/i386/cputest.c
libavcodec/i386/fdct_mmx.c
libavcodec/i386/mmx.h

libavcodec/ppc/gcc_fixes.h

libavcodec/ps2/mmi.h

libavcodec/sh4/qpel.c

libavcodec/sparc/vis.h

libavcodec/liba52/resample.c
libavcodec/liba52/resample_c.c




More information about the ffmpeg-devel mailing list