From 77fa4072ee70f26e3182517b952392d71233c5db Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Tue, 5 Jul 2011 21:35:46 +0300 Subject: [PATCH] Allow building a LGPL only gst-ffmpeg plugin 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 | 18 ++++++++++++++++-- ext/Makefile.am | 5 ++++- ext/ffmpeg/gstffmpeg.c | 8 +++++++- ext/libswscale/gstffmpegscale.c | 8 +++++++- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index f0ad614..212708a 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/ext/Makefile.am b/ext/Makefile.am index b13b797..d9ee1a3 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -1 +1,4 @@ -SUBDIRS = ffmpeg libpostproc libswscale +SUBDIRS = ffmpeg libswscale +if !GST_FFMPEG_ENABLE_LGPL + SUBDIRS += libpostproc +endif diff --git a/ext/ffmpeg/gstffmpeg.c b/ext/ffmpeg/gstffmpeg.c index 6fccb61..88a43bc 100644 --- a/ext/ffmpeg/gstffmpeg.c +++ b/ext/ffmpeg/gstffmpeg.c @@ -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/") diff --git a/ext/libswscale/gstffmpegscale.c b/ext/libswscale/gstffmpegscale.c index 697539e..202fda8 100644 --- a/ext/libswscale/gstffmpegscale.c +++ b/ext/libswscale/gstffmpegscale.c @@ -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/") -- 2.7.4