[FFmpeg-devel] [PATCH] avcodec: add native Speex decoder

Lynne dev at lynne.ee
Sun Sep 19 15:02:00 EEST 2021


19 Sept 2021, 12:01 by onemda at gmail.com:

> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> ---
>  libavcodec/Makefile    |    1 +
>  libavcodec/allcodecs.c |    1 +
>  libavcodec/speexdata.h |  764 ++++++++++++++++++++
>  libavcodec/speexdec.c  | 1538 ++++++++++++++++++++++++++++++++++++++++
>  tests/ref/fate/source  |    2 +
>  5 files changed, 2306 insertions(+)
>  create mode 100644 libavcodec/speexdata.h
>  create mode 100644 libavcodec/speexdec.c
>
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index 11873eecae..7a603e44dd 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -632,6 +632,7 @@ OBJS-$(CONFIG_SONIC_ENCODER)           += sonic.o
>  OBJS-$(CONFIG_SONIC_LS_ENCODER)        += sonic.o
>  OBJS-$(CONFIG_SPEEDHQ_DECODER)         += speedhq.o mpeg12.o mpeg12data.o simple_idct.o
>  OBJS-$(CONFIG_SPEEDHQ_ENCODER)         += speedhq.o mpeg12data.o mpeg12enc.o speedhqenc.o
> +OBJS-$(CONFIG_SPEEX_DECODER)           += speexdec.o
>  OBJS-$(CONFIG_SP5X_DECODER)            += sp5xdec.o
>  OBJS-$(CONFIG_SRGC_DECODER)            += mscc.o
>  OBJS-$(CONFIG_SRT_DECODER)             += srtdec.o ass.o htmlsubtitles.o
> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
> index c42aba140d..fc6bf7cc25 100644
> --- a/libavcodec/allcodecs.c
> +++ b/libavcodec/allcodecs.c
> @@ -307,6 +307,7 @@ extern const AVCodec ff_snow_decoder;
>  extern const AVCodec ff_sp5x_decoder;
>  extern const AVCodec ff_speedhq_decoder;
>  extern const AVCodec ff_speedhq_encoder;
> +extern const AVCodec ff_speex_decoder;
>  extern const AVCodec ff_srgc_decoder;
>  extern const AVCodec ff_sunrast_encoder;
>  extern const AVCodec ff_sunrast_decoder;
> diff --git a/libavcodec/speexdata.h b/libavcodec/speexdata.h
> new file mode 100644
> index 0000000000..12a36736bf
> --- /dev/null
> +++ b/libavcodec/speexdata.h
> @@ -0,0 +1,764 @@
> +/*
> + * Copyright 2002-2008 	Xiph.org Foundation
> + * Copyright 2002-2008 	Jean-Marc Valin
> + * Copyright 2005-2007	Analog Devices Inc.
> + * Copyright 2005-2008	Commonwealth Scientific and Industrial Research Organisation (CSIRO)
> + * Copyright 1993, 2002, 2006 David Rowe
> + * Copyright 2003 		EpicGames
> + * Copyright 1992-1994	Jutta Degener, Carsten Bormann
> +
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> +
> + * - Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> +
> + * - Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> +
> + * - Neither the name of the Xiph.org Foundation nor the names of its
> + * contributors may be used to endorse or promote products derived from
> + * this software without specific prior written permission.
> +
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> + * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
> + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
> + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
> + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
> + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
> + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + */
>

No, the correct way to include files with compatible licenses that
require they be kept is to put both of them in the header, like:

+/*+ * Copyright 2002-2008 	Xiph.org Foundation+ * Copyright 2002-2008 	Jean-Marc Valin+ * Copyright 2005-2007	Analog Devices Inc.+ * Copyright 2005-2008	Commonwealth Scientific and Industrial Research Organisation (CSIRO)+ * Copyright 1993, 2002, 2006 David Rowe+ * Copyright 2003 		EpicGames+ * Copyright 1992-1994	Jutta Degener, Carsten Bormann+ *+ * Redistribution and use in source and binary forms, with or without+ * modification, are permitted provided that the following conditions+ * are met:+ *+ * - Redistributions of source code must retain the above copyright+ *   notice, this list of conditions and the following disclaimer.+ *+ * - Redistributions in binary form must reproduce the above copyright+ *   notice, this list of conditions and the following disclaimer in the+ *   documentation and/or other materials provided with the distribution.+ *+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+ *+ * This file is part of FFmpeg.+ *+ * FFmpeg is free software; you can redistribute it and/or+ * modify it under the terms of the GNU Lesser General Public+ * License as published by the Free Software Foundation; either+ * version 2.1 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+ * Lesser General Public License for more details.+ *+ * 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+ */
That way you don't need to add an exception to FATE, and the changes you make
will still be LGPL licensed.


More information about the ffmpeg-devel mailing list