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.to...@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
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to