[alsa-devel] [ALSA-LIB][PATCH] Add support for compress offload API

Vinod Koul vinod.koul at intel.com
Thu Mar 5 07:53:19 CET 2015


On Wed, Mar 04, 2015 at 04:31:43PM -0600, Pierre-Louis Bossart wrote:
> I am no lawyer but I think there is work to do on the license and
> copyright parts, see below.
> -Pierre
> 
> On 3/4/15 10:22 AM, Qais Yousef wrote:
> >Merge tinycompress library into alsa-lib using LGPL license.
> >Only function names were modified to match the coding style in alsa-lib,
> >prepending snd_compr to function names and structs.
> >
> >Signed-off-by: Qais Yousef <qais.yousef at imgtec.com>
> >Cc: Takashi Iwai <tiwai at suse.de>
> >Cc: Vinod Koul <vinod.koul at intel.com>
> >Cc: Mark Brown <broonie at kernel.org>
> >---
> >  configure.ac                     |   9 +
> >  include/Makefile.am              |   4 +
> >  include/compress.h               | 245 ++++++++++++++++
> >  include/sound/compress_offload.h | 191 +++++++++++++
> >  include/sound/compress_params.h  | 404 ++++++++++++++++++++++++++
> >  src/Makefile.am                  |   7 +
> >  src/compress/Makefile.am         |   8 +
> >  src/compress/compress.c          | 599 +++++++++++++++++++++++++++++++++++++++
> >  8 files changed, 1467 insertions(+)
> >  create mode 100644 include/compress.h
> >  create mode 100644 include/sound/compress_offload.h
> >  create mode 100644 include/sound/compress_params.h
> >  create mode 100644 src/compress/Makefile.am
> >  create mode 100644 src/compress/compress.c
> >
> >diff --git a/configure.ac b/configure.ac
> >index f0995e3ae787..a768730781e0 100644
> >--- a/configure.ac
> >+++ b/configure.ac
> >@@ -368,6 +368,9 @@ AC_ARG_ENABLE(mixer,
> >  AC_ARG_ENABLE(pcm,
> >    AS_HELP_STRING([--disable-pcm], [disable the PCM component]),
> >    [build_pcm="$enableval"], [build_pcm="yes"])
> >+AC_ARG_ENABLE(compress,
> >+  AS_HELP_STRING([--disable-compress], [disable the compress component]),
> >+  [build_compress="$enableval"], [build_compress="yes"])
> >  AC_ARG_ENABLE(rawmidi,
> >    AS_HELP_STRING([--disable-rawmidi], [disable the raw MIDI component]),
> >    [build_rawmidi="$enableval"], [build_rawmidi="yes"])
> >@@ -418,6 +421,7 @@ AC_SUBST(PYTHON_INCLUDES)
> >
> >  AM_CONDITIONAL([BUILD_MIXER], [test x$build_mixer = xyes])
> >  AM_CONDITIONAL([BUILD_PCM], [test x$build_pcm = xyes])
> >+AM_CONDITIONAL([BUILD_COMPRESS], [test x$build_compress = xyes])
> >  AM_CONDITIONAL([BUILD_RAWMIDI], [test x$build_rawmidi = xyes])
> >  AM_CONDITIONAL([BUILD_HWDEP], [test x$build_hwdep = xyes])
> >  AM_CONDITIONAL([BUILD_SEQ], [test x$build_seq = xyes])
> >@@ -431,6 +435,9 @@ fi
> >  if test "$build_pcm" = "yes"; then
> >    AC_DEFINE([BUILD_PCM], "1", [Build PCM component])
> >  fi
> >+if test "$build_compress" = "yes"; then
> >+  AC_DEFINE([BUILD_COMPRESS], "1", [Build compress component])
> >+fi
> >  if test "$build_rawmidi" = "yes"; then
> >    AC_DEFINE([BUILD_RAWMIDI], "1", [Build raw MIDI component])
> >  fi
> >@@ -641,6 +648,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
> >  	  include/Makefile include/sound/Makefile src/Versions src/Makefile \
> >            src/control/Makefile src/mixer/Makefile \
> >  	  src/pcm/Makefile src/pcm/scopes/Makefile \
> >+	  src/compress/Makefile \
> >  	  src/rawmidi/Makefile src/timer/Makefile \
> >            src/hwdep/Makefile src/seq/Makefile src/ucm/Makefile \
> >            src/alisp/Makefile \
> >@@ -693,6 +701,7 @@ cat >> include/asoundlib.h <<EOF
> >  #include <alsa/conf.h>
> >  EOF
> >  test "$build_pcm" = "yes" && echo "#include <alsa/pcm.h>" >> include/asoundlib.h
> >+test "$build_compress" = "yes" && echo "#include <alsa/compress.h>" >> include/asoundlib.h
> >  test "$build_rawmidi" = "yes" && echo "#include <alsa/rawmidi.h>" >> include/asoundlib.h
> >  test "$build_pcm" = "yes" && echo "#include <alsa/timer.h>" >> include/asoundlib.h
> >  test "$build_hwdep" = "yes" && echo "#include <alsa/hwdep.h>" >> include/asoundlib.h
> >diff --git a/include/Makefile.am b/include/Makefile.am
> >index 4baa03af69e1..395a2ed60d70 100644
> >--- a/include/Makefile.am
> >+++ b/include/Makefile.am
> >@@ -30,6 +30,10 @@ alsainclude_HEADERS += pcm_ioplug.h
> >  endif
> >  endif
> >
> >+if BUILD_COMPRESS
> >+alsainclude_HEADERS += compress.h
> >+endif
> >+
> >  if BUILD_RAWMIDI
> >  alsainclude_HEADERS += rawmidi.h
> >  endif
> >diff --git a/include/compress.h b/include/compress.h
> >new file mode 100644
> >index 000000000000..250ce0c3f7c4
> >--- /dev/null
> >+++ b/include/compress.h
> >@@ -0,0 +1,245 @@
> >+/*
> >+ * tinycompress library for compress audio offload in alsa
> >+ * Copyright (c) 2011-2012, Intel Corporation.
> >+ *
> >+ *
> >+ * This program is free software; you can redistribute it and/or modify it
> >+ * under the terms and conditions of the GNU Lesser General Public License,
> >+ * version 2.1, as published by the Free Software Foundation.
> >+ *
> >+ * This program is distributed in the hope 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.
> 
> It looks like this is pulled from
> tinycompress/include/tinycompress/tinycompress.h, which was released
> with a dual BSD and LGPL license. I wonder if you can remove the BSD
> license really? At the very least you should make it clear where
> this code came from.
apart for legal stuff, we have another issue of having two versions which
will lead to mainatince cost

I was thinking that we can add support in alsa lib for tinycompress by
pulling the git as part of this project, so that alsa gets latest code
always and we can use single repostory for android and linux distros



> >+ *  compress_offload.h - compress offload header definations
> >+ *
> >+ *  Copyright (C) 2011 Intel Corporation
> >+ *  Authors:	Vinod Koul <vinod.koul at linux.intel.com>
> >+ *		Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> >+ *  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >+ *
> >+ *  This program is free software; you can redistribute it and/or modify
> >+ *  it under the terms of the GNU General Public License as published by
> >+ *  the Free Software Foundation; version 2 of the License.
> 
> So this one is pulled form the kernel and with GPL, not LGPL. Whoa.
One should use *installed headers*, are these installed ones or copied from
kernel?

-- 
~Vinod


More information about the Alsa-devel mailing list