summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-10-17 23:46:05 +0000
committernico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-10-17 23:46:05 +0000
commit5e6d1078866ea260d52dda2ac6a4f0dbdf3ec4ac (patch)
tree5816ff0e2d00d3eb7dcdb92c0af9467e7c1e7002
parent0333c161d08a8cac8d3023612df12213abb203b9 (diff)
add flac package (thanks to David Collet)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2158 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/Config.in1
-rw-r--r--package/Makefile1
-rw-r--r--package/flac/Config.in14
-rw-r--r--package/flac/Makefile60
-rw-r--r--package/flac/ipkg/libflac.control8
-rw-r--r--package/flac/patches/no_encoder.patch280
6 files changed, 364 insertions, 0 deletions
diff --git a/package/Config.in b/package/Config.in
index c52697a267..e536069676 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -146,6 +146,7 @@ source "package/libdnet/Config.in"
source "package/libelf/Config.in"
source "package/libevent/Config.in"
source "package/expat/Config.in" # libexpat
+source "package/flac/Config.in" # libflac
source "package/freetype/Config.in" # libfreetype
source "package/libgcrypt/Config.in"
source "package/libgd/Config.in"
diff --git a/package/Makefile b/package/Makefile
index 62ed326022..f012152525 100644
--- a/package/Makefile
+++ b/package/Makefile
@@ -37,6 +37,7 @@ package-$(BR2_PACKAGE_EBTABLES) += ebtables
package-$(BR2_PACKAGE_ETHER_WAKE) += ether-wake
package-$(BR2_COMPILE_EXPAT) += expat
package-$(BR2_PACKAGE_EZIPUPDATE) += ez-ipupdate
+package-$(BR2_COMPILE_FLAC) += flac
package-$(BR2_PACKAGE_FPING) += fping
package-$(BR2_PACKAGE_FPROBE) += fprobe
package-$(BR2_PACKAGE_FPROBE_ULOG) += fprobe-ulog
diff --git a/package/flac/Config.in b/package/flac/Config.in
new file mode 100644
index 0000000000..73cdd86f53
--- /dev/null
+++ b/package/flac/Config.in
@@ -0,0 +1,14 @@
+config BR2_COMPILE_FLAC
+ bool
+ default n
+ depends BR2_PACKAGE_LIBFLAC
+
+config BR2_PACKAGE_LIBFLAC
+ tristate "libflac - Free Lossless Audio Codec library"
+ default m if CONFIG_DEVEL
+ select BR2_COMPILE_FLAC
+ help
+ Free Lossless Audio Codec library
+
+ http://flac.sourceforge.net/
+
diff --git a/package/flac/Makefile b/package/flac/Makefile
new file mode 100644
index 0000000000..9baa0da852
--- /dev/null
+++ b/package/flac/Makefile
@@ -0,0 +1,60 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=flac
+PKG_VERSION:=1.1.2
+PKG_RELEASE:=1
+PKG_MD5SUM:=2bfc127cdda02834d0491ab531a20960
+
+PKG_SOURCE_URL:=@SF/flac
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(TOPDIR)/package/rules.mk
+
+$(eval $(call PKG_template,LIBFLAC,libflac,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+ touch $@
+
+$(PKG_BUILD_DIR)/.built:
+ rm -rf $(PKG_INSTALL_DIR)
+ mkdir -p $(PKG_INSTALL_DIR)
+ $(MAKE) -C $(PKG_BUILD_DIR) -f Makefile.lite \
+ $(TARGET_CONFIGURE_OPTS) \
+ libFLAC
+ touch $@
+
+$(IPKG_LIBFLAC):
+ install -m0755 -d $(IDIR_LIBFLAC)/usr/lib
+ cp -fpR $(PKG_BUILD_DIR)/obj/release/lib/libFLAC.so $(IDIR_LIBFLAC)/usr/lib/
+ $(RSTRIP) $(IDIR_LIBFLAC)
+ $(IPKG_BUILD) $(IDIR_LIBFLAC) $(PACKAGE_DIR)
+
+$(STAGING_DIR)/usr/lib/libFLAC.so: $(PKG_BUILD_DIR)/.built
+ mkdir -p $(STAGING_DIR)/usr/include
+ cp -fpR $(PKG_BUILD_DIR)/include/FLAC $(STAGING_DIR)/usr/include/
+ mkdir -p $(STAGING_DIR)/usr/lib
+ cp -fpR $(PKG_BUILD_DIR)/obj/release/lib/libFLAC.a $(STAGING_DIR)/usr/lib/
+ cp -fpR $(PKG_BUILD_DIR)/obj/release/lib/libFLAC.so $(STAGING_DIR)/usr/lib/
+ touch $@
+
+install-dev: $(STAGING_DIR)/usr/lib/libFLAC.so
+
+uninstall-dev:
+ rm -rf \
+ $(STAGING_DIR)/usr/include/FLAC \
+ $(STAGING_DIR)/usr/lib/libFLAC.a \
+ $(STAGING_DIR)/usr/lib/libFLAC.so \
+
+compile: install-dev
+clean: uninstall-dev
+
+mostlyclean:
+ -$(MAKE) -C $(PKG_BUILD_DIR) clean
+ rm -f $(PKG_BUILD_DIR)/.built
+
diff --git a/package/flac/ipkg/libflac.control b/package/flac/ipkg/libflac.control
new file mode 100644
index 0000000000..e7b5cb71be
--- /dev/null
+++ b/package/flac/ipkg/libflac.control
@@ -0,0 +1,8 @@
+Package: libflac
+Priority: optional
+Section: libs
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org>, David Collett <daveco@users.sourceforge.net>
+Source: buildroot internal
+Description: Free Lossless Audio Codec library
diff --git a/package/flac/patches/no_encoder.patch b/package/flac/patches/no_encoder.patch
new file mode 100644
index 0000000000..64666e8034
--- /dev/null
+++ b/package/flac/patches/no_encoder.patch
@@ -0,0 +1,280 @@
+diff -ru flac-1.1.2.OLD/build/lib.mk flac-1.1.2.NEW/build/lib.mk
+--- flac-1.1.2.OLD/build/lib.mk 2005-01-25 15:10:47.000000000 +1100
++++ flac-1.1.2.NEW/build/lib.mk 2005-10-16 10:10:43.000000000 +1000
+@@ -58,7 +58,7 @@
+
+ debug : CFLAGS = -g -O0 -DDEBUG $(CONFIG_CFLAGS) $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
+ valgrind: CFLAGS = -g -O0 -DDEBUG $(CONFIG_CFLAGS) $(DEBUG_CFLAGS) -DFLAC__VALGRIND_TESTING -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
+-release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(CONFIG_CFLAGS) $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
++release : CFLAGS = -Os -pipe -mips32 -mtune=mips32 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(CONFIG_CFLAGS) $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
+
+ LFLAGS = -L$(LIBPATH)
+
+diff -ru flac-1.1.2.OLD/src/libFLAC/lpc.c flac-1.1.2.NEW/src/libFLAC/lpc.c
+--- flac-1.1.2.OLD/src/libFLAC/lpc.c 2005-01-26 15:31:36.000000000 +1100
++++ flac-1.1.2.NEW/src/libFLAC/lpc.c 2005-10-16 10:44:58.000000000 +1000
+@@ -293,6 +293,209 @@
+
+ void FLAC__lpc_restore_signal(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
+ {
++ register const FLAC__int32 *qlp0 = &qlp_coeff[(order-1)];
++ register FLAC__int32 sum;
++ register const FLAC__int32 *history, *qlp;
++
++ history = &data[(-order)];
++
++ switch (order) {
++ case 12:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ + (qlp0[-6] * history[6])
++ + (qlp0[-7] * history[7])
++ + (qlp0[-8] * history[8])
++ + (qlp0[-9] * history[9])
++ + (qlp0[-10] * history[10])
++ + (qlp0[-11] * history[11])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 11:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ + (qlp0[-6] * history[6])
++ + (qlp0[-7] * history[7])
++ + (qlp0[-8] * history[8])
++ + (qlp0[-9] * history[9])
++ + (qlp0[-10] * history[10])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 10:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ + (qlp0[-6] * history[6])
++ + (qlp0[-7] * history[7])
++ + (qlp0[-8] * history[8])
++ + (qlp0[-9] * history[9])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 9:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ + (qlp0[-6] * history[6])
++ + (qlp0[-7] * history[7])
++ + (qlp0[-8] * history[8])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 8:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ + (qlp0[-6] * history[6])
++ + (qlp0[-7] * history[7])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 7:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ + (qlp0[-6] * history[6])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 6:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ + (qlp0[-5] * history[5])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 5:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ + (qlp0[-4] * history[4])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 4:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ + (qlp0[-3] * history[3])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 3:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ + (qlp0[-2] * history[2])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 2:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * history[0])
++ + (qlp0[-1] * history[1])
++ ;
++ ++history;
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ case 1:
++ for( ; data_len != 0; --data_len) {
++ sum = (qlp0[0] * (*(history++)));
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ default:
++ {
++ /* handle everything else: (order > 12)
++ * with Duff's Device to reduce jumps */
++ const unsigned n0 = (order + 7)/8;
++ const int tmp = 0 - order - 1;
++ register const FLAC__int32 *qlpd = &qlp_coeff[order];
++ for( ; data_len != 0; --data_len) {
++ register unsigned n = n0;
++ sum = 0;
++ qlp = qlpd;
++ history = &data[tmp];
++
++ switch(order%8) {
++ case 0: do {
++ sum += (*(--qlp)) * (*(++history));
++ case 7: sum += (*(--qlp)) * (*(++history));
++ case 6: sum += (*(--qlp)) * (*(++history));
++ case 5: sum += (*(--qlp)) * (*(++history));
++ case 4: sum += (*(--qlp)) * (*(++history));
++ case 3: sum += (*(--qlp)) * (*(++history));
++ case 2: sum += (*(--qlp)) * (*(++history));
++ case 1: sum += (*(--qlp)) * (*(++history));
++ } while (--n);
++ }
++
++ *(data++) = *(residual++) + (sum >> lp_quantization);
++ }
++ return;
++ }
++ }
++}
++
++#if 0
++void FLAC__lpc_restore_signal_orig(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
++{
+ #ifdef FLAC__OVERFLOW_DETECT
+ FLAC__int64 sumo;
+ #endif
+@@ -339,6 +542,7 @@
+ }
+ */
+ }
++#endif /* 0 */
+
+ void FLAC__lpc_restore_signal_wide(const FLAC__int32 residual[], unsigned data_len, const FLAC__int32 qlp_coeff[], unsigned order, int lp_quantization, FLAC__int32 data[])
+ {
+diff -ru flac-1.1.2.OLD/src/libFLAC/Makefile.lite flac-1.1.2.NEW/src/libFLAC/Makefile.lite
+--- flac-1.1.2.OLD/src/libFLAC/Makefile.lite 2005-01-27 11:08:35.000000000 +1100
++++ flac-1.1.2.NEW/src/libFLAC/Makefile.lite 2005-10-16 10:13:29.000000000 +1000
+@@ -41,7 +41,7 @@
+ ifeq ($(SOLARIS_BUILD),yes)
+ DEFINES = -DFLAC__NO_ASM -DFLAC__ALIGN_MALLOC_DATA
+ else
+-DEFINES = -DFLAC__CPU_IA32 -DFLAC__USE_3DNOW -DFLAC__HAS_NASM -DFLAC__ALIGN_MALLOC_DATA
++DEFINES = -DFLAC__CPU_UNKNOWN -DFLAC__NO_ASM -DFLAC__ALIGN_MALLOC_DATA -DFLAC__INTEGER_ONLY_LIBRARY
+ endif
+ endif
+ INCLUDES = -I./include -I$(topdir)/include
+@@ -50,14 +50,6 @@
+ ifeq ($(DARWIN_BUILD),yes)
+ SRCS_S = \
+ ppc/as/lpc_asm.s
+-else
+-ifeq ($(SOLARIS_BUILD),yes)
+-else
+-SRCS_NASM = \
+- ia32/cpu_asm.nasm \
+- ia32/fixed_asm.nasm \
+- ia32/lpc_asm.nasm
+-endif
+ endif
+
+ SRCS_C = \
+@@ -66,7 +58,6 @@
+ cpu.c \
+ crc.c \
+ file_decoder.c \
+- file_encoder.c \
+ fixed.c \
+ float.c \
+ format.c \
+@@ -76,10 +67,7 @@
+ metadata_iterators.c \
+ metadata_object.c \
+ seekable_stream_decoder.c \
+- seekable_stream_encoder.c \
+- stream_decoder.c \
+- stream_encoder.c \
+- stream_encoder_framing.c
++ stream_decoder.c
+
+ include $(topdir)/build/lib.mk
+