Commit bec669ca authored by j's avatar j

import "aoTuV" beta5.5

 * based on libvorbis 1.2.0
 * The noise control of the Impulse block was expanded. 
   This is effective with the outstanding sample of the pre-echo.
 * The pre-echo reduction code came to work at a lower bit rate.
 * Noise Normalization was reviewed. As a result, the bug is revised.
 * The detailed tuning was done again.


svn path=/branches/vorbis-aotuv/; revision=14647
parent 6fffd238
libvorbis 1.2.0 (2007-07-25) -- "Xiph.Org libVorbis I 20070622"
* new ov_fopen() convenience call that avoids the common
stdio conflicts with ov_open() and MSVC runtimes.
* libvorbisfile now handles multiplexed streams
* improve robustness to corrupt input streams
* fix a minor encoder bug
* updated RTP draft
* build system updates
* minor corrections to the specification
libvorbis 1.1.2 (2005-11-27) -- "Xiph.Org libVorbis I 20050304"
* fix a serious encoder bug with gcc 4 optimized builds
......
aoTuV - Copyright (c) 2003-2006 Aoyumi
libvorbis - Copyright (c) 2002-2005 Xiph.org Foundation
aoTuV - Copyright (c) 2003-2008 Aoyumi
libvorbis - Copyright (c) 2002-2007 Xiph.org Foundation
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
......
## Process this file with automake to produce Makefile.in
AUTOMAKE_OPTIONS = foreign dist-zip
AUTOMAKE_OPTIONS = 1.6 foreign dist-zip dist-bzip2
SUBDIRS = lib include doc examples vq
......@@ -10,11 +10,8 @@ m4data_DATA = vorbis.m4
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = vorbis.pc vorbisenc.pc vorbisfile.pc
# we include the whole debian/ dir in EXTRA_DIST because there's a problem
# with autotools and HFS+ MacOSX file systems that caused debian/Makefile.am
# to pick up on the lowercase changelog file and add ChangeLog to DIST_COMMON
# because of it, breaking make dist. This works just as well.
EXTRA_DIST = \
CHANGES COPYING \
todo.txt autogen.sh \
libvorbis.spec libvorbis.spec.in \
vorbis.m4 \
......@@ -22,17 +19,20 @@ EXTRA_DIST = \
vorbis-uninstalled.pc.in \
vorbisenc-uninstalled.pc.in \
vorbisfile-uninstalled.pc.in \
debian macos macosx win32
doc examples symbian vq \
macos macosx win32
DISTCHECK_CONFIGURE_FLAGS = --enable-docs
dist-hook:
rm -rf `find $(distdir)/debian -name .svn`
rm -rf `find $(distdir)/debian -name "Makefile*"`
rm -rf `find $(distdir)/macos -name .svn`
rm -rf `find $(distdir)/macosx -name .svn`
rm -rf `find $(distdir)/win32 -name .svn`
for item in $(EXTRA_DIST); do \
if test -d $$item; then \
echo -n "cleaning $$item dir for distribution..."; \
rm -rf `find $(distdir)/$$item -name .svn`; \
echo "OK"; \
fi; \
done
debug:
$(MAKE) all CFLAGS="@DEBUG@"
......
......@@ -5,7 +5,7 @@
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
* *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2004 *
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
* by the Xiph.org Foundation, http://www.xiph.org/ *
* *
********************************************************************
......
aoTuV Beta 5
aoTuV Beta 5.5
"aoTuV" tunes up Xiph.Org's libvorbis uniquely.
A license is taken as "BSD-style license" as well as original libvorbis.
......@@ -14,8 +14,8 @@ A license is taken as "BSD-style license" as well as original libvorbis.
aoTuV based on <Xiph.Org libvorbis>
Copyright (c) 2002-2005 Xiph.Org Foundation
Copyright (c) 2003-2006 Aoyumi
Copyright (c) 2002-2007 Xiph.Org Foundation
Copyright (c) 2003-2008 Aoyumi
AUTHOR : aoyumi <aoyumi@gmail.com>
aoTuV beta5.5 technical information
The differences from the aoTuV beta 5...
1. The frequency domain width of M6 was revised.
2. For q-1/-2, a pre-echo reduction code was applied (M3). In addition,
the M3 code was improved.
3. The floor setup parameters in the low bit-rate was changed.
4. The part including bug of noise normalization was rewritten.
5. libvorbis 1.2.0 were merged. Furthermore, a revision of Bug #300 and
#1229 was applied.
6. The ATH curve of the high frequency area (more than 32kHz) was revised.
...and I tune up many parameters.
2008/03/30
Aoyumi
----------------------------------------------------------------------------
aoTuV beta5 technical information
......@@ -17,7 +44,8 @@ The differences from the aoTuV beta 4.51...
5. In order to decrease artifact by collapse of audio energy, noise
normalization processing of point stereo was extended. [32/44.1/48kHz only]
6. The threshold of channel coupling (lossless <=> point) is changed dynamically. This is a method based on a certain idea. [M6]
6. The threshold of channel coupling (lossless <=> point) is changed
dynamically. This is a method based on a certain idea. [M6]
...and I tune up many parameters.
......
......@@ -20,19 +20,71 @@ echo "checking for autoconf... "
DIE=1
}
echo "checking for automake... "
(automake --version) < /dev/null > /dev/null 2>&1 || {
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 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
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
echo "no"
AUTOMAKE=
fi
else
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 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
}
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
exit 1
}
fi
echo -n "checking for libtool... "
for LIBTOOLIZE in libtoolize glibtoolize nope; do
(type $LIBTOOLIZE) > /dev/null 2>&1 && break
($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 && break
done
if test x$LIBTOOLIZE = xnope; then
echo "nope."
......@@ -60,14 +112,14 @@ fi
echo "Generating configuration files for $package, please wait...."
echo " aclocal $ACLOCAL_FLAGS"
aclocal $ACLOCAL_FLAGS || exit 1
echo " autoheader"
autoheader || exit 1
echo " $ACLOCAL $ACLOCAL_FLAGS"
$ACLOCAL $ACLOCAL_FLAGS || exit 1
echo " $LIBTOOLIZE --automake"
$LIBTOOLIZE --automake || exit 1
echo " automake --add-missing $AUTOMAKE_FLAGS"
automake --add-missing $AUTOMAKE_FLAGS || 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
......
......@@ -11,19 +11,19 @@ AC_CANONICAL_TARGET
AM_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE(libvorbis,1.1.2)
AM_INIT_AUTOMAKE(libvorbis,1.2.0)
AM_MAINTAINER_MODE
dnl Library versioning
V_LIB_CURRENT=3
V_LIB_REVISION=1
V_LIB_AGE=3
VF_LIB_CURRENT=4
VF_LIB_REVISION=1
VF_LIB_AGE=1
V_LIB_CURRENT=4
V_LIB_REVISION=0
V_LIB_AGE=4
VF_LIB_CURRENT=5
VF_LIB_REVISION=0
VF_LIB_AGE=2
VE_LIB_CURRENT=2
VE_LIB_REVISION=2
VE_LIB_REVISION=3
VE_LIB_AGE=0
AC_SUBST(V_LIB_CURRENT)
AC_SUBST(V_LIB_REVISION)
......
......@@ -6,7 +6,8 @@ docdir = $(datadir)/doc/$(PACKAGE)-$(VERSION)
### all of the static docs, commited to SVN and included as is
static_docs = \
draft-kerr-avt-vorbis-rtp-03.txt \
draft-ietf-avt-rtp-vorbis-06.xml \
draft-ietf-avt-rtp-vorbis-06.txt \
eightphase.png \
evenlsp.png \
floor1_inverse_dB_table.html \
......@@ -100,7 +101,7 @@ $(BUILDDIR)/Vorbis_I_spec.xml: $(doc_sources)
@mkdir -p $(BUILDDIR)
@for file in $(doc_sources); do cp $(srcdir)/$$file $(BUILDDIR); done
# translate the draft rtp.txt to .xml in the BUILDDIR
$(BUILDDIR)/draft-rtp.xml: draft-kerr-avt-vorbis-rtp-03.txt
$(BUILDDIR)/draft-rtp.xml: draft-ietf-avt-rtp-vorbis-05.txt
cat $< | sed 's/ //g' > $@
# cat $< | sed 's/ //g' | sed 's/</\&lt;/g' | sed 's/>/\&gt;/g' > $@
......@@ -112,15 +113,13 @@ Vorbis_I_spec.html: $(SPEC_PNG_BUILD) $(BUILDDIR)/Vorbis_I_spec.xml
Vorbis_I_spec.fo: $(BUILDDIR)/Vorbis_I_spec.xml
cd build; xsltproc --xinclude --output $@ spec-fo.xsl Vorbis_I_spec.xml && mv $@ ..
# we add the two newlines to pdfxmltex because on a number of Fedora systems
# tex prompts for input complaining about something;
# and surprisingly there's no way to tell tex to ignore that
# also, --interaction doesn't seem to actually do anything different
# if you change it
# we add the two newlines to pdfxmltex because this entire XML
# toolchain is built from wishful thinking and bonghits and the
# default supplied passivetex config files are buggy.
Vorbis_I_spec.pdf: Vorbis_I_spec.fo $(SPEC_PNG_BUILD) $(SPEC_PDF_BUILD)
cp $< build/spec.fo # work around a passivetex bug
cd build; echo -e -n "\n\n" | pdfxmltex --interaction nonstopmode spec.fo
cd build; echo -e -n "\n\n" | pdfxmltex --interaction nonstopmode spec.fo
-cd build; echo -e -n "\n\n" | pdfxmltex spec.fo
-cd build; echo -e -n "\n\n" | pdfxmltex spec.fo
rm build/spec.fo
mv build/spec.pdf $@
else
......
This diff is collapsed.
No preview for this file type
This diff is collapsed.
This diff is collapsed.
......@@ -77,7 +77,7 @@ li {
<p>The Ogg transport bitstream is designed to provide framing, error
protection and seeking structure for higher-level codec streams that
consist of raw, unencapsulated data packets, such as the Vorbis audio
codec or Tarkin video codec.</p>
codec or Theora video codec.</p>
<h2>Application example: Vorbis</h2>
......@@ -117,8 +117,7 @@ formatting of an Ogg logical bitstream. Combining logical
bitstreams into more complex physical bitstreams is described in the
<a href="oggstream.html">Ogg bitstream overview</a>. The exact
mapping of raw Vorbis packets into a valid Ogg Vorbis physical
bitstream is described in <a href="vorbis-stream.html">Vorbis
bitstream mapping</a>.</p>
bitstream is described in the Vorbis I Specification.</p>
<h2>Bitstream structure</h2>
......@@ -368,10 +367,9 @@ continued over the page. The CRC field is then filled with the
computed value.</p>
<p>(A thorough discussion of CRC algorithms can be found in <a
href="ftp://ftp.rocksoft.com/papers/crc_v3.txt">"A
href="http://www.ross.net/crc/download/crc_v3.txt">"A
Painless Guide to CRC Error Detection Algorithms"</a> by Ross
Williams <a
href="mailto:ross@guest.adelaide.edu.au">ross@guest.adelaide.edu.au</a>.)</p>
Williams <a href="mailto:ross@ross.net">ross@ross.net</a>.)</p>
<pre><tt>
byte value
......
......@@ -84,7 +84,7 @@ li {
<li>Vorbis I specification [<a href="Vorbis_I_spec.html">html</a>]
[<a href="Vorbis_I_spec.pdf">pdf</a>]</li>
<li><a href="v-comment.html">Vorbis comment header specification</a></li>
<li><a href="draft-kerr-avt-vorbis-rtp-03.txt">Embedding Vorbis encoded
<li><a href="draft-ietf-avt-rtp-vorbis-06.txt">Embedding Vorbis encoded
audio in an RTP payload format</a></li>
</ul>
......@@ -107,7 +107,7 @@ audio in an RTP payload format</a></li>
The Xiph Fish Logo is a
trademark (&trade;) of Xiph.Org.<br/>
These pages &copy; 1994 - 2005 Xiph.Org. All rights reserved.
These pages &copy; 1994 - 2006 Xiph.Org. All rights reserved.
</div>
</body>
......
......@@ -211,7 +211,7 @@ This could be a URL, an email address, the physical address of
the producing label.</dd>
<dt>ISRC</dt>
<dd>ISRC number for the track; see <a href="http://www.ifpi.org/site-content/online/isrc_intro.html">the
<dd>ISRC number for the track; see <a href="http://www.ifpi.org/isrc/">the
ISRC intro page</a> for more information on ISRC numbers.</dd>
</dl>
......
......@@ -9,7 +9,7 @@
<table border=0 width=100%>
<tr>
<td><p class=tiny>Vorbisfile documentation</p></td>
<td align=right><p class=tiny>vorbisfile version 1.68 - 20030307</p></td>
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
</tr>
</table>
......@@ -21,28 +21,44 @@
The OggVorbis_File structure defines an Ogg Vorbis file.
<p>
This structure is used in all libvorbisfile routines. Before it can be used,
it must be initialized by <a href="ov_open.html">ov_open()</a> or <a
href="ov_open_callbacks.html">ov_open_callbacks()</a>.
This structure is used in all libvorbisfile routines. Before it can
be used, it must be initialized by <a
href="ov_open.html">ov_open()</a>, <a
href="ov_fopen.html">ov_fopen()</a>, or <a
href="ov_open_callbacks.html">ov_open_callbacks()</a>. <em>Important
Note:</em> The use of <a href="ov_open.html">ov_open()</a> is
discouraged under Windows due to a peculiarity of Windows linking
convention; use <a href="ov_fopen.html">ov_fopen()</a> or <a
href="ov_open_callbacks.html">ov_open_callbacks()</a> instead. This
caution only applies to Windows; use of <a
href="ov_open.html">ov_open()</a> is appropriate for all other
platforms. See the <a href="ov_open.html">ov_open()</a> page for more
information.
<p>
After use, the OggVorbis_File structure must be deallocated with a
call to <a href="ov_clear.html">ov_clear()</a>.
<p>
Once a file or data source is opened successfully by libvorbisfile
(using <a href="ov_open.html">ov_open()</a> or <a
href="ov_open_callbacks.html">ov_open_callbacks()</a>), it is owned by
libvorbisfile. The file should not be used by any other applications or
functions outside of the libvorbisfile API. The file must not be closed
directly by the application at any time after a successful open;
libvorbisfile expects to close the file within <a
href="ov_clear.html">ov_clear()</a>.
<p>
If the call to <a href="ov_open.html">ov_open()</a> or <a
Note that once a file handle is passed to a successful <a
href="ov_open.html">ov_open()</a> call, the handle is owned by
libvorbisfile and will be closed by libvorbisfile later during the
call to <a href="ov_clear.html">ov_clear()</a>. The handle should not
be used or closed outside of the libvorbisfile API. Similarly, files
opened by <a href="ov_fopen.html">ov_fopen()</a> will also be closed
internally by vorbisfile in <a href="ov_clear.html">ov_clear()</a>.<p>
<a href="ov_open_callbacks.html">ov_open_callbacks()</a> allows the
application to choose whether libvorbisfile will or will not close the
handle in <a href="ov_clear.html">ov_clear()</a>; see the <a
href="ov_open_callbacks.html">ov_open_callbacks()</a> page for more information.<p>
If a call to <a href="ov_open.html">ov_open()</a> or <a
href="ov_open_callbacks.html">ov_open_callbacks()</a> <b>fails</b>,
libvorbisfile does <b>not</b> assume ownership of the file and the
application is expected to close it if necessary.
libvorbisfile does <b>not</b> assume ownership of the handle and the
application is expected to close it if necessary. A failed <a
href="ov_fopen.html">ov_fopen()</a> call will internally close the
file handle if the open process fails.<p>
<br><br>
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
......@@ -108,11 +124,11 @@ application.</dd>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2003 Xiph.org</p></td>
<td><p class=tiny>copyright &copy; 2007 Xiph.org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>Vorbisfile documentation</p></td>
<td align=right><p class=tiny>vorbisfile version 1.68 - 20030307</p></td>
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
</tr>
</table>
......
......@@ -9,7 +9,7 @@
<table border=0 width=100%>
<tr>
<td><p class=tiny>Vorbisfile documentation</p></td>
<td align=right><p class=tiny>vorbisfile version 1.68 - 20030307</p></td>
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
</tr>
</table>
......@@ -50,9 +50,13 @@ The following behaviors are also expected:<p>
The seek-like function provided in the <tt>seek_func</tt> field is
used to request non-sequential data access by libvorbisfile, moving
the access cursor to the requested position.<p>
the access cursor to the requested position. The seek function is
optional; if callbacks are only to handle non-seeking (streaming) data
or the application wishes to force streaming behavior,
<tt>seek_func</tt> and <tt>tell_func</tt> should be set to NULL. If
the seek function is non-NULL, libvorbisfile mandates the following
behavior:
libvorbisfile expects the following behavior:
<ul>
<li>The seek function must always return -1 (failure) if the given
data abstraction is not seekable. It may choose to always return -1
......@@ -73,15 +77,17 @@ one past the last byte of accessible data, as would stdio
The close function should deallocate any access state used by the
passed in instance of the data access abstraction and invalidate the
instance handle. The close function is assumed to succeed.<p>
One common use of callbacks and the close function is to change the
behavior of libvorbisfile with respect to file closure for applications
that <em>must</em> <tt>fclose</tt> data files themselves. By passing
the normal stdio calls as callback functions, but passing a
<tt>close_func</tt> that does nothing, an application may call <a
href="ov_clear.html">ov_clear()</a> and then <tt>fclose()</tt> the
file originally passed to libvorbisfile.
instance handle. The close function is assumed to succeed; its return
code is not checked.<p>
The <tt>close_func</tt> may be set to NULL to indicate that libvorbis
should not attempt to close the file/data handle in <a
href="ov_clear.html">ov_clear</a> but allow the application to handle
file/data access cleanup itself. For example, by passing the normal
stdio calls as callback functions, but passing a <tt>close_func</tt>
that is NULL or does nothing (as in the case of OV_CALLBACKS_NOCLOSE), an
application may call <a href="ov_clear.html">ov_clear()</a> and then
later <tt>fclose()</tt> the file originally passed to libvorbisfile.
<h2>Tell function</h2>
......@@ -94,17 +100,19 @@ function must return the data position (and thus the total file size),
not an error.<p>
The tell function need not be provided if the data IO abstraction is
not seekable.<p>
not seekable, or the application wishes to force streaming
behavior. In this case, the <tt>tell_func</tt> and <tt>seek_func</tt>
fields should be set to NULL.<p>
<br><br>
<hr noshade>
<table border=0 width=100%>
<tr valign=top>
<td><p class=tiny>copyright &copy; 2003 Xiph.org</p></td>
<td><p class=tiny>copyright &copy; 2007 Xiph.org</p></td>
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
</tr><tr>
<td><p class=tiny>Vorbisfile documentation</p></td>
<td align=right><p class=tiny>vorbisfile version 1.68 - 20030307</p></td>
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
</tr>
</table>
......
......@@ -9,7 +9,7 @@
<table border=0 width=100%>
<tr>
<td><p class=tiny>Vorbisfile documentation</p></td>
<td align=right><p class=tiny>vorbisfile version 1.68 - 20030307</p></td>
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
</tr>
</table>
......@@ -31,8 +31,12 @@ The example program source:
OggVorbis_File ov;
int i;
<font color="#A020F0">#ifdef _WIN32</font> <font color="#B22222">/* We need to set stdin to binary mode on windows. */</font>
_setmode( _fileno( stdin ), _O_BINARY );
<font color="#A020F0">#endif</font>
<font<