[FFmpeg-devel] tinterlace license

Vasile Toncu vasile.toncu at tremend.com
Mon Feb 5 12:58:58 EET 2018


Hello,

I'm looking forward to modify *tinterlace* filter from GPL to LGPL. The 
ASM opts will remain under GPL.

Previously I tried to make a whole new filter, *reinterlace*, that acts 
just like tinterlace, but it happens that this task results in 
unnecessary duplicated code.

I want to address the main copyright holders Thomas Mundt, Stefano 
Sabatini, Baptiste Coudurier and other ffmpeg maintainers for their 
approval.

Here is the path for the new changes:

 From 6cd7a4c7a963baacd9bdcc1b5ded8eef78de521b Mon Sep 17 00:00:00 2001
From: Vasile Toncu <vasile.toncu at tremend.com>
Date: Mon, 5 Feb 2018 12:32:30 +0200
Subject: [PATCH] Converted tinterlace from GPL to LGPL, expect the part with
  ASM opts.

---
  Changelog                   |  1 +
  configure                   |  2 +-
  libavfilter/tinterlace.h    |  8 +++++---
  libavfilter/vf_tinterlace.c | 10 +++++++---
  4 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/Changelog b/Changelog
index 7a73447..aae5564 100644
--- a/Changelog
+++ b/Changelog
@@ -2,6 +2,7 @@ Entries are sorted chronologically from oldest to 
youngest within each release,
  releases are sorted from youngest to oldest.

  version <next>:
+- Made tinterlace filter LGPL, expect the part with ASM opts
  - Bitstream filters for editing metadata in H.264, HEVC and MPEG-2 streams
  - Dropped support for OpenJPEG versions 2.0 and below. Using OpenJPEG now
    requires 2.1 (or later) and pkg-config.
diff --git a/configure b/configure
index 2711382..f58038f 100755
--- a/configure
+++ b/configure
@@ -3281,7 +3281,7 @@ stereo3d_filter_deps="gpl"
  subtitles_filter_deps="avformat avcodec libass"
  super2xsai_filter_deps="gpl"
  pixfmts_super2xsai_test_deps="super2xsai_filter"
-tinterlace_filter_deps="gpl"
+tinterlace_filter_deps=""
  tinterlace_merge_test_deps="tinterlace_filter"
  tinterlace_pad_test_deps="tinterlace_filter"
  tonemap_filter_deps="const_nan"
diff --git a/libavfilter/tinterlace.h b/libavfilter/tinterlace.h
index b5c39aa..ceda17c 100644
--- a/libavfilter/tinterlace.h
+++ b/libavfilter/tinterlace.h
@@ -6,16 +6,16 @@
   * This file is part of FFmpeg.
   *
   * FFmpeg is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as 
published by
   * the Free Software Foundation; either version 2 of the License, or
   * (at your option) any later version.
   *
   * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * GNU Lesser General Public License for more details.
   *
- * You should have received a copy of the GNU General Public License along
+ * You should have received a copy of the GNU Lesser General Public 
License along
   * with FFmpeg; if not, write to the Free Software Foundation, Inc.,
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
   */
@@ -67,6 +67,8 @@ typedef struct TInterlaceContext {
                           ptrdiff_t mref, ptrdiff_t pref, int clip_max);
  } TInterlaceContext;

+#ifdef CONFIG_GPL
  void ff_tinterlace_init_x86(TInterlaceContext *interlace);
+#endif

  #endif /* AVFILTER_TINTERLACE_H */
diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
index f13791d..238704e 100644
--- a/libavfilter/vf_tinterlace.c
+++ b/libavfilter/vf_tinterlace.c
@@ -7,16 +7,16 @@
   * This file is part of FFmpeg.
   *
   * FFmpeg is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
+ * it under the terms of the GNU Lesser General Public License as 
published by
   * the Free Software Foundation; either version 2 of the License, or
   * (at your option) any later version.
   *
   * FFmpeg is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * GNU Lesser General Public License for more details.
   *
- * You should have received a copy of the GNU General Public License along
+ * You should have received a copy of the GNU Lesser General Public 
License along
   * with FFmpeg if not, write to the Free Software Foundation, Inc.,
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
   */
@@ -262,15 +262,19 @@ static int config_out_props(AVFilterLink *outlink)
              tinterlace->lowpass_line = lowpass_line_complex_c_16;
          else
              tinterlace->lowpass_line = lowpass_line_complex_c;
+#ifdef CONFIG_GPL
          if (ARCH_X86)
              ff_tinterlace_init_x86(tinterlace);
+#endif
      } else if (tinterlace->flags & TINTERLACE_FLAG_VLPF) {
          if (tinterlace->csp->comp[0].depth > 8)
              tinterlace->lowpass_line = lowpass_line_c_16;
          else
              tinterlace->lowpass_line = lowpass_line_c;
+#ifdef CONFIG_GPL
          if (ARCH_X86)
              ff_tinterlace_init_x86(tinterlace);
+#endif
      }

      av_log(ctx, AV_LOG_VERBOSE, "mode:%d filter:%s h:%d -> h:%d\n", 
tinterlace->mode,
-- 
2.7.4


More information about the ffmpeg-devel mailing list