Commit 5592d92a authored by conrad's avatar conrad
Browse files

rename 1.0-stable branch to trunk


git-svn-id: http://svn.annodex.net/libfishsound/trunk@3592 8158c8cd-e7e1-0310-9fa4-c5954c97daef
parents 9bb9a4db 0011ef67
Conrad Parker <conrad@metadecks.org>
- Design, implementation.
- Vorbis, Speex support
Tobias Gehrig
- FLAC support
Michel Salim
- libFLAC 1.1.3 support
Silvia Pfeiffer <Silvia.Pfeiffer@CSIRO.AU>
Silvia Pfeiffer <silvia@annodex.net>
- MS Windows porting, general packaging.
Zentaro Kavanagh <ogg@illiminable.com>
- Windows porting and packaging.
......@@ -11,8 +17,9 @@ Zentaro Kavanagh <ogg@illiminable.com>
based on code from:
libvorbis, by Monty <monty@xiph.org> and the rest of
the Xiph.org Foundation.
libvorbis, by Monty <monty@xiph.org>, Xiph.org Foundation.
libspeex, by Jean-Marc Valin <jean-marc.valin@hermes.usherb.ca>,
Xiph.Org Foundation
libspeex, by Jean-Marc Valin <jean-marc.valin@hermes.usherb.ca>
and various contributors.
libFLAC, by Josh Coalson, Xiph.Org Foundation.
2007-01-12 Thomas Vander Stichele <thomas at apestaart dot org>
Sat Jan 12 19:11:09 JST 2008 Conrad Parker <conrad@metadecks.org>
* Makefile.am:
dist m4 macro
* include/fishsound/Makefile.am:
fix include directory when overriding includedir
* Version 0.9.0
2005-06-13 Thomas Vander Stichele <thomas at apestaart dot org>
* Encoding and decoding of the PCM audio and "Vorbiscomment" metadata
packets is supported for FLAC streams in Ogg.
* autogen.sh:
* m4/as-ac-expand.m4:
add m4 dir and use it
add an expand macro
* configure.ac:
uniformize configure's output across the annodex stack
* The documentation and test suite have been updated for FLAC.
Thu Jan 13 17:58:45 EST 2005 Conrad Parker <conrad@metadecks.org>
* The decoder example now handles Ogg files containing multiple
logical bitstreams; it simply extracts the first audio track.
This demonstrates how to decode audio from a video file, or
one track of a multitrack audio file.
* added liboil support from David Schleef <ds@schleef.org>
* Updated shared version info to 4:0:3
Thu Nov 8 15:36:47 JST 2007 Conrad Parker <conrad@metadecks.org>
* Version 0.8.1
* This is a maintenance release, fixing a build error when
libfishsound is configured with encoding disabled. For details, see:
http://trac.annodex.net/log/libfishsound/branches/1.0-stable/
Wed Jun 6 10:06:10 JST 2007 Conrad Parker <conrad@metadecks.org>
* Version 0.8.0
* Improved consistency of frame number reporting: for both Vorbis
and Speex, the frame number is always updated before calling the
user's callbacks for encoding or decoding.
* Added an internal finalizer for encoding the end of Vorbis streams,
to ensure that all input samples are correctly encoded without
requiring programmer intervention.
* Compatibility with SVN trunk, included new API functions:
fish_sound_set_decoded_float;
fish_sound_set_decoded_float_ilv;
fish_sound_encode_float;
fish_sound_encode_float_ilv;
* Added definitions for FISH_SOUND_CONTINUE, STOP_OK, STOP_ERR as
documented in <fishsound/constants.h> (ticket:278)
* Documentation improvements for fish_sound_new() and
fish_sound_decode() functions. (Ralph Giles)
* Updated Win32 build system (Marcin Lubonski)
* Updated shared version info to 3:0:2
Tue Jul 19 23:41:06 EST 2005 Conrad Parker <conrad@metadecks.org>
* Version 0.7.0
* Added typesafe encoding and decoding interfaces. Some existing
interfaces are marked as deprecated, but source and binary
compatibility with previous versions has been maintained.
(Backported from changesets 282, 283, 285, 289, 290, 304)
* Valgrind-clean: Removed memory leaks and other errors exposed by
running the entire suite of unit tests under valgrind.
(Changeset 1398, and Backported changesets:
285:322 src/libfishsound/comments.c
304:323 src/libfishsound/fishsound.c
332:328, 337:515, 568 src/libfishsound/vorbis.c
308, 316, 333:514 src/libfishsound/speex.c
274:516 src/tests/encdec-comments.c
* Added compatibility with and detection of Speex 1.1
(Changeset 1391, and Backported changesets 306, 307)
* Add support for compilation under MinGW (Erik de Castro Lopo)
(Backported changeset 602)
* Various build system improvements (Thomas Vander Stichele)
(Backported changesets 536, 1337, 1355)
* Various minor backports (Backported changesets 294, 300, 301,
302, 303, 341, 511, 518, 532, 535, 568, 607, 666, 1356, 1396)
* Updated shared version info to 2:0:1
Thu Jun 24 18:48:46 EST 2004 Conrad Parker <conrad@metadecks.org>
......@@ -37,10 +102,10 @@ Fri May 21 14:32:41 EST 2004 Conrad Parker <conrad@metadecks.org>
Improved handling of first and last blocks of data (bos and eos
packets in Ogg):
* new fish_sound_prepare_truncation() API call
* improved encdec-audio test to keep track of frames in and out,
and warn if unequal. (Currently not set to FAIL on this condition
as it appears to be common for Speex)
* new fish_sound_prepare_truncation() API call
* improved encdec-audio test to keep track of frames in and out,
and warn if unequal. (Currently not set to FAIL on this condition
as it appears to be common for Speex)
Updates to Win32 nmake build files
......
......@@ -26,7 +26,10 @@
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Process this file with automake to produce Makefile.in
## Process this file with automake to produce Makefile.in
DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror
SUBDIRS = doc include src
......@@ -42,7 +45,11 @@ EXTRA_DIST = fishsound.pc.in README.win32 \
win32/info.dsp \
win32/libfishsound/libfishsound.sln \
win32/libfishsound/libfishsound.vcproj \
m4/as-ac-expand.m4
symbian/bld.inf \
symbian/config.h \
symbian/libfishsound.mmp
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = fishsound.pc
......@@ -8,12 +8,12 @@ FishSound, the sound of fish!
http://www.annodex.net/software/libfishsound/
libfishsound provides a simple programming interface for decoding and
encoding audio data using Xiph.Org codecs (Vorbis and Speex).
encoding audio data using Xiph.Org codecs (FLAC, Speex and Vorbis).
libfishsound by itself is designed to handle raw codec streams from a
lower level layer such as UDP datagrams. When these codecs are used in
files, they are commonly encapsulated in Ogg to produce Ogg Vorbis
and Speex files.
files, they are commonly encapsulated in Ogg to produce Ogg FLAC, Speex
and Ogg Vorbis files.
This source tarball
-------------------
......
#!/bin/sh
# Run this to set up the build system: configure, makefiles, etc.
# (based on the version in enlightenment's cvs)
# autogoat!
# an omnivorous assistant for autotools
#
# (__)
# (oo)
# /------\/
# / | ||
# * /\---/\
# ~~ ~~
package="libfishsound"
# clean function
clean ()
{
# remove autotools cruft
rm -f aclocal.m4 configure config.log
rm -Rf autom4te.cache
# remove old autotools extra cruft
rm -f config.guess config.sub missing mkinstalldirs compile depcomp install-sh
# remove libtool cruft
rm -f ltmain.sh libtool ltconfig
}
#
# option checking
#
if test "x$1" = "xclean"; then
set -x
clean
set +x
exit 0
fi
#
# check automake version number -- we require >= 1.5
#
automake_version="none"
if automake-1.10 --version >/dev/null 2>&1; then
automake_version="-1.10"
elif automake-1.9 --version >/dev/null 2>&1; then
automake_version="-1.9"
elif automake-1.8 --version >/dev/null 2>&1; then
automake_version="-1.8"
elif automake-1.7 --version >/dev/null 2>&1; then
automake_version="-1.7"
elif automake-1.6 --version >/dev/null 2>&1; then
automake_version="-1.6"
elif automake-1.5 --version >/dev/null 2>&1; then
automake_version="-1.5"
elif automake --version > /dev/null 2>&1; then
automake_version=""
case "`automake --version | sed -e '1s/[^0-9]*//' -e q`" in
0|0.*|1|1.[01234]|1.[01234][-.]*) automake_version="none" ;;
1.5*) automake_version="-1.5" ;;
1.6*) automake_version="-1.6" ;;
1.7*) automake_version="-1.7" ;;
1.8*) automake_version="-1.8" ;;
1.9*) automake_version="-1.9" ;;
1.10*) automake_version="-1.10" ;;
esac
fi
if test "x${automake_version}" = "xnone"; then
set +x
echo "you need automake version 1.5 or later"
exit 1
fi
automake_version_major=`echo "$automake_version" | cut -d. -f2`
automake_version_minor=`echo "$automake_version" | cut -d. -f3`
# need at least automake >= 1.5
if test "$automake_version_major" -lt "5"; then
echo "$0"': this project requires automake >= 1.5. Please upgrade your version of automake to at least 1.5'
exit 1
fi
#
# do we need pkg-config?
#
olddir=`pwd`
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
if grep -q PKG_CHECK_MODULES configure.*; then
if ! pkg-config --version > /dev/null 2> /dev/null; then
cat << EOF
pkg-config is required, but it's not installed or can't be found in your
search path.
cd "$srcdir"
DIE=0
EOF
# be nice to the user if they have fink!
if test -d /sw ; then
cat << EOF
You can install it via Fink with the command:
ACLOCAL_FLAGS="-I $srcdir/m4"
apt-get install pkgconfig
EOF
fi
exit 1
fi
fi
#
# autogoat bootstrap process
#
ACLOCAL=${ACLOCAL:-aclocal}
AUTOCONF=${AUTOCONF:-autoconf}
AUTOHEADER=${AUTOHEADER:-autoheader}
AUTOMAKE=${AUTOMAKE:-automake}
# clean out old cruft
clean
# add Fink's /sw path to various search directories
if [ -d /sw ]; then
ACLOCAL="$ACLOCAL -I /sw/share/aclocal"
FINK_DETECTED=1
fi
echo "checking for autoconf... "
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $package."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
eval "$ACLOCAL -I m4"
VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/"
VERSIONMKMAJ="sed -e s/\([0-9][0-9]*\)[^0-9].*/\\1/"
VERSIONMKMIN="sed -e s/.*[0-9][0-9]*\.//"
# do we need libtool?
if grep -q PROG_LIBTOOL configure.*; then
# what's libtoolize called?
if glibtoolize --version > /dev/null 2> /dev/null; then
LIBTOOLIZE="glibtoolize"
elif libtoolize --version > /dev/null 2> /dev/null; then
LIBTOOLIZE="libtoolize"
# do we need automake?
if test -r Makefile.am; then
AM_OPTIONS=`fgrep AUTOMAKE_OPTIONS Makefile.am`
AM_NEEDED=`echo $AM_OPTIONS | $VERSIONGREP`
if test x"$AM_NEEDED" = "x$AM_OPTIONS"; then
AM_NEEDED=""
fi
# check libtool version -- only support 1.4 or 1.5 for now
if "$LIBTOOLIZE" --version | egrep -q '1\.4|1\.5'; then
if grep -q AC_LIBLTDL_CONVENIENCE configure.*; then
"$LIBTOOLIZE" --ltdl --copy --force
if test -z $AM_NEEDED; then
echo -n "checking for automake... "
AUTOMAKE=automake
ACLOCAL=aclocal
if ($AUTOMAKE --version < /dev/null > /dev/null 2>&1); then
echo "yes"
else
"$LIBTOOLIZE" --copy --force
echo "no"
AUTOMAKE=
fi
else
# libtool version is too old :(
echo "$0: need libtool >= 1.4 installed"
exit 1
echo -n "checking for automake $AM_NEEDED or later... "
majneeded=`echo $AM_NEEDED | $VERSIONMKMAJ`
minneeded=`echo $AM_NEEDED | $VERSIONMKMIN`
for am in automake-$AM_NEEDED automake$AM_NEEDED \
automake automake-1.7 automake-1.8 automake-1.9 automake-1.10; do
($am --version < /dev/null > /dev/null 2>&1) || continue
ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP`
maj=`echo $ver | $VERSIONMKMAJ`
min=`echo $ver | $VERSIONMKMIN`
if test $maj -eq $majneeded -a $min -ge $minneeded; then
AUTOMAKE=$am
echo $AUTOMAKE
break
fi
done
test -z $AUTOMAKE && echo "no"
echo -n "checking for aclocal $AM_NEEDED or later... "
for ac in aclocal-$AM_NEEDED aclocal$AM_NEEDED \
aclocal aclocal-1.7 aclocal-1.8 aclocal-1.9 aclocal-1.10; do
($ac --version < /dev/null > /dev/null 2>&1) || continue
ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP`
maj=`echo $ver | $VERSIONMKMAJ`
min=`echo $ver | $VERSIONMKMIN`
if test $maj -eq $majneeded -a $min -ge $minneeded; then
ACLOCAL=$ac
echo $ACLOCAL
break
fi
done
test -z $ACLOCAL && echo "no"
fi
test -z $AUTOMAKE || test -z $ACLOCAL && {
echo
echo "You must have automake installed to compile $package."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
exit 1
}
fi
eval "$AUTOCONF"
grep -q CONFIG_HEADER configure.* && "$AUTOHEADER"
eval "$AUTOMAKE" --add-missing --copy
# Print warning message if Fink detected
if test "$FINK_DETECTED" = 1; then
cat << EOF
Fink detected; added /sw/share/aclocal to aclocal's include directories.
Make sure you have CPPFLAGS, LDFLAGS and PKG_CONFIG_PATH including Fink's
distribution directories, e.g.:
echo -n "checking for libtool... "
for LIBTOOLIZE in libtoolize glibtoolize nope; do
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break
done
if test x$LIBTOOLIZE = xnope; then
echo "nope."
LIBTOOLIZE=libtoolize
else
echo $LIBTOOLIZE
fi
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have libtool installed to compile $package."
echo "Download the appropriate package for your system,"
echo "or get the source from one of the GNU ftp sites"
echo "listed in http://www.gnu.org/order/ftp.html"
DIE=1
}
export CPPFLAGS="-I/sw/include \$CPPFLAGS"
export LDFLAGS="-L/sw/lib \$LDFLAGS"
export PKG_CONFIG_PATH="/sw/lib/pkgconfig:\$PKG_CONFIG_PATH"
./configure
if test "$DIE" -eq 1; then
exit 1
fi
EOF
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
echo "Generating configuration files for $package, please wait...."
echo " $ACLOCAL $ACLOCAL_FLAGS"
$ACLOCAL $ACLOCAL_FLAGS || exit 1
echo " $LIBTOOLIZE --automake"
$LIBTOOLIZE --automake || exit 1
echo " autoheader"
autoheader || exit 1
echo " $AUTOMAKE --add-missing $AUTOMAKE_FLAGS"
$AUTOMAKE --add-missing $AUTOMAKE_FLAGS || exit 1
echo " autoconf"
autoconf || exit 1
cd $olddir
#$srcdir/configure --enable-maintainer-mode "$@" && echo
......@@ -9,18 +9,21 @@
/* Define to build experimental code */
#undef FS_EXPERIMENTAL
/* Do not build code that requires floating point */
#undef FS_FLOAT
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have libFLAC */
#undef HAVE_FLAC
/* Define to 1 if you have libFLAC 1.1.2 */
#undef HAVE_FLAC_1_1_2
/* Define to 1 if you have libFLAC 1.1.3 */
#undef HAVE_FLAC_1_1_3
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have liboil */
#undef HAVE_LIBOIL
/* Define if have libsndfile */
#undef HAVE_LIBSNDFILE1
......@@ -36,12 +39,6 @@
/* Define to 1 if you have libspeex 1.1.x */
#undef HAVE_SPEEX_1_1
/* Define to 1 if speex_free() exists in libspeex */
#undef HAVE_SPEEX_FREE
/* Define to 1 if speex_lib_get_mode() exists in libspeex */
#undef HAVE_SPEEX_LIB_GET_MODE
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
......@@ -87,9 +84,6 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define if libspeex uses SPEEX_DISABLE_GLOBAL_POINTERS API */
#undef SPEEX_DISABLE_GLOBAL_POINTERS
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
......
......@@ -6,10 +6,10 @@ AC_PREREQ(2.53)
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE(libfishsound, 0.7.1.svn)
AM_INIT_AUTOMAKE(libfishsound, 0.9.0)
AM_CONFIG_HEADER(config.h)
SHARED_VERSION_INFO="1:0:0"
SHARED_VERSION_INFO="4:0:3"
SHLIB_VERSION_ARG=""
# Checks for programs.
......@@ -35,8 +35,7 @@ fi
VALGRIND_ENVIRONMENT=""
ac_enable_valgrind=no
AC_ARG_ENABLE(valgrind-testing,
[ --enable-valgrind-testing enable running of tests inside Valgrind ],
[ ac_enable_valgrind=yes ], [ ac_enable_valgrind=no] )
[ --enable-valgrind-testing enable running of tests inside Valgrind ], [ ac_enable_valgrind=yes ], [ ac_enable_valgrind=no] )
if test "x${ac_enable_valgrind}" = xyes ; then
if test "x${enable_shared}" = xyes ; then
......@@ -47,13 +46,13 @@ if test "x${ac_enable_valgrind}" = xyes ; then
if test "x$HAVE_VALGRIND" = xyes ; then
VALGRIND_ENVIRONMENT="$VALGRIND_ENVIRONMENT valgrind -q --leak-check=yes --show-reachable=yes --num-callers=100"
AC_SUBST(VALGRIND_ENVIRONMENT)
TESTS_INFO="'make check' test suite will be run under:
TESTS_INFO="Type 'make check' to run test suite. Tests will be run under:
${VALGRIND_ENVIRONMENT}"
else
TESTS_INFO="'make check' to run test suite (Valgrind not found)"
TESTS_INFO="Type 'make check' to run test suite (Valgrind not found)"
fi
else
TESTS_INFO="'make check' to run test suite (Valgrind testing not enabled)"
TESTS_INFO="Type 'make check' to run test suite (Valgrind testing not enabled)"
fi
dnl Overall configuration success flag
......@@ -61,6 +60,9 @@ fishsound_config_ok=yes
fishsound_examples=""
dnl Optional requirements to report via pkg-config (in fishsound.pc)
fishsound_pkgdeps=""
dnl
dnl Configuration option for building of experimental code.
dnl
......@@ -74,22 +76,6 @@ if test "x${ac_enable_experimental}" = xyes ; then
AC_DEFINE(FS_EXPERIMENTAL, [], [Define to build experimental code])
fi
dnl
dnl Configuration option for floating point support.
dnl
ac_enable_float=yes
AC_ARG_ENABLE(float,
[ --disable-float disable building of floating point code ],
[ ac_enable_float=no ], [ ac_enable_float=yes] )
if test "x${ac_enable_float}" = xyes ; then
AC_DEFINE(FS_FLOAT, [1], [Build code that requires floating point])
else
AC_DEFINE(FS_FLOAT, [0], [Do not build code that requires floating point])
fi
AM_CONDITIONAL(FS_FLOAT, [test "x${ac_enable_float}" = "xyes"])
dnl
dnl Configuration option for building of decoding support.
dnl
......@@ -115,12 +101,6 @@ AC_ARG_ENABLE(encode,
[ --disable-encode disable building of encoding support ],
[ ac_enable_encode=no ], [ ac_enable_encode=yes] )
if test "x${ac_enable_float}" = xno ; then
AC_MSG_WARN([Encoding support disabled:
*** This version of libfishsound does not support integer-only encoding ])
ac_enable_encode=no
fi
if test "x${ac_enable_encode}" = xyes ; then
AC_DEFINE(FS_ENCODE, [1], [Build encoding support])
else
......@@ -145,38 +125,6 @@ if test "x${ac_enable_decode}" = xno && test "x${ac_enable_encode}" = xno ; then
])
fi
dnl
dnl Detect liboil
dnl
HAVE_LIBOIL=no
LIBOIL_SUPPORT=no
ac_enable_liboil=yes
AC_ARG_ENABLE(liboil,
[ --disable-liboil enable use of liboil CPU optimizations],
[ ac_enable_liboil=no ], [ ac_enable_liboil=yes] )
if test "x${ac_enable_liboil}" = xyes ; then
PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.0, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
AC_SUBST(LIBOIL_LIBS)
AC_SUBST(LIBOIL_CFLAGS)
if test "$HAVE_LIBOIL" = "no"; then
AC_DEFINE(HAVE_LIBOIL, [0], [Define to 1 if you have liboil])
LIBOIL_SUPPORT="no"
AC_MSG_WARN([
*** liboil not found, falling back to inline C conversions.
*** liboil provides optimized routines for Altivec, MMX and SSE etc.
*** liboil is available from http://www.schleef.org/liboil/])
else
AC_DEFINE(HAVE_LIBOIL, [1], [Define to 1 if you have liboil])
LIBOIL_SUPPORT="yes"
fi
else
AC_DEFINE(HAVE_LIBOIL, [0], [Define to 1 if you have liboil])
LIBOIL_SUPPORT="disabled"
fi
dnl
dnl Detect vorbis
dnl
......@@ -187,15 +135,9 @@ VORBIS_SUPPORT=no
ac_enable_vorbis=yes
AC_ARG_ENABLE(vorbis,