Browse Source

Merge pull request #103 from thess/mpd-pull

Add MPD and related dependencies and services (re-submit)
lilik-openwrt-22.03
sbyx 11 years ago
parent
commit
d3b3a02fc0
42 changed files with 3271 additions and 0 deletions
  1. +313
    -0
      libs/avahi/Makefile
  2. +28
    -0
      libs/avahi/files/avahi-daemon.conf
  3. +23
    -0
      libs/avahi/files/avahi-daemon.init
  4. +10
    -0
      libs/avahi/files/service-http
  5. +9
    -0
      libs/avahi/files/service-ssh
  6. +80
    -0
      libs/avahi/patches/010-step_back_autotools-no-gettext.patch
  7. +12
    -0
      libs/faad2/Config.in
  8. +114
    -0
      libs/faad2/Makefile
  9. +77
    -0
      libs/flac/Makefile
  10. +73
    -0
      libs/flac/patches/001-no-docs-and-examples.patch
  11. +24
    -0
      libs/flac/patches/002-no-utility.patch
  12. +11
    -0
      libs/flac/patches/010-automake-compat.patch
  13. +62
    -0
      libs/flac/patches/020-libFLAC-remove-altivec-options.patch
  14. +47
    -0
      libs/intltool/Makefile
  15. +71
    -0
      libs/libaudiofile/Makefile
  16. +71
    -0
      libs/libdaemon/Makefile
  17. +30
    -0
      libs/libdaemon/patches/001-daemon_set_verbosity.patch
  18. +65
    -0
      libs/libid3tag/Makefile
  19. +79
    -0
      libs/libmad/Makefile
  20. +70
    -0
      libs/libmad/patches/001-mips_removal_h_constraint.patch
  21. +68
    -0
      libs/libmms/Makefile
  22. +67
    -0
      libs/libmpdclient/Makefile
  23. +59
    -0
      libs/libogg/Makefile
  24. +76
    -0
      libs/libupnp/Makefile
  25. +65
    -0
      libs/libvorbis/Makefile
  26. +57
    -0
      libs/libvorbisidec/Makefile
  27. +371
    -0
      multimedia/ffmpeg/Config.in
  28. +575
    -0
      multimedia/ffmpeg/Makefile
  29. +57
    -0
      multimedia/shairport/Makefile
  30. +18
    -0
      multimedia/shairport/files/shairport.config
  31. +91
    -0
      multimedia/shairport/files/shairport.init
  32. +12
    -0
      multimedia/shairport/patches/001-disable_pulseaudio.patch
  33. +56
    -0
      sound/mpc/Makefile
  34. +5
    -0
      sound/mpc/files/pls-handler.sh
  35. +209
    -0
      sound/mpd/Makefile
  36. +28
    -0
      sound/mpd/files/mpd.init
  37. +9
    -0
      sound/mpd/files/mpd.service
  38. +23
    -0
      sound/mpd/patches/100-compile-fixes.patch
  39. +16
    -0
      sound/mpd/patches/200-allow-float-samples-ffmpeg.patch
  40. +24
    -0
      sound/mpd/patches/210-support_raw_pcm_streams.patch
  41. +93
    -0
      utils/alsa-utils/Makefile
  42. +23
    -0
      utils/alsa-utils/patches/100-uClibc-compat.patch

+ 313
- 0
libs/avahi/Makefile View File

@ -0,0 +1,313 @@
#
# Copyright (C) 2007-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
ifeq ($(BUILD_VARIANT),dbus)
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)/dbus/$(PKG_NAME)-$(PKG_VERSION)
PKG_ALT_DIR=$(BUILD_DIR)/$(PKG_NAME)/nodbus/$(PKG_NAME)-$(PKG_VERSION)
else
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)/nodbus/$(PKG_NAME)-$(PKG_VERSION)
PKG_ALT_DIR=$(BUILD_DIR)/$(PKG_NAME)/dbus/$(PKG_NAME)-$(PKG_VERSION)
endif
PKG_NAME:=avahi
PKG_VERSION:=0.6.31
PKG_RELEASE:=6
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://avahi.org/download/
PKG_MD5SUM:=2f22745b8f7368ad5a0a3fddac343f2d
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host libpthread dbus
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
define Package/avahi/Default
SECTION:=net
CATEGORY:=Network
TITLE:=An mDNS/DNS-SD implementation
URL:=http://www.avahi.org/
endef
define Package/avahi/Default/description
Avahi is an mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf)
implementation (library). It facilitates
service discovery on a local network -- this means that
you can plug your laptop or computer into a network and
instantly be able to view other people who you can chat with,
find printers to print to or find files being shared.
This kind of technology is already found in MacOS X
(branded 'Rendezvous', 'Bonjour' and sometimes 'ZeroConf')
and is very convenient.
endef
define Package/libavahi
$(call Package/avahi/Default)
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+libpthread +SSP_SUPPORT:libssp
TITLE+= (library)
endef
define Package/libavahi/description
$(call Package/avahi/Default/description)
.
The libavahi package contains the mDNS/DNS-SD shared libraries,
used by other programs. Specifically, it provides
libavahi-core and libavahi-common libraries.
By default, it is built without D-Bus support,
i.e. the --disable-dbus configuration flag is set.
To enable D-Bus support, select the package
libavahi-dbus-support.
endef
define Package/avahi-autoipd
$(call Package/avahi/Default)
SUBMENU:=IP Addresses and Names
DEPENDS:=+libdaemon
TITLE:=IPv4LL network address configuration daemon
endef
define Package/avahi-autoipd/description
$(call Package/avahi/Default/description)
.
This package implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local
Addresses" (IETF RFC3927), a protocol for automatic IP address configuration
from the link-local 169.254.0.0/16 range without the need for a central
server. It is primarily intended to be used in ad-hoc networks which lack a
DHCP server.
endef
define Package/avahi-daemon
$(call Package/avahi/Default)
SUBMENU:=IP Addresses and Names
ifeq ($(BUILD_VARIANT),dbus)
DEPENDS:=+libavahi +libexpat +librt +libdaemon +libdbus
else
DEPENDS:=+libavahi +libexpat +librt +libdaemon
endif
TITLE+= (daemon)
endef
define Package/avahi-daemon/description
$(call Package/avahi/Default/description)
.
This package contains an mDNS/DNS-SD daemon.
endef
define Package/avahi-daemon/conffiles
/etc/avahi/avahi-daemon.conf
/etc/avahi/services/http.service
/etc/avahi/services/ssh.service
endef
define Package/avahi-dnsconfd
$(call Package/avahi/Default)
SUBMENU:=IP Addresses and Names
DEPENDS:=+libavahi +libdaemon
TITLE:=A Unicast DNS server from mDNS/DNS-SD configuration daemon
endef
define Package/avahi-dnsconfd/description
$(call Package/avahi/Default/description)
.
This package contains a Unicast DNS server from mDNS/DNS-SD configuration
daemon, which may be used to configure conventional DNS servers using mDNS
in a DHCP-like fashion. Especially useful on IPv6.
endef
define Package/libavahi-dbus-support
$(call Package/avahi/Default)
SECTION:=libs
CATEGORY:=Libraries
VARIANT:=dbus
DEPENDS:=+dbus +libavahi
TITLE+= (D-Bus support)
endef
define Package/libavahi-dbus-support/description
$(call Package/libavahi/description)
.
The libavahi-dbus-support package enables
D-Bus support in avahi, needed to support
the libavahi-client library and avahi-utils.
Selecting this package modifies the build configuration
so that avahi packages are built with support for D-BUS enabled;
it does not generate a separate binary of its own.
It also automatically adds the D-Bus package to the build.
libavahi-dbus-support is selected automatically if you select
libavahi-client or avahi-utils.
endef
define Package/libavahi-client
$(call Package/avahi/Default)
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+libavahi-dbus-support +avahi-daemon
TITLE+= (libavahi-client library)
endef
define Package/libavahi-client/description
$(call Package/avahi/Default/description)
.
This packages adds the libavahi-client library.
It also automatically adds the required
libavahi-dbus-support and the avahi-daemon packages.
For more information please see the avahi documentation.
endef
define Package/avahi-utils
$(call Package/avahi/Default)
SUBMENU:=IP Addresses and Names
DEPENDS:=+libavahi-client +libgdbm
TITLE+= (utilities)
endef
define Package/avahi-utils/description
$(call Package/avahi/Default/description)
.
This packages installs the following avahi utility programs:
avahi-browse, avahi-publish, avahi-resolve, avahi-set-host-name.
It also automatically adds the required libavahi-client package.
For more information please see the avahi documentation.
endef
TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE
CONFIGURE_ARGS+= \
--enable-shared \
--enable-static \
--disable-glib \
--disable-gobject \
--disable-qt3 \
--disable-qt4 \
--disable-gtk \
--disable-gtk3 \
--with-xml=expat \
--disable-dbm \
--enable-gdbm \
--enable-libdaemon \
--disable-python \
--disable-pygtk \
--disable-python-dbus \
--disable-mono \
--disable-monodoc \
--disable-doxygen-doc \
--disable-doxygen-dot \
--disable-doxygen-man \
--disable-doxygen-rtf \
--disable-doxygen-xml \
--disable-doxygen-chm \
--disable-doxygen-chi \
--disable-doxygen-html \
--disable-doxygen-ps \
--disable-doxygen-pdf \
--disable-xmltoman \
--with-distro=none \
--with-avahi-user=nobody \
--with-avahi-group=nogroup \
--with-autoipd-user=nobody \
--with-autoipd-group=nogroup
ifneq ($(CONFIG_SSP_SUPPORT),y)
CONFIGURE_ARGS+= \
--disable-stack-protector
endif
ifeq ($(BUILD_VARIANT),dbus)
CONFIGURE_ARGS += \
--enable-dbus
else
CONFIGURE_ARGS += \
--disable-dbus
endif
CONFIGURE_VARS+= \
CFLAGS="$$$$CFLAGS -DNDEBUG -DDISABLE_SYSTEMD" \
ac_cv_header_sys_capability_h=no \
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
endef
define Package/libavahi-dbus-support/install
$(INSTALL_DIR) $(1)/etc/dbus-1/system.d
$(CP) $(PKG_INSTALL_DIR)/etc/dbus-1/system.d/* $(1)/etc/dbus-1/system.d
endef
define Package/libavahi/install
# The next line removes the ".build" file from the "other" build.
# The effect is that, if the other build is re-selected in the future,
# the build system will be forced to replace all the code in the
# installer packages, removing anything from the current build.
# "Other" means this: if the current build is "dbus", the other is "nodebus",
# and if the current build is "nodbus", the other is "dbus".
$(RM) -f $(PKG_ALT_DIR)/.built
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.so.* $(1)/usr/lib/
endef
define Package/libavahi-client/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-client.so.* $(1)/usr/lib/
endef
define Package/avahi-utils/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
endef
define Package/avahi-autoipd/install
$(INSTALL_DIR) $(1)/etc/avahi
$(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-autoipd.action $(1)/etc/avahi/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-autoipd $(1)/usr/sbin/
endef
define Package/avahi-daemon/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-daemon $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/avahi
$(INSTALL_DATA) ./files/avahi-daemon.conf $(1)/etc/avahi/
$(INSTALL_DIR) $(1)/etc/avahi/services
$(INSTALL_DATA) ./files/service-http $(1)/etc/avahi/services/http.service
$(INSTALL_DATA) ./files/service-ssh $(1)/etc/avahi/services/ssh.service
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/avahi-daemon.init $(1)/etc/init.d/avahi-daemon
endef
define Package/avahi-dnsconfd/install
$(INSTALL_DIR) $(1)/etc/avahi
$(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-dnsconfd.action $(1)/etc/avahi/
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-dnsconfd $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,libavahi-client))
$(eval $(call BuildPackage,avahi-utils))
$(eval $(call BuildPackage,libavahi-dbus-support))
$(eval $(call BuildPackage,libavahi))
$(eval $(call BuildPackage,avahi-autoipd))
$(eval $(call BuildPackage,avahi-daemon))
$(eval $(call BuildPackage,avahi-dnsconfd))

+ 28
- 0
libs/avahi/files/avahi-daemon.conf View File

@ -0,0 +1,28 @@
[server]
#host-name=foo
#domain-name=local
use-ipv4=yes
use-ipv6=no
check-response-ttl=no
use-iff-running=no
[publish]
publish-addresses=yes
publish-hinfo=yes
publish-workstation=no
publish-domain=yes
#publish-dns-servers=192.168.1.1
#publish-resolv-conf-dns-servers=yes
[reflector]
enable-reflector=no
reflect-ipv=no
[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=30
rlimit-stack=4194304
rlimit-nproc=3

+ 23
- 0
libs/avahi/files/avahi-daemon.init View File

@ -0,0 +1,23 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=61
BIN=avahi-daemon
DEFAULT=/etc/default/$BIN
OPTIONS="-D"
RUN_D=/var/run/$BIN
start() {
[ -f $DEFAULT ] && . $DEFAULT
mkdir -p $RUN_D
$BIN $OPTIONS
}
stop() {
$BIN -k
}
reload() {
$BIN -r
}

+ 10
- 0
libs/avahi/files/service-http View File

@ -0,0 +1,10 @@
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Web Server on %h</name>
<service>
<type>_http._tcp</type>
<port>80</port>
<txt-record>path=/</txt-record>
</service>
</service-group>

+ 9
- 0
libs/avahi/files/service-ssh View File

@ -0,0 +1,9 @@
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Secure Shell on %h</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>

+ 80
- 0
libs/avahi/patches/010-step_back_autotools-no-gettext.patch View File

@ -0,0 +1,80 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -75,8 +75,7 @@ SUBDIRS = \
avahi-compat-howl \
avahi-autoipd \
avahi-ui \
- avahi-ui-sharp \
- po
+ avahi-ui-sharp
DX_INPUT = \
$(srcdir)/avahi-common/address.h \
--- a/avahi-python/avahi-discover/Makefile.am
+++ b/avahi-python/avahi-discover/Makefile.am
@@ -38,7 +38,6 @@ if HAVE_GDBM
pythonscripts += \
avahi-discover
desktop_DATA += avahi-discover.desktop
-@INTLTOOL_DESKTOP_RULE@
avahi_discover_PYTHON += __init__.py
endif
@@ -46,7 +45,6 @@ if HAVE_DBM
pythonscripts += \
avahi-discover
desktop_DATA += avahi-discover.desktop
-@INTLTOOL_DESKTOP_RULE@
avahi_discover_PYTHON += __init__.py
endif
--- a/avahi-ui/Makefile.am
+++ b/avahi-ui/Makefile.am
@@ -78,7 +78,6 @@ endif
bin_PROGRAMS = bssh
desktop_DATA += bssh.desktop bvnc.desktop
-@INTLTOOL_DESKTOP_RULE@
bssh_SOURCES = bssh.c
@@ -106,6 +105,4 @@ endif # HAVE_GLIB
endif
endif
-@INTLTOOL_DESKTOP_RULE@
-
CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ AC_INIT([avahi],[0.6.29],[avahi (at) lis
AC_CONFIG_SRCDIR([avahi-core/server.c])
AC_CONFIG_MACRO_DIR([common])
AC_CONFIG_HEADERS([config.h])
-AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
+AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability tar-pax])
AC_SUBST(PACKAGE_URL, [http://avahi.org/])
@@ -43,8 +43,6 @@ AC_SUBST(HOWL_COMPAT_VERSION, [0.9.8])
AC_CANONICAL_HOST
-AM_SILENT_RULES([yes])
-
AC_CHECK_PROG([STOW], [stow], [yes], [no])
AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
@@ -412,12 +410,6 @@ if test "x$have_kqueue" = "xyes" ; then
AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])
fi
-IT_PROG_INTLTOOL([0.35.0])
-GETTEXT_PACKAGE=avahi
-AC_SUBST([GETTEXT_PACKAGE])
-AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
-AM_GLIB_GNU_GETTEXT
-
avahilocaledir='${prefix}/${DATADIRNAME}/locale'
AC_SUBST(avahilocaledir)

+ 12
- 0
libs/faad2/Config.in View File

@ -0,0 +1,12 @@
config FAAD2_ALWAYS_USE_FLOATING_POINT
depends on PACKAGE_libfaad2
bool "Build FAAD2 to use floating-point math even if using soft floats."
default n
help
By default, libfaad2 will be built to use fixed point rather
than floating point math if emulated floating point operations
are being used. (See the CONFIG_SOFT_FLOAT option.) Set this
option if you would like to use floating point math regardless
of whether floating point emulation is in use.
For the best real-time decoding ability, leave this option off.

+ 114
- 0
libs/faad2/Makefile View File

@ -0,0 +1,114 @@
#
# Copyright (C) 2008-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=faad2
PKG_VERSION:=2.7
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/faac
PKG_MD5SUM:=4c332fa23febc0e4648064685a3d4332
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_CONFIG_DEPENDS := \
CONFIG_SOFT_FLOAT \
CONFIG_FAAD2_ALWAYS_USE_FLOATING_POINT
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
TARGET_CFLAGS += $(FPIC)
# Use fixed point math, if we're using soft floats, and the user didn't
# specifically ask to use floats anyways.
ifeq ($(CONFIG_SOFT_FLOAT)-$(CONFIG_FAAD2_ALWAYS_USE_FLOATING_POINT),y-)
TARGET_CFLAGS+= -DFIXED_POINT
FAAD2_CONFIG_OPTS= --without-fp -nfp
endif
define Package/faad2/Default
URL:=http://www.audiocoding.com/faad2.html
TITLE:=Freeware Advanced Audio Decoder
endef
define Package/faad2/Default/description
FAAD2 is the fastest ISO AAC audio decoder available.
FAAD2 correctly decodes all MPEG-4 and MPEG-2 MAIN,
LOW, LTP, LD and ER object type AAC files.
endef
define Package/faad2
$(call Package/faad2/Default)
SECTION:=sound
CATEGORY:=Sound
TITLE+=player
DEPENDS:=+libfaad2
endef
define Package/faad2/description
$(call Package/faad2/Default/description)
This package contains a binary to play AAC or MP4 files.
endef
define Package/libfaad2
$(call Package/faad2/Default)
SECTION:=libs
CATEGORY:=Libraries
TITLE+=library
DEPENDS:=@BUILD_PATENTED
MENU:=1
endef
define Package/libfaad2/config
source "$(SOURCE)/Config.in"
endef
define Package/libfaad2/description
$(call Package/faad2/Default/description)
This package contains the library.
endef
define Build/Configure
# This replacement were do according to many comments on the web because of gcc 3.4.5 version (.6 included).-
# wich doesn't recognices the -iquote parameter to AM_CFLAGS
($(SED) 's,-iquote $$$$(top_srcdir),-I$$$$(top_srcdir),g' $(PKG_BUILD_DIR)/libfaad/Makefile.am; \
$(SED) 's,-iquote $$$$(top_srcdir),-I$$$$(top_srcdir),g' $(PKG_BUILD_DIR)/libfaad/Makefile.in);
(cd $(PKG_BUILD_DIR); rm -rf config.{cache,status}; \
autoreconf -vif \
);
$(call Build/Configure/Default, \
--with-mp4v2 \
$(FAAD2_CONFIG_OPTS) \
--without-xmms \
, \
FAAD2_CPPFLAGS="-fno-builtin-cos -fno-builtin-sin -fno-builtin-log" \
)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfaad.{a,so*} $(1)/usr/lib/
endef
define Package/faad2/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/faad $(1)/usr/bin/
endef
define Package/libfaad2/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfaad.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,faad2))
$(eval $(call BuildPackage,libfaad2))

+ 77
- 0
libs/flac/Makefile View File

@ -0,0 +1,77 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=flac
PKG_VERSION:=1.2.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/flac
PKG_MD5SUM:=
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_INSTALL:=1
PKG_LICENSE:=GFDLv1.2 GPLv2 LGPLv2.1 BSD-3c
PKG_LICENSE_FILES:=README COPYING.FDL COPYING.GPL COPYING.LGPL COPYING.Xiph
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=autogen.sh aclocal.m4
include $(INCLUDE_DIR)/package.mk
define Package/libflac
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Free Lossless Audio Codec library
URL:=http://flac.sourceforge.net/
endef
define Build/Configure
$(call Build/Configure/Default, \
--disable-cpplibs \
--disable-sse \
--disable-3dnow \
--disable-altivec \
--disable-doxgen-docs \
--disable-local-xmms-plugin \
--disable-xmms-plugin \
--disable-ogg \
--disable-oggtest \
--disable-debug \
)
endef
TARGET_CFLAGS += $(FPIC)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) \
$(PKG_INSTALL_DIR)/usr/include/FLAC \
$(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libFLAC.{a,so*,la} \
$(1)/usr/lib/
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \
$(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(1)/usr/share/aclocal/
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/share/aclocal/* \
$(1)/usr/share/aclocal/
endef
define Package/libflac/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libFLAC.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libflac))

+ 73
- 0
libs/flac/patches/001-no-docs-and-examples.patch View File

@ -0,0 +1,73 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,7 +30,7 @@
AUTOMAKE_OPTIONS = foreign 1.7
-SUBDIRS = doc include m4 man src examples test build obj
+SUBDIRS = include m4 src build obj
DISTCLEANFILES = libtool-disable-static
--- a/Makefile.in
+++ b/Makefile.in
@@ -234,7 +234,7 @@ target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign 1.7
-SUBDIRS = doc include m4 man src examples test build obj
+SUBDIRS = include m4 src build obj
DISTCLEANFILES = libtool-disable-static
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,12 +30,6 @@ SUBDIRS = \
metaflac \
monkeys_audio_utilities \
$(XMMS_DIRS) \
- plugin_winamp2 \
- test_grabbag \
- test_libs_common \
- test_libFLAC \
- test_seeking \
- test_streams \
$(CPPLIBS_DIRS)
EXTRA_DIST = \
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -221,7 +221,7 @@ target_alias = @target_alias@
@FLaC__HAS_XMMS_TRUE@XMMS_DIRS = plugin_common plugin_xmms
-@FLaC__WITH_CPPLIBS_TRUE@CPPLIBS_DIRS = libFLAC++ test_libFLAC++
+@FLaC__WITH_CPPLIBS_TRUE@CPPLIBS_DIRS = libFLAC++
SUBDIRS = \
libFLAC \
@@ -230,12 +230,6 @@ SUBDIRS = \
metaflac \
monkeys_audio_utilities \
$(XMMS_DIRS) \
- plugin_winamp2 \
- test_grabbag \
- test_libs_common \
- test_libFLAC \
- test_seeking \
- test_streams \
$(CPPLIBS_DIRS)
@@ -256,9 +250,8 @@ RECURSIVE_TARGETS = info-recursive dvi-r
check-recursive installcheck-recursive
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_SUBDIRS = libFLAC share flac metaflac monkeys_audio_utilities \
- plugin_common plugin_xmms plugin_winamp2 test_grabbag \
- test_libs_common test_libFLAC test_seeking test_streams \
- libFLAC++ test_libFLAC++
+ plugin_common plugin_xmms plugin_winamp2 \
+ libFLAC++
all: all-recursive
.SUFFIXES:

+ 24
- 0
libs/flac/patches/002-no-utility.patch View File

@ -0,0 +1,24 @@
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -26,9 +26,6 @@ endif
SUBDIRS = \
libFLAC \
share \
- flac \
- metaflac \
- monkeys_audio_utilities \
$(XMMS_DIRS) \
$(CPPLIBS_DIRS)
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -226,9 +226,6 @@ target_alias = @target_alias@
SUBDIRS = \
libFLAC \
share \
- flac \
- metaflac \
- monkeys_audio_utilities \
$(XMMS_DIRS) \
$(CPPLIBS_DIRS)

+ 11
- 0
libs/flac/patches/010-automake-compat.patch View File

@ -0,0 +1,11 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -34,6 +34,8 @@ SUBDIRS = include m4 src build obj
DISTCLEANFILES = libtool-disable-static
+ACLOCAL_AMFLAGS = -I m4
+
EXTRA_DIST = \
COPYING.FDL \
COPYING.GPL \

+ 62
- 0
libs/flac/patches/020-libFLAC-remove-altivec-options.patch View File

@ -0,0 +1,62 @@
--- a/src/libFLAC/Makefile.in
+++ b/src/libFLAC/Makefile.in
@@ -66,6 +66,7 @@ NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_triplet = @host@
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@@FLaC__USE_ALTIVEC_TRUE@am__append_1 = -maltivec -mabi=altivec
ACLOCAL = @ACLOCAL@
ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
AMDEP_FALSE = @AMDEP_FALSE@
@@ -234,13 +235,21 @@ target_alias = @target_alias@
lib_LTLIBRARIES = libFLAC.la
@DEBUG_TRUE@DEBUGCFLAGS = -DFLAC__OVERFLOW_DETECT
+# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific
+#@@@ PPC optimizations temporarily disabled
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@CPUCFLAGS = \
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@ $(am__append_1) \
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@ -DFLAC__NO_ASM
+
+# FIXME: The following logic should be part of configure, not of Makefile.am
+
# The -force_cpusubtype_ALL is needed to insert a ppc64 instruction
# into cpu.c with an asm().
#@@@ PPC optimizations temporarily disabled
-@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM
-# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific
-#@@@ PPC optimizations temporarily disabled
-@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_FALSE@CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@CPUCFLAGS = -faltivec \
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ -force_cpusubtype_ALL \
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ -DFLAC__NO_ASM \
+@FLaC__CPU_PPC_TRUE@@FLaC__SYS_DARWIN_TRUE@ $(am__append_1)
AM_CFLAGS = $(DEBUGCFLAGS) $(CPUCFLAGS) @OGG_CFLAGS@
@FLaC__CPU_PPC_TRUE@@FLaC__NO_ASM_FALSE@ARCH_SUBDIRS = ppc
--- a/src/libFLAC/Makefile.am
+++ b/src/libFLAC/Makefile.am
@@ -32,6 +32,9 @@ lib_LTLIBRARIES = libFLAC.la
if DEBUG
DEBUGCFLAGS = -DFLAC__OVERFLOW_DETECT
endif
+
+# FIXME: The following logic should be part of configure, not of Makefile.am
+
if FLaC__CPU_PPC
# The -force_cpusubtype_ALL is needed to insert a ppc64 instruction
# into cpu.c with an asm().
@@ -40,8 +43,12 @@ if FLaC__SYS_DARWIN
CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM
else
# Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific
+CPUCFLAGS =
+if FLaC__USE_ALTIVEC
+CPUCFLAGS += -maltivec -mabi=altivec
+endif
#@@@ PPC optimizations temporarily disabled
-CPUCFLAGS = -maltivec -mabi=altivec -DFLAC__NO_ASM
+CPUCFLAGS += -DFLAC__NO_ASM
endif
endif

+ 47
- 0
libs/intltool/Makefile View File

@ -0,0 +1,47 @@
#
# Copyright (C) 2009-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=intltool
PKG_LIBVER:=0.40
PKG_VERSION:=$(PKG_LIBVER).6
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@GNOME/intltool/$(PKG_LIBVER)
PKG_MD5SUM:=69bc0353323112f42ad4f9cf351bc3e5
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_HOST_ONLY:=1
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
define Package/intltool
SECTION:=libs
CATEGORY:=Libraries
TITLE:=set of tools to centralize translation using GNU gettext
URL:=http://www.freedesktop.org/wiki/Software/intltool
BUILDONLY:=1
endef
define Package/intltool/description
intltool is a set of tools to centralize translation of many different
file formats using GNU gettext-compatible PO files.
endef
define Require/perl-xml-parser
perl -e 'use XML::Parser;'
endef
$(eval $(call Require,perl-xml-parser, \
Please install Perl XML::Parser \
))
$(eval $(call BuildPackage,intltool))
$(eval $(call HostBuild))

+ 71
- 0
libs/libaudiofile/Makefile View File

@ -0,0 +1,71 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=audiofile
PKG_VERSION:=0.3.6
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:= \
http://github.com/downloads/mpruett/audiofile/ \
http://www.68k.org/~michael/audiofile/
PKG_MD5SUM:=2731d79bec0acef3d30d2fc86b0b72fd
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_FIXUP:=autoreconf
PKG_INSTALL=1
include $(INCLUDE_DIR)/package.mk
define Package/libaudiofile
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Audio File library
URL:=http://www.68k.org/~michael/audiofile/
DEPENDS:=+libflac +libstdcpp
endef
define Package/libaudiofile/description
The audiofile library allows the processing of audio data to and from audio
files of many common formats (currently AIFF, AIFF-C, WAVE, NeXT/Sun, BICS,
FLAC, ALAC, and raw data).
endef
CONFIGURE_ARGS+= \
--enable-shared \
--enable-static \
--with-build-cc="$(HOSTCC)" \
TARGET_CFLAGS+= $(FPIC)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) \
$(PKG_INSTALL_DIR)/usr/include/{af_vfs,audiofile,aupvlist}.h \
$(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libaudiofile.{la,a,so*} \
$(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/audiofile.pc \
$(1)/usr/lib/pkgconfig/
endef
define Package/libaudiofile/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libaudiofile.so.* \
$(1)/usr/lib/
endef
$(eval $(call BuildPackage,libaudiofile))

+ 71
- 0
libs/libdaemon/Makefile View File

@ -0,0 +1,71 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libdaemon
PKG_VERSION:=0.14
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://0pointer.de/lennart/projects/libdaemon/
PKG_MD5SUM:=509dc27107c21bcd9fbf2f95f5669563
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libdaemon
SECTION:=libs
CATEGORY:=Libraries
TITLE:=A lightweight C library that eases the writing of UNIX daemons
URL:=http://0pointer.de/lennart/projects/libdaemon/
endef
define Package/libdaemon/description
libdaemon is a lightweight C library that eases the writing of UNIX daemons.
It consists of the following parts:
- A wrapper around fork() which does the correct daemonization procedure of a process
- A wrapper around syslog() for simpler and compatible log output to Syslog or STDERR
- An API for writing PID files
- An API for serializing UNIX signals into a pipe for usage with select() or poll()
- An API for running subprocesses with STDOUT and STDERR redirected to syslog
APIs like these are used in most daemon software available. It is not that
simple to get it done right and code duplication is not a goal.
endef
define Build/Configure
$(call Build/Configure/Default, \
--enable-shared \
--enable-static \
--disable-lynx \
, \
ac_cv_func_setpgrp_void=yes \
)
endef
TARGET_CFLAGS += $(FPIC)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libdaemon $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdaemon.a $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdaemon.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libdaemon.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libdaemon/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libdaemon.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libdaemon))

+ 30
- 0
libs/libdaemon/patches/001-daemon_set_verbosity.patch View File

@ -0,0 +1,30 @@
From 013963ba35e8fe8897211c0acf5ee98f9a871fc1 Mon Sep 17 00:00:00 2001
From: Michael Heimpold <mhei@heimpold.de>
Date: Fri, 10 Jan 2014 19:38:51 +0100
Subject: [PATCH] daemon_set_verbosity: fix erroneous error message
When calling this function with a value other than LOG_DEBUG
the error message was triggered erroneously.
Signed-off-by: Michael Heimpold <mhei@heimpold.de>
---
libdaemon/dlog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libdaemon/dlog.c b/libdaemon/dlog.c
index 1cc0566..cc2b918 100644
--- a/libdaemon/dlog.c
+++ b/libdaemon/dlog.c
@@ -42,7 +42,7 @@ static int daemon_verbosity_level = LOG_INFO;
void daemon_set_verbosity(int verbosity_prio) {
/* Allow using negative verbosity levels to hide _all_ messages */
- if (verbosity_prio > 0 && (verbosity_prio & LOG_PRIMASK) != LOG_PRIMASK)
+ if (verbosity_prio > 0 && (verbosity_prio & LOG_PRIMASK) != verbosity_prio)
daemon_log(LOG_ERR, "The value %d is not a valid priority value", verbosity_prio);
daemon_verbosity_level = verbosity_prio & LOG_PRIMASK;
--
1.7.10.4

+ 65
- 0
libs/libid3tag/Makefile View File

@ -0,0 +1,65 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libid3tag
PKG_VERSION:=0.15.1b
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/mad
PKG_MD5SUM:=e5808ad997ba32c498803822078748c3
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libid3tag
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+zlib
TITLE:=An ID3 tag manipulation library
URL:=http://mad.sourceforge.net/
endef
define Package/libid3tag/description
libid3tag is a library for reading and (eventually) writing ID3 tags, both
ID3v1 and the various versions of ID3v2.
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_VARS += CC="$(TARGET_CC) $(TARGET_CFLAGS)"
define Build/Configure
$(call Build/Configure/Default, \
--enable-shared \
--enable-static \
--disable-debugging \
--disable-profiling \
)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/id3tag.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libid3tag.so* $(1)/usr/lib/
endef
define Package/libid3tag/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libid3tag.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libid3tag))

+ 79
- 0
libs/libmad/Makefile View File

@ -0,0 +1,79 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libmad
PKG_VERSION:=0.15.1b
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/mad \
ftp://ftp.mars.org/pub/mpeg/
PKG_MD5SUM:=1be543bc30c56fb6bea1d7bf6a64e66c
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
FPM:=default
ifeq ($(ARCH),armeb)
FPM:=arm
endif
ifeq ($(ARCH),i386)
FPM:=intel
endif
ifeq ($(ARCH),mipsel)
FPM:=mips
endif
define Package/libmad
SECTION:=libs
CATEGORY:=Libraries
TITLE:=An high-quality MPEG audio decoding library
URL:=http://www.underbit.com/products/mad/
DEPENDS:=@BUILD_PATENTED
endef
define Package/libmad/description
MAD is a high-quality MPEG audio decoder. It currently supports
MPEG-1 and the MPEG-2 extension to lower sampling frequencies,
as well as the de facto MPEG 2.5 format. All three audio layers -
Layer I, Layer II, and Layer III (i.e. MP3) - are fully implemented.
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS+= \
--enable-shared \
--enable-static \
--enable-fpm="$(FPM)" \
--disable-debugging \
--enable-speed \
MAKE_FLAGS+= \
CFLAGS="$(TARGET_CFLAGS)" \
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/mad.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmad.{a,so*} $(1)/usr/lib/
endef
define Package/libmad/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmad.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libmad))

+ 70
- 0
libs/libmad/patches/001-mips_removal_h_constraint.patch View File

@ -0,0 +1,70 @@
diff -ur libmad-0.15.1b-orig/fixed.h libmad-0.15.1b/fixed.h
--- libmad-0.15.1b-orig/fixed.h 2004-02-17 12:32:03.000000000 +1030
+++ libmad-0.15.1b/fixed.h 2009-08-05 10:46:30.000000000 +0930
@@ -299,6 +299,23 @@
# elif defined(FPM_MIPS)
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
+#define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+#define __GNUC_PREREQ(maj, min) 0
+#endif
+
+#if __GNUC_PREREQ(4,4)
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
+# define MAD_F_MLX(hi, lo, x, y) \
+ do { \
+ u64_di_t __ll = (u64_di_t) (x) * (y); \
+ hi = __ll >> 32; \
+ lo = __ll; \
+ } while (0)
+#else
/*
* This MIPS version is fast and accurate; the disposition of the least
* significant bit depends on OPT_ACCURACY via mad_f_scale64().
@@ -328,6 +345,7 @@
: "%r" ((x) >> 12), "r" ((y) >> 16))
# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
# endif
+#endif /* __GNU_PREREQ(4,4) */
# if defined(OPT_SPEED)
# define mad_f_scale64(hi, lo) \
diff -ur libmad-0.15.1b-orig/mad.h libmad-0.15.1b/mad.h
--- libmad-0.15.1b-orig/mad.h 2004-02-17 13:25:44.000000000 +1030
+++ libmad-0.15.1b/mad.h 2009-08-05 10:42:40.000000000 +0930
@@ -344,6 +344,23 @@
# elif defined(FPM_MIPS)
+/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
+#if defined (__GNUC__) && defined (__GNUC_MINOR__)
+#define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+#else
+#define __GNUC_PREREQ(maj, min) 0
+#endif
+
+#if __GNUC_PREREQ(4,4)
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
+# define MAD_F_MLX(hi, lo, x, y) \
+ do { \
+ u64_di_t __ll = (u64_di_t) (x) * (y); \
+ hi = __ll >> 32; \
+ lo = __ll; \
+ } while (0)
+#else
/*
* This MIPS version is fast and accurate; the disposition of the least
* significant bit depends on OPT_ACCURACY via mad_f_scale64().
@@ -373,6 +390,7 @@
: "%r" ((x) >> 12), "r" ((y) >> 16))
# define MAD_F_MLZ(hi, lo) ((mad_fixed_t) (lo))
# endif
+#endif /* __GNU_PREREQ(4,4) */
# if defined(OPT_SPEED)
# define mad_f_scale64(hi, lo) \

+ 68
- 0
libs/libmms/Makefile View File

@ -0,0 +1,68 @@
#
# Copyright (C) 2010-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libmms
PKG_VERSION:=0.6.4
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/libmms
PKG_MD5SUM:=d6b665b335a6360e000976e770da7691
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2.1
PKG_LICENSE_FILES:=COPYING.LIB
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/libmms
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+glib2
TITLE:=MMS stream protocol library
URL:=http://libmms.sourceforge.net
DEPENDS:=$(ICONV_DEPENDS)
endef
define Package/libmms/description
LibMMS is a common library for parsing mms:// and mmsh:// type network streams.
These are commonly used to stream Windows Media Video content over the web.
LibMMS itself is only for receiving MMS stream,
it doesn't handle sending at all.
endef
TARGET_CFLAGS += $(FPIC)
TARGET_LDFLAGS += $(if $(ICONV_FULL),-liconv)
define Build/Configure
(cd $(PKG_BUILD_DIR); ./autogen.sh );
$(call Build/Configure/Default)
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/libmms $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmms.{a,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc \
$(1)/usr/lib/pkgconfig
endef
define Package/libmms/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmms.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libmms))

+ 67
- 0
libs/libmpdclient/Makefile View File

@ -0,0 +1,67 @@
#
# Copyright (C) 2011-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libmpdclient
PKG_VERSION:=2.7
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.musicpd.org/download/libmpdclient/2/
PKG_MD5SUM:=053a97f1b045646d2d01a68fb2ddb5ef
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libmpdclient
TITLE:=libmpdclient
SECTION:=libs
CATEGORY:=Libraries
URL:=http://mpd.wikia.com/wiki/ClientLib:libmpdclient
DEPENDS:=
endef
define Package/libmpdclient/description
A stable, documented, asynchronous API library for interfacing MPD in the C, C++ & Objective C languages.
endef
TARGET_CFLAGS+="-std=gnu99"
#TARGET_LDFLAGS+=-lpthread
define Build/Configure
$(call Build/Configure/Default)
endef
define Build/InstallDev
$(INSTALL_DIR) \
$(1)/usr/include \
$(1)/usr/lib \
$(1)/usr/lib/pkgconfig
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/* \
$(1)/usr/lib/
$(CP) \
$(PKG_INSTALL_DIR)/usr/include/* \
$(1)/usr/include/
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/pkgconfig \
$(1)/usr/lib/
endef
define Package/libmpdclient/install
$(INSTALL_DIR) \
$(1)/usr/lib
$(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libmpdclient.so* \
$(1)/usr/lib/
endef
$(eval $(call BuildPackage,libmpdclient))

+ 59
- 0
libs/libogg/Makefile View File

@ -0,0 +1,59 @@
#
# Copyright (C) 2008-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libogg
PKG_VERSION:=1.3.2
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://downloads.xiph.org/releases/ogg/
PKG_MD5SUM:=5c3a34309d8b98640827e5d0991a4015
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=BSD-3c
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libogg
SECTION:=libs
CATEGORY:=Libraries
TITLE:=libogg
URL:=http://xiph.org/ogg/
endef
define Package/libogg/description
Ogg project codecs use the Ogg bitstream format to arrange the raw,
compressed bitstream into a more robust, useful form. For example,
the Ogg bitstream makes seeking, time stamping and error recovery
possible, as well as mixing several sepearate, concurrent media
streams into a single physical bitstream.
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/ogg/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/ogg/* $(1)/usr/include/ogg/
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(1)/usr/share/aclocal/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal/
endef
define Package/libogg/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libogg))

+ 76
- 0
libs/libupnp/Makefile View File

@ -0,0 +1,76 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libupnp
PKG_VERSION:=1.6.19
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/pupnp
PKG_MD5SUM:=ee16e5d33a3ea7506f38d71facc057dd
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libupnp/Default
SECTION:=libs
CATEGORY:=Libraries
URL:=http://pupnp.sourceforge.net/
endef
define Package/libupnp
$(call Package/libupnp/Default)
DEPENDS:=+libpthread
TITLE:=UPnP SDK library
MENU:=1
endef
define Package/libupnp/description
The portable SDK for UPnP Devices (libupnp) provides developers with an API and
open source code for building control points, devices, and bridges that are
compliant with Version 1.0 of the Universal Plug and Play Device Architecture
Specification.
endef
define Package/libupnp-sample
$(call Package/libupnp/Default)
DEPENDS:=libupnp
TITLE:=UPnP sample applications
endef
define Package/libupnp-sample/description
TVcontrolpoint & tvdevice sample applications run inside /etc/upnp-tvdevice/
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/upnp $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,threadutil,upnp}.{a,so*,la} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libupnp.pc $(1)/usr/lib/pkgconfig/
endef
define Package/libupnp/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{ixml,threadutil,upnp}.so.* $(1)/usr/lib/
endef
define Package/libupnp-sample/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/upnp/sample/.libs/* $(1)/usr/bin
$(INSTALL_DIR) $(1)/etc/upnp-tvdevice/web
$(INSTALL_DATA) $(PKG_BUILD_DIR)/upnp/sample/web/* $(1)/etc/upnp-tvdevice
endef
$(eval $(call BuildPackage,libupnp))
$(eval $(call BuildPackage,libupnp-sample))

+ 65
- 0
libs/libvorbis/Makefile View File

@ -0,0 +1,65 @@
#
# Copyright (C) 2008-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libvorbis
PKG_VERSION:=1.3.4
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://downloads.xiph.org/releases/vorbis/
PKG_MD5SUM:=55f2288055e44754275a17c9a2497391
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=BSD-3c
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libvorbis
SECTION:=libs
CATEGORY:=Libraries
TITLE:=libvorbis
URL:=http://xiph.org/vorbis/
DEPENDS:=+libogg
endef
define Package/libvorbis/description
Vorbis is a general purpose audio and music encoding format
contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond
MPEG audio layer 3. Unlike the MPEG sponsored formats (and other
proprietary formats such as RealAudio G2 and Windows' flavor of the
month), the Vorbis CODEC specification belongs to the public domain.
All the technical details are published and documented, and any
software entity may make full use of the format without license
fee, royalty or patent concerns.
endef
CONFIGURE_ARGS+= \
--disable-oggtest \
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/vorbis/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/vorbis/* $(1)/usr/include/vorbis/
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{so*,a,la} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(1)/usr/share/aclocal/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal/
endef
define Package/libvorbis/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libvorbis))

+ 57
- 0
libs/libvorbisidec/Makefile View File

@ -0,0 +1,57 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libvorbisidec
PKG_VERSION:=1.0.2+svn18153
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
PKG_SOURCE_URL:=http://ftp.de.debian.org/debian/pool/main/libv/libvorbisidec/
PKG_MD5SUM:=4190859414c5d6760e316b5cf00fe7c5
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=BSD-3c
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
define Package/libvorbisidec
SECTION:=libs
CATEGORY:=Libraries
TITLE:=A fixed-point Ogg/Vorbis decoder library
DEPENDS:= +libogg
URL:=http://wiki.xiph.org/index.php/Tremor
endef
define Package/libvorbisidec/description
libvorbisidec is "tremor", a fixed-point implementation of libvorbis.
It also has libogg built-in. It is suitable as a replacement for
libvorbis and libogg in tremor-aware applications.
Tremor is a decoder only.
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += --enable-shared --enable-static
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/tremor $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libvorbisidec.{a,so*} $(1)/usr/lib/
endef
define Package/libvorbisidec/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libvorbisidec.so.* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,libvorbisidec))

+ 371
- 0
multimedia/ffmpeg/Config.in View File

@ -0,0 +1,371 @@
menu "Configuration"
depends on PACKAGE_libffmpeg-custom
config FFMPEG_CUSTOM_PATENTED
bool "Include patented codecs and technologies"
default BUILD_PATENTED
comment "Profiles ---"
config FFMPEG_CUSTOM_FFSERVER_SUPPORT
bool "Include support for ffserver (FFmpeg streaming server)"
select FFMPEG_CUSTOM_MUXER_ffm
select FFMPEG_CUSTOM_DEMUXER_ffm
select FFMPEG_CUSTOM_DEMUXER_rtsp
select FFMPEG_CUSTOM_PROTOCOL_rtp
config FFMPEG_CUSTOM_LIBDLNA_SUPPORT
bool "Include support for libdlna/ushare"
depends on FFMPEG_CUSTOM_PATENTED
select FFMPEG_CUSTOM_DECODER_ac3
select FFMPEG_CUSTOM_DECODER_atrac3
select FFMPEG_CUSTOM_DECODER_h264
select FFMPEG_CUSTOM_DECODER_jpegls
select FFMPEG_CUSTOM_DECODER_mp3
select FFMPEG_CUSTOM_DECODER_mpeg1video
select FFMPEG_CUSTOM_DECODER_mpeg2video
select FFMPEG_CUSTOM_DECODER_mpeg4
select FFMPEG_CUSTOM_DECODER_mpegvideo
select FFMPEG_CUSTOM_DECODER_wmav1
select FFMPEG_CUSTOM_DECODER_wmav2
select FFMPEG_CUSTOM_DECODER_png
select FFMPEG_CUSTOM_DEMUXER_ac3
select FFMPEG_CUSTOM_DEMUXER_h264
select FFMPEG_CUSTOM_DEMUXER_mp3
select FFMPEG_CUSTOM_DEMUXER_mpegvideo
config FFMPEG_CUSTOM_MINIDLNA_SUPPORT
bool "Include support for minidlna"
depends on FFMPEG_CUSTOM_PATENTED
select FFMPEG_CUSTOM_DECODER_aac
select FFMPEG_CUSTOM_DECODER_ac3
select FFMPEG_CUSTOM_DECODER_flac
select FFMPEG_CUSTOM_DECODER_h264
select FFMPEG_CUSTOM_DECODER_jpegls
select FFMPEG_CUSTOM_DECODER_mp3
select FFMPEG_CUSTOM_DECODER_mpeg1video
select FFMPEG_CUSTOM_DECODER_mpeg2video
select FFMPEG_CUSTOM_DECODER_mpeg4
select FFMPEG_CUSTOM_DECODER_mpegvideo
select FFMPEG_CUSTOM_DECODER_wmav1
select FFMPEG_CUSTOM_DECODER_wmav2
select FFMPEG_CUSTOM_DECODER_png
select FFMPEG_CUSTOM_DEMUXER_aac
select FFMPEG_CUSTOM_DEMUXER_ac3
select FFMPEG_CUSTOM_DEMUXER_avi
select FFMPEG_CUSTOM_DEMUXER_flac
select FFMPEG_CUSTOM_DEMUXER_h264
select FFMPEG_CUSTOM_DEMUXER_matroska
select FFMPEG_CUSTOM_DEMUXER_mov
select FFMPEG_CUSTOM_DEMUXER_mp3
select FFMPEG_CUSTOM_DEMUXER_mpegvideo
select FFMPEG_CUSTOM_PROTOCOL_file
comment "Encoders ---"
config FFMPEG_CUSTOM_ENCODER_ac3
bool "AC3"
depends on FFMPEG_CUSTOM_PATENTED
select FFMPEG_CUSTOM_PARSER_ac3
config FFMPEG_CUSTOM_ENCODER_jpegls
bool "JPEG-LS"
config FFMPEG_CUSTOM_ENCODER_mpeg1video
bool "MPEG-1 Video"
config FFMPEG_CUSTOM_ENCODER_mpeg2video
bool "MPEG-2 Video"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_ENCODER_mpeg4
bool "MPEG-4"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_ENCODER_pcm_s16be
bool "PCM signed 16-bit big-endian"
config FFMPEG_CUSTOM_ENCODER_pcm_s16le
bool "PCM signed 16-bit little-endian"
config FFMPEG_CUSTOM_ENCODER_png
bool "PNG"
select FFMPEG_CUSTOM_ENCODER_zlib
config FFMPEG_CUSTOM_ENCODER_vorbis
bool "Vorbis"
config FFMPEG_CUSTOM_ENCODER_zlib
bool "Zlib"
comment "Decoders ---"
config FFMPEG_CUSTOM_DECODER_aac
bool "AAC (Advanced Audio Coding)"
depends on FFMPEG_CUSTOM_PATENTED
select FFMPEG_CUSTOM_PARSER_aac
config FFMPEG_CUSTOM_SELECT_adpcm
bool "ADPCM (multiple types)"
config FFMPEG_CUSTOM_DECODER_ac3
bool "AC3"
depends on FFMPEG_CUSTOM_PATENTED
select FFMPEG_CUSTOM_PARSER_ac3
config FFMPEG_CUSTOM_DECODER_alac
bool "ALAC"
config FFMPEG_CUSTOM_DECODER_amrnb
bool "AMR-NB"
select FFMPEG_CUSTOM_DEMUXER_amr
config FFMPEG_CUSTOM_DECODER_amrwb
bool "AMR-WB"
select FFMPEG_CUSTOM_DEMUXER_amr
config FFMPEG_CUSTOM_DECODER_ape
bool "APE"
config FFMPEG_CUSTOM_DECODER_atrac3
bool "ATRAC3"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_flac
bool "FLAC"
select FFMPEG_CUSTOM_PARSER_flac
config FFMPEG_CUSTOM_DECODER_gif
bool "GIF"
config FFMPEG_CUSTOM_DECODER_h264
bool "H.264"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_jpegls
bool "JPEG-LS"
config FFMPEG_CUSTOM_DECODER_mp2
bool "MP2 (MPEG Audio Layer 2)"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_mp3
bool "MP3 (MPEG Audio Layer 2)"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_mpegvideo
bool "MPEG Video"
config FFMPEG_CUSTOM_DECODER_mpeg1video
bool "MPEG-1 Video"
config FFMPEG_CUSTOM_DECODER_mpeg2video
bool "MPEG-2 Video"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_mpeg4
bool "MPEG-4"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_mpc7
bool "Musepack 7"
select FFMPEG_CUSTOM_DEMUXER_mpc
config FFMPEG_CUSTOM_DECODER_mpc8
bool "Musepack 8"
select FFMPEG_CUSTOM_DEMUXER_mpc8
config FFMPEG_CUSTOM_DECODER_pcm_s16be
bool "PCM signed 16-bit big-endian"
config FFMPEG_CUSTOM_DECODER_pcm_s16le
bool "PCM signed 16-bit little-endian"
config FFMPEG_CUSTOM_DECODER_png
bool "PNG"
select FFMPEG_CUSTOM_DECODER_zlib
config FFMPEG_CUSTOM_SELECT_speex
bool "Speex"
config FFMPEG_CUSTOM_DECODER_vorbis
bool "Vorbis"
config FFMPEG_CUSTOM_DECODER_wavpack
bool "Wavpack"
config FFMPEG_CUSTOM_DECODER_wmav1
bool "WMAv1"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_wmav2
bool "WMAv2"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DECODER_zlib
bool "Zlib"
comment "Muxers ---"
config FFMPEG_CUSTOM_MUXER_ac3
bool "AC3"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_MUXER_ffm
bool "FFM (ffserver live feed)"
config FFMPEG_CUSTOM_MUXER_h264
bool "H.264"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_MUXER_mp3
bool "MP3 (MPEG Audio Layer 3)"
config FFMPEG_CUSTOM_MUXER_mp4
bool "MP4"
config FFMPEG_CUSTOM_MUXER_mpeg1video
bool "MPEG-1 Video"
config FFMPEG_CUSTOM_MUXER_mpeg2video
bool "MPEG-2 Video"
config FFMPEG_CUSTOM_MUXER_mpegts
bool "MPEG-2 (TS)"
config FFMPEG_CUSTOM_MUXER_ogg
bool "Ogg"
config FFMPEG_CUSTOM_MUXER_rtp
bool "RTP"
comment "Demuxers ---"
config FFMPEG_CUSTOM_DEMUXER_aac
bool "AAC"
config FFMPEG_CUSTOM_DEMUXER_avi
bool "AVI (Audio Video Interleave)"
config FFMPEG_CUSTOM_DEMUXER_ac3
bool "AC3"
config FFMPEG_CUSTOM_DEMUXER_amr
bool "AMR"
config FFMPEG_CUSTOM_DEMUXER_ape
bool "APE"
config FFMPEG_CUSTOM_DEMUXER_flac
bool "FLAC"
config FFMPEG_CUSTOM_DEMUXER_ffm
bool "FFM (ffserver live feed)"
config FFMPEG_CUSTOM_DEMUXER_h264
bool "H.264"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_DEMUXER_matroska
bool "Matroska (MKA,MKV)"
select FFMPEG_CUSTOM_DECODER_zlib
config FFMPEG_CUSTOM_DEMUXER_mov
bool "MOV/MP4/M4A/3GP/3G2/MJ2"
select FFMPEG_CUSTOM_DECODER_zlib
config FFMPEG_CUSTOM_DEMUXER_mp3
bool "MP3 (MPEG Audio Layer 3)"
select FFMPEG_CUSTOM_PARSER_mpegaudio
config FFMPEG_CUSTOM_DEMUXER_mpegvideo
bool "MPEG Video"
config FFMPEG_CUSTOM_DEMUXER_mpegps
bool "MPEG-2 (PS)"
config FFMPEG_CUSTOM_DEMUXER_mpegts
bool "MPEG-2 (TS)"
config FFMPEG_CUSTOM_DEMUXER_mpc
bool "Musepack"
config FFMPEG_CUSTOM_DEMUXER_mpc8
bool "Musepack 8"
config FFMPEG_CUSTOM_DEMUXER_ogg
bool "Ogg"
config FFMPEG_CUSTOM_DEMUXER_rm
bool "RM"
help
RealMedia format demuxer
config FFMPEG_CUSTOM_DEMUXER_rtsp
bool "RTSP"
select FFMPEG_CUSTOM_DEMUXER_rm
select FFMPEG_CUSTOM_DEMUXER_sdp
select FFMPEG_CUSTOM_DEMUXER_rtp
config FFMPEG_CUSTOM_DEMUXER_sdp
bool "SDP"
select FFMPEG_CUSTOM_DEMUXER_mpegts
config FFMPEG_CUSTOM_DEMUXER_rtp
bool "RTP"
config FFMPEG_CUSTOM_DEMUXER_wav
bool "WAV"
config FFMPEG_CUSTOM_DEMUXER_wv
bool "WV"
comment "Parsers ---"
config FFMPEG_CUSTOM_PARSER_aac
bool "AAC (Advanced Audio Coding)"
depends on FFMPEG_CUSTOM_PATENTED
config FFMPEG_CUSTOM_PARSER_ac3
bool "AC3"
config FFMPEG_CUSTOM_PARSER_flac
bool "FLAC"
config FFMPEG_CUSTOM_PARSER_h264
bool "H.264"
depends on FFMPEG_CUSTOM_PATENTED
select FFMPEG_CUSTOM_DECODER_h264
config FFMPEG_CUSTOM_PARSER_mpegaudio
bool "MPEG Audio"
config FFMPEG_CUSTOM_PARSER_mpegvideo
bool "MPEG Video"
config FFMPEG_CUSTOM_PARSER_mpeg4video
bool "MPEG-4 Video"
comment "Protocols ---"
config FFMPEG_CUSTOM_PROTOCOL_file
bool "file:"
config FFMPEG_CUSTOM_PROTOCOL_http
bool "http:"
config FFMPEG_CUSTOM_PROTOCOL_pipe
bool "pipe:"
config FFMPEG_CUSTOM_PROTOCOL_rtp
bool "rtp:"
select FFMPEG_CUSTOM_PROTOCOL_udp
config FFMPEG_CUSTOM_PROTOCOL_tcp
bool "tcp:"
config FFMPEG_CUSTOM_PROTOCOL_udp
bool "udp:"
endmenu

+ 575
- 0
multimedia/ffmpeg/Makefile View File

@ -0,0 +1,575 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ffmpeg
PKG_VERSION:=0.11.5
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://ffmpeg.org/releases/
PKG_MD5SUM:=ea25fc252c132141f12988ed5506bfe8
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_LICENSE:=LGPLv2.1+ GPLv2+ LGPLv3
PKG_LICENSE_FILES:=COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1 COPYING.LGPLv3
FFMPEG_CUSTOM_ENCODERS:= \
ac3 \
jpegls \
mpeg1video \
mpeg2video \
mpeg4 \
pcm_s16be \
pcm_s16le \
png \
vorbis \
zlib \
FFMPEG_CUSTOM_DECODERS:= \
aac \
ac3 \
alac \
amrnb \
amrwb \
ape \
atrac3 \
flac \
gif \
h264 \
jpegls \
mp2 \
mp3 \
mpeg1video \
mpeg2video \
mpeg4 \
mpegvideo \
mpc7 \
mpc8 \
pcm_s16be \
pcm_s16le \
png \
vorbis \
wavpack \
wmav1 \
wmav2 \
zlib \
FFMPEG_CUSTOM_MUXERS:= \
ac3 \
ffm \
h264 \
mp3 \
mp4 \
mpeg1video \
mpeg2video \
mpegts \
ogg \
rtp \
FFMPEG_CUSTOM_DEMUXERS:= \
aac \
ac3 \
amr \
ape \
avi \
flac \
ffm \
h264 \
matroska \
mov \
mp3 \
mpegps \
mpegts \
mpegvideo \
mpc \
mpc8 \
ogg \
rm \
rtsp \
rtp \
sdp \
v4l2 \
wav \
wv \
FFMPEG_CUSTOM_PARSERS:= \
aac \
flac \
ac3 \
h264 \
mpegaudio \
mpeg4video \
mpegvideo \
FFMPEG_CUSTOM_PROTOCOLS:= \
file http pipe rtp tcp udp
FFMPEG_MINI_ENCODERS:= \
FFMPEG_MINI_DECODERS:= \
aac \
ac3 \
atrac3 \
flac \
h263 \
h264 \
jpegls \
mp3 \
mpeg1video \
mpeg2video \
mpeg4 \
mpegvideo \
png \
wmav1 \
wmav2 \
FFMPEG_MINI_MUXERS:= \
ffm \
FFMPEG_MINI_DEMUXERS := \
aac \
ac3 \
asf \
avi \
ffm \
flac \
h264 \
matroska \
mov \
mp3 \
mpegts \
mpegvideo \
sdp \
rtsp \
FFMPEG_MINI_PARSERS:= \
ac3 \
flac \
h263 \
h264 \
mpeg4video \
mpegaudio \
FFMPEG_MINI_PROTOCOLS := \
file http rtp tcp udp \
FFMPEG_AUDIO_DECODERS:= \
aac \
aac_latm \
ac3 \
adpcm_* \
alac \
amrnb \
amrwb \
ape \
atrac3 \
flac \
mp2 \
mp3* \
mpc7 \
mpc8 \
pcm_* \
vorbis \
wavpack \
wmav1 \
wmav2 \
wmalossless \
wmapro \
zlib \
FFMPEG_AUDIO_DEMUXERS:= \
aac \
ac3 \
aiff \
amr \
ape \
avi \
flac \
ffm \
matroska \
mp3 \
mov \
mpc \
mpc8 \
mpegts \
ogg \
rm \
rtsp \
rtp \
sdp \
wav \
wv \
FFMPEG_AUDIO_PARSERS:= \
aac \
aac_latm \
flac \
ac3 \
mpegaudio \
FFMPEG_AUDIO_PROTOCOLS:= \
file http rtp tcp udp
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \
$(patsubst %,CONFIG_FFMPEG_CUSTOM_ENCODER_%,$(FFMPEG_CUSTOM_ENCODERS)) \
$(patsubst %,CONFIG_FFMPEG_CUSTOM_DECODER_%,$(FFMPEG_CUSTOM_DECODERS)) \
$(patsubst %,CONFIG_FFMPEG_CUSTOM_MUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \
$(patsubst %,CONFIG_FFMPEG_CUSTOM_DEMUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \
$(patsubst %,CONFIG_FFMPEG_CUSTOM_PARSER_%,$(FFMPEG_CUSTOM_PARSERS)) \
$(patsubst %,CONFIG_FFMPEG_CUSTOM_PROTOCOL_%,$(FFMPEG_CUSTOM_PROTOCOLS))
include $(INCLUDE_DIR)/package.mk
define Package/ffmpeg/Default
TITLE:=FFmpeg
URL:=http://ffmpeg.mplayerhq.hu/
endef
define Package/ffmpeg/Default/description
FFmpeg is a a software package that can record, convert and stream digital
audio and video in numerous formats.
endef
define Package/ffmpeg
$(call Package/ffmpeg/Default)
SECTION:=multimedia
CATEGORY:=Multimedia
TITLE+= program
DEPENDS+= +libpthread +libffmpeg-full
VARIANT:=full
endef
define Package/ffmpeg/description
$(call Package/ffmpeg/Default/description)
.
This package contains the FFmpeg command line tool.
endef
define Package/ffprobe
$(call Package/ffmpeg/Default)
SECTION:=multimedia
CATEGORY:=Multimedia
TITLE+= CLI media identifier
DEPENDS+= +libffmpeg-full
VARIANT:=full
endef
define Package/ffprobe/description
$(call Package/ffmpeg/Default/description)
.
This package contains the FFprobe command line tool.
endef
define Package/ffserver
$(call Package/ffserver/Default)
SECTION:=multimedia
CATEGORY:=Multimedia
TITLE+= streaming server
DEPENDS+= +libpthread +libffmpeg-full
VARIANT:=full
endef
define Package/ffserver/description
$(call Package/ffmpeg/Default/description)
.
This package contains the FFmpeg streaming server.
endef
define Package/libffmpeg/Default
$(call Package/ffmpeg/Default)
SECTION:=libs
CATEGORY:=Libraries
TITLE+= libraries
DEPENDS+= +libpthread +zlib +libbz2
PROVIDES:= libffmpeg
endef
define Package/libffmpeg-custom
$(call Package/libffmpeg/Default)
TITLE+= (mini)
DEPENDS+= @DEVEL +libspeex
VARIANT:=custom
MENU:=1
endef
define Package/libffmpeg-custom/config
source "$(SOURCE)/Config.in"
endef
define Package/libffmpeg-custom/description
$(call Package/ffmpeg/Default/description)
.
This package contains customized FFmpeg shared libraries.
endef
define Package/libffmpeg-audio-dec
$(call Package/libffmpeg/Default)
TITLE+= (audio)
DEPENDS+= @DEVEL +libspeex
VARIANT:=audio-dec
endef
define Package/libffmpeg-audio-dec/description
$(call Package/ffmpeg/Default/description)
.
This package contains FFmpeg shared libraries for audio decoding
endef
define Package/libffmpeg-full
$(call Package/libffmpeg/Default)
TITLE+= (full)
DEPENDS+= @BUILD_PATENTED +alsa-lib
VARIANT:=full
endef
define Package/libffmpeg-full/description
$(call Package/ffmpeg/Default/description)
.
This package contains full-featured FFmpeg shared libraries.
endef
define Package/libffmpeg-mini
$(call Package/libffmpeg/Default)
TITLE+= (mini)
DEPENDS+= @BUILD_PATENTED
VARIANT:=mini
endef
define Package/libffmpeg-mini/description
$(call Package/ffmpeg/Default/description)
.
This package contains minimal-featured FFmpeg shared libraries.
endef
FFMPEG_CONFIGURE:= \
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
./configure \
--enable-cross-compile \
--cross-prefix="$(TARGET_CROSS)" \
--arch="$(ARCH)" \
--target-os=linux \
--prefix="/usr" \
--enable-shared \
--enable-static \
--disable-debug \
--pkg-config="pkg-config" \
\
--enable-gpl \
--enable-version3 \
\
--disable-altivec \
--disable-asm \
--disable-doc \
--disable-dxva2 \
--enable-pthreads \
--disable-optimizations \
--enable-small \
--disable-stripping \
--enable-zlib \
--disable-outdevs
ifeq ($(BUILD_VARIANT),custom)
FFMPEG_ENABLE= \
$(foreach c, $(2), \
$(if $($(3)_$(c)),--enable-$(1)="$(c)") \
)
FFMPEG_CONFIGURE+= \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avfilter \
--disable-postproc \
--disable-swresample \
--disable-swscale \
--disable-everything \
$(call FFMPEG_ENABLE,encoder,$(FFMPEG_CUSTOM_ENCODERS),CONFIG_FFMPEG_CUSTOM_ENCODER) \
$(call FFMPEG_ENABLE,decoder,$(FFMPEG_CUSTOM_DECODERS),CONFIG_FFMPEG_CUSTOM_DECODER) \
$(call FFMPEG_ENABLE,muxer,$(FFMPEG_CUSTOM_MUXERS),CONFIG_FFMPEG_CUSTOM_MUXER) \
$(call FFMPEG_ENABLE,demuxer,$(FFMPEG_CUSTOM_DEMUXERS),CONFIG_FFMPEG_CUSTOM_DEMUXER) \
$(call FFMPEG_ENABLE,parser,$(FFMPEG_CUSTOM_PARSERS),CONFIG_FFMPEG_CUSTOM_PARSER) \
$(call FFMPEG_ENABLE,protocol,$(FFMPEG_CUSTOM_PROTOCOLS),CONFIG_FFMPEG_CUSTOM_PROTOCOL) \
ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_adpcm),y)
FFMPEG_CONFIGURE+= \
--enable-decoder=adpcm_ima_wav \
--enable-decoder=adpcm_ima_qt \
--enable-decoder=adpcm_ms \
endif
ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_speex),y)
FFMPEG_CONFIGURE+= \
--enable-libspeex --enable-decoder=libspeex \
endif
endif
ifeq ($(BUILD_VARIANT),audio-dec)
FFMPEG_ENABLE= \
$(foreach c, $(2), \
--enable-$(1)="$(c)" \
)
FFMPEG_CONFIGURE+= \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avfilter \
--disable-postproc \
--disable-swresample \
--disable-swscale \
--disable-everything \
$(call FFMPEG_ENABLE,decoder,$(FFMPEG_AUDIO_DECODERS)) \
$(call FFMPEG_ENABLE,demuxer,$(FFMPEG_AUDIO_DEMUXERS)) \
$(call FFMPEG_ENABLE,parser,$(FFMPEG_AUDIO_PARSERS)) \
$(call FFMPEG_ENABLE,protocol,$(FFMPEG_AUDIO_PROTOCOLS)) \
--enable-libspeex --enable-decoder=libspeex \
--disable-decoder=pcm_bluray,pcm_dvd \
endif
ifeq ($(BUILD_VARIANT),mini)
FFMPEG_ENABLE= \
$(foreach c, $(2), \
--enable-$(1)="$(c)" \
)
FFMPEG_CONFIGURE+= \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avfilter \
--disable-postproc \
--disable-swresample \
--disable-swscale \
--disable-everything \
$(call FFMPEG_ENABLE,encoder,$(FFMPEG_MINI_ENCODERS)) \
$(call FFMPEG_ENABLE,decoder,$(FFMPEG_MINI_DECODERS)) \
$(call FFMPEG_ENABLE,muxer,$(FFMPEG_MINI_MUXERS)) \
$(call FFMPEG_ENABLE,demuxer,$(FFMPEG_MINI_DEMUXERS)) \
$(call FFMPEG_ENABLE,parser,$(FFMPEG_MINI_PARSERS)) \
$(call FFMPEG_ENABLE,protocol,$(FFMPEG_MINI_PROTOCOLS)) \
endif
ifneq ($(CONFIG_TARGET_x86),)
TARGET_CFLAGS += -fomit-frame-pointer
endif
define Build/Configure
( cd $(PKG_BUILD_DIR); $(FFMPEG_CONFIGURE) )
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" \
all install
endef
define Build/InstallDev/custom
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avformat,avutil} $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avformat,avutil}.{a,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avformat,avutil}.pc $(1)/usr/lib/pkgconfig/
endef
define Build/InstallDev/full
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale} $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale}.{a,so*} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale}.pc $(1)/usr/lib/pkgconfig/
endef
Build/InstallDev/mini = $(Build/InstallDev/custom)
Build/InstallDev/audio-dec = $(Build/InstallDev/custom)
# XXX: attempt at installing "best" dev files available
ifeq ($(BUILD_VARIANT),custom)
# XXX: only install "custom" dev files if -full & -mini are not selected
ifeq ($(CONFIG_PACKAGE_libffmpeg-full)$(CONFIG_PACKAGE_libffmpeg-mini),)
Build/InstallDev = $(Build/InstallDev/custom)
endif
endif
ifeq ($(BUILD_VARIANT),audio-dec)
# XXX: only install "audio-dec" dev files if -full & -mini are not selected
ifeq ($(CONFIG_PACKAGE_libffmpeg-full)$(CONFIG_PACKAGE_libffmpeg-mini),)
Build/InstallDev = $(Build/InstallDev/audio-dec)
endif
endif
ifeq ($(BUILD_VARIANT),full)
# XXX: always install "full" dev files if -full is selected
Build/InstallDev = $(Build/InstallDev/full)
endif
ifeq ($(BUILD_VARIANT),mini)
# XXX: only install "mini" dev files if -full is not selected
ifeq ($(CONFIG_PACKAGE_libffmpeg-full),)
Build/InstallDev = $(Build/InstallDev/mini)
endif
endif
define Package/ffmpeg/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ffmpeg $(1)/usr/bin/
endef
define Package/ffprobe/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ffprobe $(1)/usr/bin/
endef
define Package/ffserver/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ffserver $(1)/usr/bin/
endef
define Package/libffmpeg-custom/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avformat,avutil}.so.* $(1)/usr/lib/
endef
define Package/libffmpeg-full/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale}.so.* $(1)/usr/lib/
endef
Package/libffmpeg-mini/install = $(Package/libffmpeg-custom/install)
Package/libffmpeg-audio-dec/install = $(Package/libffmpeg-custom/install)
$(eval $(call BuildPackage,ffmpeg))
$(eval $(call BuildPackage,ffprobe))
$(eval $(call BuildPackage,ffserver))
$(eval $(call BuildPackage,libffmpeg-custom))
$(eval $(call BuildPackage,libffmpeg-full))
$(eval $(call BuildPackage,libffmpeg-mini))
$(eval $(call BuildPackage,libffmpeg-audio-dec))

+ 57
- 0
multimedia/shairport/Makefile View File

@ -0,0 +1,57 @@
#
# Copyright (C) 2013-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=shairport
PKG_VERSION:=2014-05-08
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://github.com/abrasive/shairport.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=078b21043cdcef6ffad7452db27f036770b23b0c
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
include $(INCLUDE_DIR)/package.mk
define Package/shairport
SECTION:=multimedia
CATEGORY:=Multimedia
DEPENDS:=+libpthread +avahi-utils +libopenssl +libavahi-client +alsa-utils
TITLE:=ShairPort AirPort Express emulator
endef
define Package/shairport/description
This program emulates an AirPort Express for the purpose of streaming
music from iTunes and compatible iPods. It implements a server for the
Apple RAOP protocol.
ShairPort does not support AirPlay v2 (video and photo streaming).
It supports multiple simultaneous streams, if your audio output chain
(as detected by libao) does so.
endef
TARGET_CFLAGS += $(FPIC)
LIBS:=-lm -lcrypto -lpthread -lavahi-common -lavahi-client -lasound
MAKE_FLAGS += \
CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS) $(LIBS)"
define Package/shairport/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/shairport $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) files/shairport.init $(1)/etc/init.d/shairport
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) files/shairport.config $(1)/etc/config/shairport
endef
$(eval $(call BuildPackage,shairport))

+ 18
- 0
multimedia/shairport/files/shairport.config View File

@ -0,0 +1,18 @@
config shairport main
option bname 'AirPort'
option password ''
option port '5002'
option buffer '256'
option log ''
option cmd_start ''
option cmd_stop ''
option cmd_wait ''
option audio_output 'alsa'
option mdns 'avahi'
# options for alsa output
option output_dev ''
option mixer_dev ''
option mixer_type ''
option mixer_control ''
option mixer_index ''

+ 91
- 0
multimedia/shairport/files/shairport.init View File

@ -0,0 +1,91 @@
#!/bin/sh /etc/rc.common
NAME=shairport
START=94
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
AP_PIDDIR=/var/run
AP_BIN=/usr/bin/shairport
append_arg() {
local cfg="$1"
local var="$2"
local opt="$3"
local def="$4"
local val
config_get val "$cfg" "$var"
[ -n "$val" -o -n "$def" ] && append AP_ARGS "$opt ${val:-$def}"
}
append_bool() {
local cfg="$1"
local var="$2"
local opt="$3"
local def="$4"
local val
config_get_bool val "$cfg" "$var" "$def"
[ "$val" = 1 ] && append AP_ARGS "$opt"
}
start_instance() {
AP_ARGS=""
local cfg="$1"
local ao dev
append_arg "$cfg" bname "-a" "AirPort"
append_arg "$cfg" log "-l"
append_arg "$cfg" initbuf "-b" "256"
append_arg "$cfg" port "-p" "5002"
append_arg "$cfg" password "-k"
append_arg "$cfg" mdns "-m"
append_arg "$cfg" cmd_start "-B"
append_arg "$cfg" cmd_stop "-E"
append_bool "$cfg" cmd_wait "-w"
append_arg "$cfg" audio_output "-o"
config_get ao "$cfg" audio_output ""
if [ "$ao" = "alsa" ]; then
config_get dev "$cfg" output_device ""
if [ -n "$dev" ]; then
append AP_ARGS "--"
append_arg "$cfg" output_device "-d"
append_arg "$cfg" mixer_device "-m"
append_arg "$cfg" mixer_type "-t"
append_arg "$cfg" mixer-control "-c"
append_arg "$cfg" mixer-index "-i"
fi
fi
SERVICE_PID_FILE=${AP_PIDDIR}/${NAME}_${cfg}.pid
service_start $AP_BIN $AP_ARGS
# Check if daemon is running, if not then
# re-execute in foreground to display error.
sleep 1 && service_check $AP_BIN || \
$AP_BIN $AP_ARGS
}
stop_instance()
{
local cfg="$1"
SERVICE_PID_FILE=${AP_PIDDIR}/${NAME}_${cfg}.pid
SERVICE_SIG_STOP="INT"
service_stop $AP_BIN
}
start() {
config_load shairport
config_foreach start_instance shairport
}
stop() {
config_load shairport
config_foreach stop_instance shairport
}

+ 12
- 0
multimedia/shairport/patches/001-disable_pulseaudio.patch View File

@ -0,0 +1,12 @@
--- a/configure
+++ b/configure
@@ -59,7 +59,7 @@ do_pkg_config()
do_pkg_config OpenSSL openssl
-do_pkg_config libao ao CONFIG_AO
-do_pkg_config PulseAudio libpulse-simple CONFIG_PULSE
+#do_pkg_config libao ao CONFIG_AO
+#do_pkg_config PulseAudio libpulse-simple CONFIG_PULSE
do_pkg_config ALSA alsa CONFIG_ALSA
do_pkg_config Avahi\ client avahi-client CONFIG_AVAHI

+ 56
- 0
sound/mpc/Makefile View File

@ -0,0 +1,56 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=mpc
PKG_VERSION:=0.26
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://www.musicpd.org/download/mpc/0
PKG_MD5SUM:=d4f37e7e6b32c804a870192d1eb86199
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
include $(INCLUDE_DIR)/package.mk
define Package/mpc
SECTION:=sound
CATEGORY:=Sound
DEPENDS:=+libmpdclient
TITLE:=Music Player Daemon Console Client
URL:=http://www.musicpd.org/
endef
define Package/mpc/description
MPD is a music player supporting flac, mp3 and ogg files.
It is typically controlled over a network using one of it's many
clients including mpc(console), gmpc(gnome), phpmp(php) etc.
this is MPC
endef
define Build/Configure
$(call Build/Configure/Default, \
--disable-iconv \
)
endef
define Build/Compile
$(call Build/Compile/Default,\
CFLAGS="$(TARGET_CFLAGS) -std=gnu99" \
prefix="/usr" \
all \
)
endef
define Package/mpc/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mpc $(1)/usr/bin/
$(INSTALL_BIN) ./files/pls-handler.sh $(1)/usr/bin/
endef
$(eval $(call BuildPackage,mpc))

+ 5
- 0
sound/mpc/files/pls-handler.sh View File

@ -0,0 +1,5 @@
#!/usr/bin/env sh
echo parameter: file.pls
mpc clear
grep '^File[0-9]*' $1 | sed -e 's/^File[0-9]*=//' | mpc add
mpc play

+ 209
- 0
sound/mpd/Makefile View File

@ -0,0 +1,209 @@
#
# Copyright (C) 2007-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=mpd
PKG_VERSION:=0.17.6
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.17/
PKG_MD5SUM:=0a42ed81ff298c12e22c16be31097e4c
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_CONFIG_DEPENDS:= \
CONFIG_IPV6 \
PKG_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/mpd/Default
SECTION:=sound
CATEGORY:=Sound
TITLE:=Music Player Daemon
URL:=http://www.musicpd.org/
DEPENDS:= +glib2 +libcurl +libpthread $(ICONV_DEPENDS) \
+libflac +BUILD_PATENTED:libmad +libvorbisidec
endef
define Package/mpd/Default/description
Music Player Daemon (MPD) is a flexible, powerful, server-side
application for playing music. It is typically controlled over a
network using one of it's many clients including mpc (console),
gmpc (gnome), phpmp (php), etc...
endef
define Package/mpd-full
$(call Package/mpd/Default)
TITLE+= (full)
DEPENDS+= \
+AUDIO_SUPPORT:alsa-lib \
+libaudiofile +BUILD_PATENTED:libfaad2 +libffmpeg +libid3tag \
+libmms +libogg +libsndfile +libvorbis
PROVIDES:=mpd
VARIANT:=full
endef
define Package/mpd-full/description
$(call Package/mpd/Default/description)
.
This package contains a full-blown Music Player Daemon.
endef
define Package/mpd-full/conffiles
/etc/avahi/services/mpd.service
/etc/mpd.conf
endef
define Package/mpd-mini
$(call Package/mpd/Default)
TITLE+= (mini)
PROVIDES:=mpd
VARIANT:=mini
endef
define Package/mpd-mini/description
$(call Package/mpd/Default/description)
.
This package contains a minimal Music Player Daemon, with support for
only Flac, MP3 & OGG media types & only file: & http: protocols.
endef
define Package/mpd-mini/conffiles
/etc/mpd.conf
endef
CONFIGURE_ARGS += \
$(call autoconf_bool,CONFIG_IPV6,ipv6) \
--disable-debug \
--disable-documentation \
--disable-gprof \
--disable-test \
--disable-werror \
\
--disable-ao \
--disable-bzip2 \
--enable-cue \
--disable-ffado \
--disable-fluidsynth \
--disable-gme \
--enable-inotify \
--disable-iso9660 \
--disable-jack \
--disable-lame-encoder \
--disable-libwrap \
--disable-lsr \
--disable-mikmod \
--disable-modplug \
--disable-mpc \
--disable-mpg123 \
--disable-mvp \
--disable-openal \
--disable-pulse \
--disable-sidplay \
--disable-solaris-output \
--disable-sqlite \
--disable-twolame-encoder \
--enable-wave-encoder \
--disable-wavpack \
--disable-wildmidi \
--disable-zzip \
--with-zeroconf=auto \
\
--enable-curl \
--enable-flac \
--enable-httpd-output \
$(call autoconf_bool,CONFIG_BUILD_PATENTED,mad) \
$(call autoconf_bool,CONFIG_AUDIO_SUPPORT,oss) \
--enable-tcp \
--enable-un \
CONFIGURE_VARS += \
FLAC_CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include/FLAC" \
FLAC_LIBS="$(TARGET_LDFLAGS) -lFLAC" \
$(if $(CONFIG_BUILD_PATENTED),MAD_CFLAGS="$(TARGET_CFLAGS)") \
$(if $(CONFIG_BUILD_PATENTED),MAD_LIBS="$(TARGET_LDFLAGS) -lmad") \
TARGET_CFLAGS += -std=gnu99
TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib $(if $(ICONV_FULL),-liconv)
# use gcc instead of g++ to avoid unnecessary linking against libstdc++
TARGET_CXX:=$(TARGET_CC)
ifeq ($(BUILD_VARIANT),full)
CONFIGURE_ARGS += \
$(call autoconf_bool,CONFIG_BUILD_PATENTED,aac) \
$(call autoconf_bool,CONFIG_AUDIO_SUPPORT,alsa) \
--enable-audiofile \
--enable-fifo \
--enable-ffmpeg \
--enable-id3 \
--enable-lastfm \
--enable-mms \
--enable-oggflac \
--enable-pipe-output \
--enable-recorder-output \
--disable-shout \
--enable-sndfile \
--enable-vorbis \
--disable-vorbis-encoder \
--with-faad="$(STAGING_DIR)/usr" \
--with-tremor=yes \
endif
ifeq ($(BUILD_VARIANT),mini)
# oggflac is not compatible with tremor
CONFIGURE_ARGS += \
--disable-aac \
--disable-alsa \
--disable-audiofile \
--disable-fifo \
--disable-ffmpeg \
--disable-id3 \
--disable-lastfm \
--disable-mms \
--disable-oggflac \
--disable-pipe-output \
--disable-recorder-output \
--disable-shout \
--disable-sndfile \
--disable-vorbis \
--disable-vorbis-encoder \
--with-tremor=yes \
endif
define Package/mpd/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/mpd $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc
$(CP) $(PKG_BUILD_DIR)/doc/mpdconf.example $(1)/etc/mpd.conf
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/mpd.init $(1)/etc/init.d/mpd
endef
define Package/mpd-full/install
$(call Package/mpd/install,$1)
$(INSTALL_DIR) $(1)/etc/avahi/services
$(INSTALL_DATA) ./files/mpd.service $(1)/etc/avahi/services/
endef
define Package/mpd-mini/install
$(call Package/mpd/install,$1)
endef
$(eval $(call BuildPackage,mpd-full))
$(eval $(call BuildPackage,mpd-mini))

+ 28
- 0
sound/mpd/files/mpd.init View File

@ -0,0 +1,28 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2007-2011 OpenWrt.org
START=93
start() {
#create mpd directories
pld=`grep ^playlist_directory /etc/mpd.conf | cut -d "\"" -f 2 | sed "s/~/\/root/g"`
if [ ! -d $pld ]; then
mkdir -m 0755 -p $pld
fi
# Set the initial volume to something manageable
[ -x /usr/bin/amixer ] && /usr/bin/amixer set PCM 40
if [ -x /bin/nice ]; then
# This has real-time constraints, so let's at least tell the OS
# that this should have higher priority to avoid skipping
# when doing other things in the background.
nice -n -10
fi
service_start /usr/bin/mpd
}
stop() {
service_stop /usr/bin/mpd
}

+ 9
- 0
sound/mpd/files/mpd.service View File

@ -0,0 +1,9 @@
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Music Player Daemon on %h</name>
<service>
<type>_mpd._tcp</type>
<port>6600</port>
</service>
</service-group>

+ 23
- 0
sound/mpd/patches/100-compile-fixes.patch View File

@ -0,0 +1,23 @@
--- a/configure
+++ b/configure
@@ -9821,6 +9821,7 @@ fi
# Check whether --with-faad was given.
if test "${with_faad+set}" = set; then :
withval=$with_faad;
+ faad_prefix=$with_faad;
else
faad_prefix=""
fi
--- a/src/input/file_input_plugin.c
+++ b/src/input/file_input_plugin.c
@@ -82,10 +82,6 @@ input_file_open(const char *filename,
return NULL;
}
-#ifdef POSIX_FADV_SEQUENTIAL
- posix_fadvise(fd, (off_t)0, st.st_size, POSIX_FADV_SEQUENTIAL);
-#endif
-
fis = g_new(struct file_input_stream, 1);
input_stream_init(&fis->base, &input_plugin_file, filename,
mutex, cond);

+ 16
- 0
sound/mpd/patches/200-allow-float-samples-ffmpeg.patch View File

@ -0,0 +1,16 @@
--- a/src/decoder/ffmpeg_decoder_plugin.c
+++ b/src/decoder/ffmpeg_decoder_plugin.c
@@ -370,6 +370,13 @@
#endif
return SAMPLE_FORMAT_S32;
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 94, 1)
+ case AV_SAMPLE_FMT_FLT:
+#else
+ case SAMPLE_FMT_FLOAT:
+#endif
+ return SAMPLE_FORMAT_FLOAT;
+
default:
g_warning("Unsupported libavcodec SampleFormat value: %d",
codec_context->sample_fmt);

+ 24
- 0
sound/mpd/patches/210-support_raw_pcm_streams.patch View File

@ -0,0 +1,24 @@
--- a/src/decoder/ffmpeg_decoder_plugin.c
+++ b/src/decoder/ffmpeg_decoder_plugin.c
@@ -387,6 +387,13 @@ ffmpeg_probe(struct decoder *decoder, st
unsigned char *buffer = g_malloc(BUFFER_SIZE);
size_t nbytes = decoder_read(decoder, is, buffer, BUFFER_SIZE);
+
+ if ((nbytes > 0) && (nbytes < 1024))
+ {
+ // Gobble some more data if header is small
+ nbytes += decoder_read(decoder, is, buffer + nbytes, BUFFER_SIZE - nbytes);
+ }
+
if (nbytes <= PADDING ||
!input_stream_lock_seek(is, 0, SEEK_SET, NULL)) {
g_free(buffer);
@@ -683,6 +690,7 @@ static const char *const ffmpeg_mime_typ
"audio/qcelp",
"audio/vorbis",
"audio/vorbis+ogg",
+ "audio/wav",
"audio/x-8svx",
"audio/x-16sv",
"audio/x-aac",

+ 93
- 0
utils/alsa-utils/Makefile View File

@ -0,0 +1,93 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=alsa-utils
PKG_VERSION:=1.0.28
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=ftp://ftp.alsa-project.org/pub/utils/ \
http://alsa.cybermirror.org/utils/
PKG_MD5SUM:=361552d5b1cacd0a1e7ba09e69990211
PKG_INSTALL:=1
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
include $(INCLUDE_DIR)/package.mk
define Package/alsa-utils
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+alsa-lib +libncurses +libpthread
TITLE:=ALSA (Advanced Linux Sound Architecture) utilities
URL:=http://www.alsa-project.org/
endef
define Package/alsa-utils-seq
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+alsa-lib +libpthread
TITLE:=ALSA sequencer utilities
URL:=http://www.alsa-project.org/
endef
define Package/alsa-utils-tests
$(call Package/alsa-utils/Default)
SECTION:=utils
CATEGORY:=Utilities
TITLE:=ALSA utilities test data (adds ~1.3M to image)
DEPENDS:=+alsa-lib +libpthread
endef
define Build/Configure
$(call Build/Configure/Default, \
--disable-rpath \
--disable-alsatest \
--disable-xmlto \
, \
ac_cv_prog_ncurses5_config=no \
ac_cv_prog_ncursesw5_config=no \
)
endef
define Package/alsa-utils/install
$(INSTALL_DIR) $(1)/usr/{s,}bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amixer $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/alsamixer $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aplay $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arecord $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/alsactl $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/share/alsa/init
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/share/alsa/init/* \
$(1)/usr/share/alsa/init/
endef
define Package/alsa-utils-seq/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aconnect $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/amidi $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aplaymidi $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/arecordmidi $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aseqdump $(1)/usr/bin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aseqnet $(1)/usr/bin/
endef
define Package/alsa-utils-tests/install
$(INSTALL_DIR) $(1)/usr/{s,}bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/speaker-test $(1)/usr/bin/
$(INSTALL_DIR) $(1)/usr/share/sounds/alsa
$(INSTALL_DATA) \
$(PKG_INSTALL_DIR)/usr/share/sounds/alsa/* \
$(1)/usr/share/sounds/alsa/
endef
$(eval $(call BuildPackage,alsa-utils))
$(eval $(call BuildPackage,alsa-utils-seq))
$(eval $(call BuildPackage,alsa-utils-tests))

+ 23
- 0
utils/alsa-utils/patches/100-uClibc-compat.patch View File

@ -0,0 +1,23 @@
--- a/alsamixer/volume_mapping.c
+++ b/alsamixer/volume_mapping.c
@@ -114,9 +114,9 @@ static double get_normalized_volume(snd_
if (use_linear_dB_scale(min, max))
return (value - min) / (double)(max - min);
- normalized = exp10((value - max) / 6000.0);
+ normalized = pow(10, (value - max) / 6000.0);
if (min != SND_CTL_TLV_DB_GAIN_MUTE) {
- min_norm = exp10((min - max) / 6000.0);
+ min_norm = pow(10, (min - max) / 6000.0);
normalized = (normalized - min_norm) / (1 - min_norm);
}
@@ -149,7 +149,7 @@ static int set_normalized_volume(snd_mix
}
if (min != SND_CTL_TLV_DB_GAIN_MUTE) {
- min_norm = exp10((min - max) / 6000.0);
+ min_norm = pow(10, (min - max) / 6000.0);
volume = volume * (1 - min_norm) + min_norm;
}
value = lrint_dir(6000.0 * log10(volume), dir) + max;

Loading…
Cancel
Save