Allow building a LGPL only gst-ffmpeg plugin
authorMartin Storsjo <martin@martin.st>
Tue, 5 Jul 2011 18:35:46 +0000 (21:35 +0300)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Mon, 31 Oct 2011 09:59:27 +0000 (10:59 +0100)
This removes --enable-gpl and --enable-postproc from the
ffmpeg configure line, and disables building the postproc
gstreamer plugin.

https://bugzilla.gnome.org/show_bug.cgi?id=654037

configure.ac
ext/Makefile.am
ext/ffmpeg/gstffmpeg.c
ext/libswscale/gstffmpegscale.c

index f0ad614..212708a 100644 (file)
@@ -204,6 +204,13 @@ if test "x$have_bz2" = "xno"; then
   AC_WARN([libbz2 not found, matroska demuxer will not be able to read bz2 tracks])
 fi
 
+AC_ARG_ENABLE(lgpl,
+              [AC_HELP_STRING([--enable-lgpl], [build a LGPL licensed gst-ffmpeg])])
+AM_CONDITIONAL(GST_FFMPEG_ENABLE_LGPL, test "x$enable_lgpl" = "xyes")
+if test "x$enable_lgpl" = "xyes"; then
+  AC_DEFINE([GST_FFMPEG_ENABLE_LGPL], [], [Defined if building a LGPL-only version of gst-ffmpeg])
+fi
+
 dnl *** configure external libs ***
 
 HAVE_FFMPEG_UNINSTALLED=1
@@ -213,7 +220,9 @@ AC_ARG_WITH(system-ffmpeg,
 
 if test "x$with_system_ffmpeg" = "xyes"; then
   PKG_CHECK_MODULES(FFMPEG, libavformat libavcodec libavutil) 
-  PKG_CHECK_MODULES(POSTPROC, libpostproc libavcodec libavutil)
+  if test "x$enable_lgpl" != "xyes"; then
+    PKG_CHECK_MODULES(POSTPROC, libpostproc libavcodec libavutil)
+  fi
   PKG_CHECK_MODULES(SWSCALE, libswscale libavutil)
   saved_CPPFLAGS="$CPPFLAGS"
   CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
@@ -306,11 +315,16 @@ else
 
   # Enable pic and static so that we get .a files, but with PIC code.
   embffmpeg_configure_args="$embffmpeg_configure_args --disable-avserver --disable-avplay\
-        --disable-ffmpeg --disable-avprobe --enable-postproc --enable-gpl --enable-static --enable-pic \
+        --disable-ffmpeg --disable-avprobe --enable-postproc --enable-static --enable-pic \
        --disable-encoder=flac --disable-decoder=cavs --disable-protocols --disable-devices\
        --disable-network --disable-hwaccels --disable-filters --disable-doc\
        --enable-optimizations"
 
+  if test "x$enable_lgpl" != "xyes"; then
+    embffmpeg_configure_args="$embffmpeg_configure_args --enable-postproc \
+        --enable-gpl"
+  fi
+
   # if we are cross-compiling, tell ffmpeg so
   target_os=`echo $host_os | sed 's/-gnu//'`
   if test "x$cross_compiling" = xyes; then
index b13b797..d9ee1a3 100644 (file)
@@ -1 +1,4 @@
-SUBDIRS = ffmpeg libpostproc libswscale
+SUBDIRS = ffmpeg libswscale
+if !GST_FFMPEG_ENABLE_LGPL
+    SUBDIRS += libpostproc
+endif
index 6fccb61..88a43bc 100644 (file)
@@ -162,4 +162,10 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     GST_VERSION_MINOR,
     "ffmpeg",
     "All FFmpeg codecs and formats (" FFMPEG_SOURCE ")",
-    plugin_init, PACKAGE_VERSION, "LGPL", "FFmpeg", "http://ffmpeg.org/")
+    plugin_init, PACKAGE_VERSION,
+#ifdef GST_FFMPEG_ENABLE_LGPL
+    "LGPL",
+#else
+    "GPL",
+#endif
+    "FFmpeg", "http://ffmpeg.org/")
index 697539e..202fda8 100644 (file)
@@ -821,4 +821,10 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     "ffvideoscale",
     "videoscaling element (" FFMPEG_SOURCE ")",
     plugin_init,
-    PACKAGE_VERSION, "GPL", "FFMpeg", "http://ffmpeg.sourceforge.net/")
+    PACKAGE_VERSION,
+#ifdef GST_FFMPEG_ENABLE_LGPL
+    "LGPL",
+#else
+    "GPL",
+#endif
+    "FFMpeg", "http://ffmpeg.sourceforge.net/")