diff options
Diffstat (limited to 'package/multimedia')
-rw-r--r-- | package/multimedia/alsa-lib/alsa-lib.mk | 11 | ||||
-rw-r--r-- | package/multimedia/ffmpeg/ffmpeg.mk | 3 | ||||
-rw-r--r-- | package/multimedia/libmms/libmms-prevent-unaligned-dereferences.patch | 84 | ||||
-rw-r--r-- | package/multimedia/libmms/libmms.mk | 4 | ||||
-rw-r--r-- | package/multimedia/speex/speex.mk | 20 | ||||
-rw-r--r-- | package/multimedia/taglib/taglib.mk | 10 | ||||
-rw-r--r-- | package/multimedia/tremor/tremor.mk | 12 |
7 files changed, 109 insertions, 35 deletions
diff --git a/package/multimedia/alsa-lib/alsa-lib.mk b/package/multimedia/alsa-lib/alsa-lib.mk index 6e4c5754f..5447b6c1c 100644 --- a/package/multimedia/alsa-lib/alsa-lib.mk +++ b/package/multimedia/alsa-lib/alsa-lib.mk @@ -44,8 +44,6 @@ ALSA_LIB_CONF_OPT += --disable-old-symbols endif ifeq ($(BR2_ENABLE_DEBUG),y) -# install-exec doesn't install the config files -ALSA_LIB_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install ALSA_LIB_CONF_OPT += --enable-debug endif @@ -72,15 +70,16 @@ ALSA_LIB_CONF_ENV = CFLAGS="$(ALSA_LIB_CFLAGS)" \ # the above doesn't work with shared config.cache ALSA_LIB_USE_CONFIG_CACHE = NO -$(eval $(call AUTOTARGETS,package/multimedia,alsa-lib)) - -$(ALSA_LIB_TARGET_UNINSTALL): +define ALSA_LIB_UNINSTALL_TARGET_CMDS -rm -f $(TARGET_DIR)/usr/lib/libasound.so* -rm -rf $(TARGET_DIR)/usr/lib/alsa-lib -rm -rf $(TARGET_DIR)/usr/share/alsa +endef -$(ALSA_LIB_TARGET_CLEAN): +define ALSA_LIB_UNINSTALL_STAGING_CMDS -rm -f $(STAGING_DIR)/usr/lib/libasound.* -rm -rf $(STAGING_DIR)/usr/lib/alsa-lib -rm -rf $(STAGING_DIR)/usr/share/alsa +endef +$(eval $(call AUTOTARGETS,package/multimedia,alsa-lib)) diff --git a/package/multimedia/ffmpeg/ffmpeg.mk b/package/multimedia/ffmpeg/ffmpeg.mk index aac39c15b..4e6924c3d 100644 --- a/package/multimedia/ffmpeg/ffmpeg.mk +++ b/package/multimedia/ffmpeg/ffmpeg.mk @@ -134,7 +134,4 @@ define FFMPEG_CONFIGURE_CMDS ) endef -# Override FFMPEG_INSTALL_TARGET_OPT: FFmpeg does not support install-strip -FFMPEG_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install - $(eval $(call AUTOTARGETS,package/multimedia,ffmpeg)) diff --git a/package/multimedia/libmms/libmms-prevent-unaligned-dereferences.patch b/package/multimedia/libmms/libmms-prevent-unaligned-dereferences.patch new file mode 100644 index 000000000..9c606eb29 --- /dev/null +++ b/package/multimedia/libmms/libmms-prevent-unaligned-dereferences.patch @@ -0,0 +1,84 @@ +From 4fd16633a8c379971425f7fd482152f163b09158 Mon Sep 17 00:00:00 2001 +From: Paul Burton <Paul.Burton@imgtec.com> +Date: Fri, 17 Sep 2010 14:08:57 +0100 +Subject: [PATCH] Endianness macros should not dereference unaligned pointers + +The LE_*/BE_* macros previously worked by casting the pointer passed to them to a pointer to the correct integer type, then dereferencing it. This will not work on architectures which don't allow unaligned data access. Instead, access one byte at a time and shift to form the value. +--- + src/bswap.h | 59 +++++++++++++++++++++++++++++++++++++++++++---------------- + 1 files changed, 43 insertions(+), 16 deletions(-) + +diff --git a/src/bswap.h b/src/bswap.h +index b731da7..59e8716 100644 +--- a/src/bswap.h ++++ b/src/bswap.h +@@ -21,23 +21,50 @@ + */ + + +-/* Go cheap now, will rip out glib later. *Sigh* */ +-#include <glib.h> +- +-/* NOTE: +- * Now, to clear up confusion: LE_XX means "from LE to native, XX bits wide" +- * I know it's not very clear naming (tell me about it, I +- * misinterpreted in first version and caused bad nasty bug, *sigh*), +- * but that's inherited code, will clean up as things go +- * Oh, and one more thing -- they take *pointers*, not actual ints +- */ ++#include <stdint.h> ++ ++#define SWAP_ENDIAN_16(val) \ ++ (val[1] | (val[0] << 8)) ++#define SWAP_ENDIAN_32(val) \ ++ (val[3] | (val[2] << 8) | (val[1] << 16) | (val[0] << 24)) ++#define SWAP_ENDIAN_64(val) \ ++ (val[7] | (val[6] << 8) | (val[5] << 16) | (val[4] << 24) | \ ++ ((uint64_t)val[3] << 32) | ((uint64_t)val[2] << 40) | \ ++ ((uint64_t)val[1] << 48) | ((uint64_t)val[0] << 56)) ++ ++#define SAME_ENDIAN_16(val) \ ++ (val[0] | (val[1] << 8)) ++#define SAME_ENDIAN_32(val) \ ++ (val[0] | (val[1] << 8) | (val[2] << 16) | (val[3] << 24)) ++#define SAME_ENDIAN_64(val) \ ++ (val[0] | (val[1] << 8) | (val[2] << 16) | (val[3] << 24) | \ ++ ((uint64_t)val[4] << 32) | ((uint64_t)val[5] << 40) | \ ++ ((uint64_t)val[6] << 48) | ((uint64_t)val[7] << 56)) ++ ++#ifndef WORDS_BIGENDIAN ++ ++/* Little endian */ ++ ++#define LE_16(val) SAME_ENDIAN_16(((uint8_t *)(val))) ++#define LE_32(val) SAME_ENDIAN_32(((uint8_t *)(val))) ++#define LE_64(val) SAME_ENDIAN_64(((uint8_t *)(val))) ++#define BE_16(val) SWAP_ENDIAN_16(((uint8_t *)(val))) ++#define BE_32(val) SWAP_ENDIAN_32(((uint8_t *)(val))) ++#define BE_64(val) SWAP_ENDIAN_64(((uint8_t *)(val))) ++ ++#elif WORDS_BIGENDIAN == 1 ++ ++/* Big endian */ + +-#define LE_16(val) (GINT16_FROM_LE (*((u_int16_t*)(val)))) +-#define BE_16(val) (GINT16_FROM_BE (*((u_int16_t*)(val)))) +-#define LE_32(val) (GINT32_FROM_LE (*((u_int32_t*)(val)))) +-#define BE_32(val) (GINT32_FROM_BE (*((u_int32_t*)(val)))) ++#define LE_16(val) SWAP_ENDIAN_16(((uint8_t *)(val))) ++#define LE_32(val) SWAP_ENDIAN_32(((uint8_t *)(val))) ++#define LE_64(val) SWAP_ENDIAN_64(((uint8_t *)(val))) ++#define BE_16(val) SAME_ENDIAN_16(((uint8_t *)(val))) ++#define BE_32(val) SAME_ENDIAN_32(((uint8_t *)(val))) ++#define BE_64(val) SAME_ENDIAN_64(((uint8_t *)(val))) + +-#define LE_64(val) (GINT64_FROM_LE (*((u_int64_t*)(val)))) +-#define BE_64(val) (GINT64_FROM_BE (*((u_int64_t*)(val)))) ++#else ++#error Unknown endianness! ++#endif + + #endif /* BSWAP_H_INCLUDED */ +-- +1.7.2.2 + diff --git a/package/multimedia/libmms/libmms.mk b/package/multimedia/libmms/libmms.mk index 489bf0de2..a8f4527fd 100644 --- a/package/multimedia/libmms/libmms.mk +++ b/package/multimedia/libmms/libmms.mk @@ -3,9 +3,9 @@ # libmms # ############################################################# -LIBMMS_VERSION = 0.4 +LIBMMS_VERSION = 0.6 LIBMMS_SOURCE = libmms-$(LIBMMS_VERSION).tar.gz -LIBMMS_SITE = http://launchpad.net/libmms/trunk/$(LIBMMS_VERSION)/+download +LIBMMS_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/libmms LIBMMS_AUTORECONF = NO LIBMMS_LIBTOOL_PATCH = NO diff --git a/package/multimedia/speex/speex.mk b/package/multimedia/speex/speex.mk index e246b2491..7de3b3830 100644 --- a/package/multimedia/speex/speex.mk +++ b/package/multimedia/speex/speex.mk @@ -12,7 +12,7 @@ SPEEX_INSTALL_TARGET = YES SPEEX_DEPENDENCIES = libogg SPEEX_CONF_OPT = --with-ogg-libraries=$(STAGING_DIR)/usr/lib \ --with-ogg-includes=$(STAGING_DIR)/usr/include \ - --enable-fixed-point + --enable-fixed-point ifeq ($(BR2_PACKAGE_SPEEX_ARM4),y) SPEEX_CONF_OPT += --enable-arm4-asm @@ -22,15 +22,15 @@ ifeq ($(BR2_PACKAGE_SPEEX_ARM5E),y) SPEEX_CONF_OPT += --enable-arm5e-asm endif -$(eval $(call AUTOTARGETS,package/multimedia,speex)) +define SPEEX_LIBTOOL_FIXUP + $(SED) 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' $(@D)/libtool + $(SED) 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $(@D)/libtool +endef + +SPEEX_POST_CONFIGURE_HOOKS += SPEEX_LIBTOOL_FIXUP -$(SPEEX_TARGET_BUILD): $(SPEEX_TARGET_CONFIGURE) - $(call MESSAGE,"Building") - $(SED) 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' $(SPEEX_DIR)/libtool - $(SED) 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $(SPEEX_DIR)/libtool +define SPEEX_BUILD_CMDS $($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_MAKE_OPT) -C $(@D)/$($(PKG)_SUBDIR) - $(Q)touch $@ +endef -$(SPEEX_HOOK_POST_INSTALL): $(SPEEX_TARGET_INSTALL_TARGET) - rm -rf $(TARGET_DIR)/usr/share/doc/speex - touch $@ +$(eval $(call AUTOTARGETS,package/multimedia,speex)) diff --git a/package/multimedia/taglib/taglib.mk b/package/multimedia/taglib/taglib.mk index 2620b971a..e5433a42b 100644 --- a/package/multimedia/taglib/taglib.mk +++ b/package/multimedia/taglib/taglib.mk @@ -16,10 +16,12 @@ TAGLIB_CONF_ENV = \ TAGLIB_CONF_OPT = --disable-libsuffix --program-prefix='' -$(eval $(call AUTOTARGETS,package/multimedia,taglib)) +define TAGLIB_REMOVE_DEVFILE + rm -f $(TARGET_DIR)/usr/bin/taglib-config +endef ifneq ($(BR2_HAVE_DEVFILES),y) -$(TAGLIB_HOOK_POST_INSTALL): - rm -f $(TARGET_DIR)/usr/bin/taglib-config - touch $@ +TAGLIB_POST_INSTALL_TARGET_HOOKS += TAGLIB_REMOVE_DEVFILE endif + +$(eval $(call AUTOTARGETS,package/multimedia,taglib)) diff --git a/package/multimedia/tremor/tremor.mk b/package/multimedia/tremor/tremor.mk index 74fd725ff..654a403ee 100644 --- a/package/multimedia/tremor/tremor.mk +++ b/package/multimedia/tremor/tremor.mk @@ -5,19 +5,11 @@ ############################################################ TREMOR_SITE:=http://svn.xiph.org/trunk/Tremor/ +TREMOR_SITE_METHOD:=svn TREMOR_VERSION:=16259 -TREMOR_SVNDIR = Tremor-svn-r$(TREMOR_VERSION) -TREMOR_SOURCE:= $(TREMOR_SVNDIR).tar.bz2 + TREMOR_AUTORECONF = YES TREMOR_INSTALL_STAGING = YES TREMOR_INSTALL_TARGET = YES -$(DL_DIR)/$(TREMOR_SOURCE): - $(SVN_CO) -r $(TREMOR_VERSION) $(TREMOR_SITE) $(BUILD_DIR)/$(TREMOR_SVNDIR) - tar -cv -C $(BUILD_DIR) $(TREMOR_SVNDIR) | bzip2 - -c > $@ - rm -rf $(BUILD_DIR)/$(TREMOR_SVNDIR) - -# use custom download step -TREMOR_TARGET_SOURCE := $(DL_DIR)/$(TREMOR_SOURCE) - $(eval $(call AUTOTARGETS,package/multimedia,tremor)) |