update from rev d75329716a02, it really works now (i think) hedgeroid
authorXeli
Sun, 09 Oct 2011 15:17:21 +0200
branchhedgeroid
changeset 6043 9bd2d6b1ba52
parent 6041 04bbe344b8d3
child 6045 9a7cc0f29430
update from rev d75329716a02, it really works now (i think)
misc/Android.mk
misc/libfreetype/Android.mk
misc/libtremor/Android.mk
misc/libtremor/CHANGELOG
misc/libtremor/COPYING
misc/libtremor/Makefile.am
misc/libtremor/README
misc/libtremor/Version_script.in
misc/libtremor/Xcode/Tremor.xcodeproj/default.mode1v3
misc/libtremor/Xcode/Tremor.xcodeproj/default.pbxuser
misc/libtremor/Xcode/Tremor.xcodeproj/project.pbxproj
misc/libtremor/Xcode/Tremor_Prefix.pch
misc/libtremor/asm_arm.h
misc/libtremor/autogen.sh
misc/libtremor/backends.h
misc/libtremor/bitwise.c
misc/libtremor/block.c
misc/libtremor/block.h
misc/libtremor/codebook.c
misc/libtremor/codebook.h
misc/libtremor/codec_internal.h
misc/libtremor/config_types.h
misc/libtremor/configure.in
misc/libtremor/floor0.c
misc/libtremor/floor1.c
misc/libtremor/framing.c
misc/libtremor/info.c
misc/libtremor/ivorbiscodec.h
misc/libtremor/ivorbisfile.h
misc/libtremor/ivorbisfile_example.c
misc/libtremor/lsp_lookup.h
misc/libtremor/mapping0.c
misc/libtremor/mdct.c
misc/libtremor/mdct.h
misc/libtremor/mdct_lookup.h
misc/libtremor/misc.h
misc/libtremor/ogg.h
misc/libtremor/os.h
misc/libtremor/os_types.h
misc/libtremor/registry.c
misc/libtremor/registry.h
misc/libtremor/res012.c
misc/libtremor/sharedbook.c
misc/libtremor/synthesis.c
misc/libtremor/vorbisfile.c
misc/libtremor/window.c
misc/libtremor/window.h
misc/libtremor/window_lookup.h
misc/tremor/Android.mk
misc/tremor/CHANGELOG
misc/tremor/COPYING
misc/tremor/Makefile.am
misc/tremor/README
misc/tremor/Version_script.in
misc/tremor/Xcode/Tremor.xcodeproj/default.mode1v3
misc/tremor/Xcode/Tremor.xcodeproj/default.pbxuser
misc/tremor/Xcode/Tremor.xcodeproj/project.pbxproj
misc/tremor/Xcode/Tremor_Prefix.pch
misc/tremor/asm_arm.h
misc/tremor/autogen.sh
misc/tremor/backends.h
misc/tremor/bitwise.c
misc/tremor/block.c
misc/tremor/block.h
misc/tremor/codebook.c
misc/tremor/codebook.h
misc/tremor/codec_internal.h
misc/tremor/config_types.h
misc/tremor/configure.in
misc/tremor/floor0.c
misc/tremor/floor1.c
misc/tremor/framing.c
misc/tremor/info.c
misc/tremor/ivorbiscodec.h
misc/tremor/ivorbisfile.h
misc/tremor/ivorbisfile_example.c
misc/tremor/lsp_lookup.h
misc/tremor/mapping0.c
misc/tremor/mdct.c
misc/tremor/mdct.h
misc/tremor/mdct_lookup.h
misc/tremor/misc.h
misc/tremor/ogg.h
misc/tremor/os.h
misc/tremor/os_types.h
misc/tremor/registry.c
misc/tremor/registry.h
misc/tremor/res012.c
misc/tremor/sharedbook.c
misc/tremor/synthesis.c
misc/tremor/vorbisfile.c
misc/tremor/window.c
misc/tremor/window.h
misc/tremor/window_lookup.h
project_files/Android-build/SDL-android-project/jni/Android.mk
--- a/misc/Android.mk	Sun Oct 09 15:15:45 2011 +0200
+++ b/misc/Android.mk	Sun Oct 09 15:17:21 2011 +0200
@@ -1,1 +1,6 @@
-include $(call all-subdir-makefiles)
+MISC_DIR   := $(call my-dir)
+LOCAL_PATH := MISC_DIR
+
+include $(MISC_DIR)/libfreetype/Android.mk
+include $(MISC_DIR)/liblua/Android.mk
+include $(MISC_DIR)/tremor/Android.mk
--- a/misc/libfreetype/Android.mk	Sun Oct 09 15:15:45 2011 +0200
+++ b/misc/libfreetype/Android.mk	Sun Oct 09 15:17:21 2011 +0200
@@ -1,28 +1,45 @@
-LOCAL_PATH := $(call my-dir)
-
+LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := freetype
-
-APP_SUBDIRS := $(patsubst $(LOCAL_PATH)/%, %, $(shell find $(LOCAL_PATH)/src -type d))
-
-# Add more subdirs here, like src/subdir1 src/subdir2
-
-LOCAL_CFLAGS := $(foreach D, $(APP_SUBDIRS), -I$(LOCAL_PATH)/$(D)) \
-				-I$(LOCAL_PATH)/include -DFT2_BUILD_LIBRARY
-
+# compile in ARM mode, since the glyph loader/renderer is a hotspot
+# when loading complex pages in the browser
+#
+LOCAL_ARM_MODE := arm
 
-#Change C++ file extension as appropriate
-LOCAL_CPP_EXTENSION := .cpp
+LOCAL_SRC_FILES:= \
+	src/base/ftbbox.c \
+	src/base/ftbitmap.c \
+	src/base/ftglyph.c \
+	src/base/ftstroke.c \
+	src/base/ftxf86.c \
+	src/base/ftbase.c \
+	src/base/ftsystem.c \
+	src/base/ftinit.c \
+	src/base/ftgasp.c \
+	src/raster/raster.c \
+	src/sfnt/sfnt.c \
+	src/smooth/smooth.c \
+	src/autofit/autofit.c \
+	src/truetype/truetype.c \
+	src/cff/cff.c \
+	src/psnames/psnames.c \
+	src/pshinter/pshinter.c
 
-LOCAL_SRC_FILES := $(foreach F, $(APP_SUBDIRS), $(addprefix $(F)/,$(notdir $(wildcard $(LOCAL_PATH)/$(F)/*.cpp))))
-# Uncomment to also add C sources
-LOCAL_SRC_FILES += $(foreach F, $(APP_SUBDIRS), $(addprefix $(F)/,$(notdir $(wildcard $(LOCAL_PATH)/$(F)/*.c))))
+LOCAL_C_INCLUDES += \
+	$(LOCAL_PATH)/builds \
+	$(LOCAL_PATH)/include
 
-LOCAL_SHARED_LIBRARIES := 
+LOCAL_CFLAGS += -W -Wall
+LOCAL_CFLAGS += -fPIC -DPIC
+LOCAL_CFLAGS += "-DDARWIN_NO_CARBON"
+LOCAL_CFLAGS += "-DFT2_BUILD_LIBRARY"
 
-LOCAL_STATIC_LIBRARIES := 
+# the following is for testing only, and should not be used in final builds
+# of the product
+#LOCAL_CFLAGS += "-DTT_CONFIG_OPTION_BYTECODE_INTERPRETER"
 
-LOCAL_LDLIBS :=
+LOCAL_CFLAGS += -O2
+
+LOCAL_MODULE:= freetype
 
 include $(BUILD_STATIC_LIBRARY)
--- a/misc/libtremor/Android.mk	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := tremor
-
-LOCAL_CFLAGS := -I$(LOCAL_PATH) -DHAVE_ALLOCA_H
-
-# Note this simple makefile var substitution, you can find even simpler examples in different Android projects
-LOCAL_SRC_FILES := $(notdir $(wildcard $(LOCAL_PATH)/*.c))
-
-include $(BUILD_STATIC_LIBRARY)
-
--- a/misc/libtremor/CHANGELOG	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-*** 20020517: 1.0.2 ***
-
-  Playback bugfix to floor1; mode mistakenly used for sizing instead
-  of blockflag
-
-*** 20020515: 1.0.1 ***
-
-  Added complete API documentation to source tarball.  No code
-  changes.
-
-*** 20020412: 1.0.1 ***
-
-  Fixed a clipping bug that affected ARM processors; negative
-  overflows were being properly clipped, but then clobbered to
-  positive by the positive overflow chec (asm_arm.h:CLIP_TO_15)
-
-*** 20020403: 1.0.0 ***
-
-  Initial version
\ No newline at end of file
--- a/misc/libtremor/COPYING	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-Copyright (c) 2002, Xiph.org Foundation
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-- Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-
-- Neither the name of the Xiph.org Foundation nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF 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.
--- a/misc/libtremor/Makefile.am	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-AUTOMAKE_OPTIONS = foreign
-
-INCLUDES = -I./
-
-lib_LTLIBRARIES = libvorbisidec.la
-
-libvorbisidec_la_SOURCES = mdct.c block.c window.c \
-                        synthesis.c info.c \
-                        floor1.c floor0.c vorbisfile.c \
-                        res012.c mapping0.c registry.c codebook.c \
-			sharedbook.c framing.c bitwise.c \
-                        codebook.h misc.h mdct_lookup.h\
-                        os.h mdct.h block.h ivorbisfile.h lsp_lookup.h\
-                        registry.h window.h window_lookup.h\
-                        codec_internal.h backends.h ogg.h \
-			asm_arm.h ivorbiscodec.h
-libvorbisidec_la_LDFLAGS = -version-info @V_LIB_CURRENT@:@V_LIB_REVISION@:@V_LIB_AGE@
-
-EXTRA_PROGRAMS = ivorbisfile_example
-CLEANFILES = $(EXTRA_PROGRAMS) $(lib_LTLIBRARIES)
-
-ivorbisfile_example_SOURCES = ivorbisfile_example.c
-ivorbisfile_example_LDFLAGS = -static 
-ivorbisfile_example_LDADD = libvorbisidec.la
-
-includedir = $(prefix)/include/tremor
-
-include_HEADERS = ivorbiscodec.h ivorbisfile.h ogg.h os_types.h config_types.h
-
-example:
-	-ln -fs . vorbis
-	$(MAKE) ivorbisfile_example
-
-debug:
-	$(MAKE) all CFLAGS="@DEBUG@" 
-
-profile:
-	$(MAKE) all CFLAGS="@PROFILE@"
--- a/misc/libtremor/README	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-This README covers the Ogg Vorbis 'Tremor' integer playback codec
-source as of date 2002 09 02, version 1.0.0.
-
-                            ******
-
-The C source in this package will build on any ANSI C compiler and
-function completely and properly on any platform.  The included build
-system assumes GNU build system and make tools (m4, automake,
-autoconf, libtool and gmake).  GCC is not required, although GCC is
-the most tested compiler.  To build using GNU tools, type in the
-source directory:
-
-./autogen.sh
-make
-
-Currently, the source implements playback in pure C on all platforms
-except ARM, where a [currently] small amount of assembly (see
-asm_arm.h) is used to implement 64 bit math operations and fast LSP
-computation.  If building on ARM without the benefit of GNU build
-system tools, be sure that '_ARM_ASSEM_' is #defined by the build
-system if this assembly is desired, else the resulting library will
-use whatever 64 bit math builtins the compiler implements.
-
-No math library is required by this source.  No floating point
-operations are used at any point in either setup or decode.  This
-decoder library will properly decode any past, current or future
-Vorbis I file or stream.
-
-                           ********
-
-The build system produces a static and [when supported by the OS]
-dynamic library named 'libvorbisidec'.  This library exposes an API
-nearly identical to the BSD reference library's 'libvorbisfile',
-including all the features familiar to users of vorbisfile.  This API
-is similar enough that the proper header file to include is named
-'ivorbisfile.h' [included in the source build directory].  Lower level
-libvorbis-style headers and structures are in 'ivorbiscodec.h'
-[included in the source build directory]. A simple example program,
-ivorbisfile_example.c, can be built with 'make example'.
-
-                           ********
-
-Detailed Tremor API Documentation begins at doc/index.html
-
-Monty
-xiph.org
--- a/misc/libtremor/Version_script.in	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#
-# Export file for libvorbisidec
-#
-# Only the symbols listed in the global section will be callable from
-# applications linking to libvorbisidec.
-#
-
-@PACKAGE@.so.1
-{
-	global:
-		ov_clear;
-		ov_open;
-		ov_open_callbacks;
-		ov_test;
-		ov_test_callbacks;
-		ov_test_open;
-		ov_bitrate;
-		ov_bitrate_instant;
-		ov_streams;
-		ov_seekable;
-		ov_serialnumber;
-		ov_raw_total;
-		ov_pcm_total;
-		ov_time_total;
-		ov_raw_seek;
-		ov_pcm_seek;
-		ov_pcm_seek_page;
-		ov_time_seek;
-		ov_time_seek_page;
-		ov_raw_tell;
-		ov_pcm_tell;
-		ov_time_tell;
-		ov_info;
-		ov_comment;
-		ov_read;
-
-		vorbis_info_init;
-		vorbis_info_clear;
-		vorbis_info_blocksize;
-		vorbis_comment_init;
-		vorbis_comment_add;
-		vorbis_comment_add_tag;
-		vorbis_comment_query;
-		vorbis_comment_query_count;
-		vorbis_comment_clear;
-
-	local:
-		*;
-};
--- a/misc/libtremor/Xcode/Tremor.xcodeproj/default.mode1v3	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1375 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>ActivePerspectiveName</key>
-	<string>Project</string>
-	<key>AllowedModules</key>
-	<array>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXSmartGroupTreeModule</string>
-			<key>Name</key>
-			<string>Groups and Files Outline View</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXNavigatorGroup</string>
-			<key>Name</key>
-			<string>Editor</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCTaskListModule</string>
-			<key>Name</key>
-			<string>Task List</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCDetailModule</string>
-			<key>Name</key>
-			<string>File and Smart Group Detail Viewer</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXBuildResultsModule</string>
-			<key>Name</key>
-			<string>Detailed Build Results Viewer</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXProjectFindModule</string>
-			<key>Name</key>
-			<string>Project Batch Find Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCProjectFormatConflictsModule</string>
-			<key>Name</key>
-			<string>Project Format Conflicts List</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXBookmarksModule</string>
-			<key>Name</key>
-			<string>Bookmarks Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXClassBrowserModule</string>
-			<key>Name</key>
-			<string>Class Browser</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXCVSModule</string>
-			<key>Name</key>
-			<string>Source Code Control Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXDebugBreakpointsModule</string>
-			<key>Name</key>
-			<string>Debug Breakpoints Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCDockableInspector</string>
-			<key>Name</key>
-			<string>Inspector</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>PBXOpenQuicklyModule</string>
-			<key>Name</key>
-			<string>Open Quickly Tool</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXDebugSessionModule</string>
-			<key>Name</key>
-			<string>Debugger</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>1</string>
-			<key>Module</key>
-			<string>PBXDebugCLIModule</string>
-			<key>Name</key>
-			<string>Debug Console</string>
-		</dict>
-		<dict>
-			<key>BundleLoadPath</key>
-			<string></string>
-			<key>MaxInstances</key>
-			<string>n</string>
-			<key>Module</key>
-			<string>XCSnapshotModule</string>
-			<key>Name</key>
-			<string>Snapshots Tool</string>
-		</dict>
-	</array>
-	<key>BundlePath</key>
-	<string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
-	<key>Description</key>
-	<string>DefaultDescriptionKey</string>
-	<key>DockingSystemVisible</key>
-	<false/>
-	<key>Extension</key>
-	<string>mode1v3</string>
-	<key>FavBarConfig</key>
-	<dict>
-		<key>PBXProjectModuleGUID</key>
-		<string>61958D941364B65600B429B6</string>
-		<key>XCBarModuleItemNames</key>
-		<dict/>
-		<key>XCBarModuleItems</key>
-		<array/>
-	</dict>
-	<key>FirstTimeWindowDisplayed</key>
-	<false/>
-	<key>Identifier</key>
-	<string>com.apple.perspectives.project.mode1v3</string>
-	<key>MajorVersion</key>
-	<integer>33</integer>
-	<key>MinorVersion</key>
-	<integer>0</integer>
-	<key>Name</key>
-	<string>Default</string>
-	<key>Notifications</key>
-	<array/>
-	<key>OpenEditors</key>
-	<array/>
-	<key>PerspectiveWidths</key>
-	<array>
-		<integer>-1</integer>
-		<integer>-1</integer>
-	</array>
-	<key>Perspectives</key>
-	<array>
-		<dict>
-			<key>ChosenToolbarItems</key>
-			<array>
-				<string>active-combo-popup</string>
-				<string>active-executable-popup</string>
-				<string>NSToolbarFlexibleSpaceItem</string>
-				<string>debugger-enable-breakpoints</string>
-				<string>buildOrClean</string>
-				<string>build-and-go</string>
-				<string>clean-target</string>
-				<string>com.apple.ide.PBXToolbarStopButton</string>
-				<string>NSToolbarFlexibleSpaceItem</string>
-			</array>
-			<key>ControllerClassBaseName</key>
-			<string></string>
-			<key>IconName</key>
-			<string>WindowOfProjectWithEditor</string>
-			<key>Identifier</key>
-			<string>perspective.project</string>
-			<key>IsVertical</key>
-			<false/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>BecomeActive</key>
-					<true/>
-					<key>ContentConfiguration</key>
-					<dict>
-						<key>PBXBottomSmartGroupGIDs</key>
-						<array>
-							<string>1C37FBAC04509CD000000102</string>
-							<string>1C37FAAC04509CD000000102</string>
-							<string>1C37FABC05509CD000000102</string>
-							<string>1C37FABC05539CD112110102</string>
-							<string>E2644B35053B69B200211256</string>
-							<string>1C37FABC04509CD000100104</string>
-							<string>1CC0EA4004350EF90044410B</string>
-							<string>1CC0EA4004350EF90041110B</string>
-						</array>
-						<key>PBXProjectModuleGUID</key>
-						<string>1CE0B1FE06471DED0097A5F4</string>
-						<key>PBXProjectModuleLabel</key>
-						<string>Files</string>
-						<key>PBXProjectStructureProvided</key>
-						<string>yes</string>
-						<key>PBXSmartGroupTreeModuleColumnData</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
-							<array>
-								<real>186</real>
-							</array>
-							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
-							<array>
-								<string>MainColumn</string>
-							</array>
-						</dict>
-						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
-							<array>
-								<string>0867D691FE84028FC02AAC07</string>
-								<string>1C37FBAC04509CD000000102</string>
-								<string>1C37FABC05509CD000000102</string>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
-							<array>
-								<array>
-									<integer>6</integer>
-									<integer>5</integer>
-								</array>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {186, 445}}</string>
-						</dict>
-						<key>PBXTopSmartGroupGIDs</key>
-						<array/>
-						<key>XCIncludePerspectivesSwitch</key>
-						<true/>
-						<key>XCSharingToken</key>
-						<string>com.apple.Xcode.GFSharingToken</string>
-					</dict>
-					<key>GeometryConfiguration</key>
-					<dict>
-						<key>Frame</key>
-						<string>{{0, 0}, {203, 463}}</string>
-						<key>GroupTreeTableConfiguration</key>
-						<array>
-							<string>MainColumn</string>
-							<real>186</real>
-						</array>
-						<key>RubberWindowFrame</key>
-						<string>2421 105 788 504 1920 0 1920 1200 </string>
-					</dict>
-					<key>Module</key>
-					<string>PBXSmartGroupTreeModule</string>
-					<key>Proportion</key>
-					<string>203pt</string>
-				</dict>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CE0B20306471E060097A5F4</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>block.c</string>
-								<key>PBXSplitModuleInNavigatorKey</key>
-								<dict>
-									<key>Split0</key>
-									<dict>
-										<key>PBXProjectModuleGUID</key>
-										<string>1CE0B20406471E060097A5F4</string>
-										<key>PBXProjectModuleLabel</key>
-										<string>block.c</string>
-										<key>_historyCapacity</key>
-										<integer>0</integer>
-										<key>bookmark</key>
-										<string>6195988B1364C39900B429B6</string>
-										<key>history</key>
-										<array>
-											<string>61958E001364B86F00B429B6</string>
-											<string>61958E011364B86F00B429B6</string>
-											<string>61958E021364B86F00B429B6</string>
-											<string>61958E031364B86F00B429B6</string>
-											<string>61958E041364B86F00B429B6</string>
-											<string>61958E051364B86F00B429B6</string>
-											<string>61958E061364B86F00B429B6</string>
-											<string>61958E071364B86F00B429B6</string>
-											<string>61958E081364B86F00B429B6</string>
-											<string>61958E091364B86F00B429B6</string>
-											<string>61958E0A1364B86F00B429B6</string>
-											<string>61958E371364BA9400B429B6</string>
-											<string>61958E391364BA9400B429B6</string>
-											<string>619598471364BEBD00B429B6</string>
-											<string>619598491364BEBD00B429B6</string>
-											<string>6195985D1364BF4300B429B6</string>
-											<string>619598801364C1FD00B429B6</string>
-										</array>
-									</dict>
-									<key>SplitCount</key>
-									<string>1</string>
-								</dict>
-								<key>StatusBarVisibility</key>
-								<true/>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {580, 251}}</string>
-								<key>RubberWindowFrame</key>
-								<string>2421 105 788 504 1920 0 1920 1200 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>251pt</string>
-						</dict>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CE0B20506471E060097A5F4</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Detail</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 256}, {580, 207}}</string>
-								<key>RubberWindowFrame</key>
-								<string>2421 105 788 504 1920 0 1920 1200 </string>
-							</dict>
-							<key>Module</key>
-							<string>XCDetailModule</string>
-							<key>Proportion</key>
-							<string>207pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>580pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Project</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCModuleDock</string>
-				<string>PBXSmartGroupTreeModule</string>
-				<string>XCModuleDock</string>
-				<string>PBXNavigatorGroup</string>
-				<string>XCDetailModule</string>
-			</array>
-			<key>TableOfContents</key>
-			<array>
-				<string>619598881364C37A00B429B6</string>
-				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>619598891364C37A00B429B6</string>
-				<string>1CE0B20306471E060097A5F4</string>
-				<string>1CE0B20506471E060097A5F4</string>
-			</array>
-			<key>ToolbarConfigUserDefaultsMinorVersion</key>
-			<string>2</string>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.defaultV3</string>
-		</dict>
-		<dict>
-			<key>ControllerClassBaseName</key>
-			<string></string>
-			<key>IconName</key>
-			<string>WindowOfProject</string>
-			<key>Identifier</key>
-			<string>perspective.morph</string>
-			<key>IsVertical</key>
-			<integer>0</integer>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>BecomeActive</key>
-					<integer>1</integer>
-					<key>ContentConfiguration</key>
-					<dict>
-						<key>PBXBottomSmartGroupGIDs</key>
-						<array>
-							<string>1C37FBAC04509CD000000102</string>
-							<string>1C37FAAC04509CD000000102</string>
-							<string>1C08E77C0454961000C914BD</string>
-							<string>1C37FABC05509CD000000102</string>
-							<string>1C37FABC05539CD112110102</string>
-							<string>E2644B35053B69B200211256</string>
-							<string>1C37FABC04509CD000100104</string>
-							<string>1CC0EA4004350EF90044410B</string>
-							<string>1CC0EA4004350EF90041110B</string>
-						</array>
-						<key>PBXProjectModuleGUID</key>
-						<string>11E0B1FE06471DED0097A5F4</string>
-						<key>PBXProjectModuleLabel</key>
-						<string>Files</string>
-						<key>PBXProjectStructureProvided</key>
-						<string>yes</string>
-						<key>PBXSmartGroupTreeModuleColumnData</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
-							<array>
-								<real>186</real>
-							</array>
-							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
-							<array>
-								<string>MainColumn</string>
-							</array>
-						</dict>
-						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
-						<dict>
-							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
-							<array>
-								<string>29B97314FDCFA39411CA2CEA</string>
-								<string>1C37FABC05509CD000000102</string>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
-							<array>
-								<array>
-									<integer>0</integer>
-								</array>
-							</array>
-							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-							<string>{{0, 0}, {186, 337}}</string>
-						</dict>
-						<key>PBXTopSmartGroupGIDs</key>
-						<array/>
-						<key>XCIncludePerspectivesSwitch</key>
-						<integer>1</integer>
-						<key>XCSharingToken</key>
-						<string>com.apple.Xcode.GFSharingToken</string>
-					</dict>
-					<key>GeometryConfiguration</key>
-					<dict>
-						<key>Frame</key>
-						<string>{{0, 0}, {203, 355}}</string>
-						<key>GroupTreeTableConfiguration</key>
-						<array>
-							<string>MainColumn</string>
-							<real>186</real>
-						</array>
-						<key>RubberWindowFrame</key>
-						<string>373 269 690 397 0 0 1440 878 </string>
-					</dict>
-					<key>Module</key>
-					<string>PBXSmartGroupTreeModule</string>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Morph</string>
-			<key>PreferredWidth</key>
-			<integer>300</integer>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCModuleDock</string>
-				<string>PBXSmartGroupTreeModule</string>
-			</array>
-			<key>TableOfContents</key>
-			<array>
-				<string>11E0B1FE06471DED0097A5F4</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.default.shortV3</string>
-		</dict>
-	</array>
-	<key>PerspectivesBarVisible</key>
-	<false/>
-	<key>ShelfIsVisible</key>
-	<false/>
-	<key>SourceDescription</key>
-	<string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
-	<key>StatusbarIsVisible</key>
-	<true/>
-	<key>TimeStamp</key>
-	<real>0.0</real>
-	<key>ToolbarConfigUserDefaultsMinorVersion</key>
-	<string>2</string>
-	<key>ToolbarDisplayMode</key>
-	<integer>1</integer>
-	<key>ToolbarIsVisible</key>
-	<true/>
-	<key>ToolbarSizeMode</key>
-	<integer>1</integer>
-	<key>Type</key>
-	<string>Perspectives</string>
-	<key>UpdateMessage</key>
-	<string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
-	<key>WindowJustification</key>
-	<integer>5</integer>
-	<key>WindowOrderList</key>
-	<array>
-		<string>61958D951364B65600B429B6</string>
-		<string>/Users/vittorio/hedgewars/trunk/misc/libtremor/Xcode/Tremor.xcodeproj</string>
-	</array>
-	<key>WindowString</key>
-	<string>2421 105 788 504 1920 0 1920 1200 </string>
-	<key>WindowToolsV3</key>
-	<array>
-		<dict>
-			<key>FirstTimeWindowDisplayed</key>
-			<false/>
-			<key>Identifier</key>
-			<string>windowTool.build</string>
-			<key>IsVertical</key>
-			<true/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CD0528F0623707200166675</string>
-								<key>PBXProjectModuleLabel</key>
-								<string></string>
-								<key>StatusBarVisibility</key>
-								<true/>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {500, 218}}</string>
-								<key>RubberWindowFrame</key>
-								<string>888 335 500 500 0 0 1920 1178 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>218pt</string>
-						</dict>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>XCMainBuildResultsModuleGUID</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Build Results</string>
-								<key>XCBuildResultsTrigger_Collapse</key>
-								<integer>1021</integer>
-								<key>XCBuildResultsTrigger_Open</key>
-								<integer>1011</integer>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 223}, {500, 236}}</string>
-								<key>RubberWindowFrame</key>
-								<string>888 335 500 500 0 0 1920 1178 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXBuildResultsModule</string>
-							<key>Proportion</key>
-							<string>236pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>459pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Build Results</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXBuildResultsModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<true/>
-			<key>TableOfContents</key>
-			<array>
-				<string>61958D951364B65600B429B6</string>
-				<string>6195988A1364C37A00B429B6</string>
-				<string>1CD0528F0623707200166675</string>
-				<string>XCMainBuildResultsModuleGUID</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.buildV3</string>
-			<key>WindowContentMinSize</key>
-			<string>486 300</string>
-			<key>WindowString</key>
-			<string>888 335 500 500 0 0 1920 1178 </string>
-			<key>WindowToolGUID</key>
-			<string>61958D951364B65600B429B6</string>
-			<key>WindowToolIsVisible</key>
-			<false/>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.debugger</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>Debugger</key>
-								<dict>
-									<key>HorizontalSplitView</key>
-									<dict>
-										<key>_collapsingFrameDimension</key>
-										<real>0.0</real>
-										<key>_indexOfCollapsedView</key>
-										<integer>0</integer>
-										<key>_percentageOfCollapsedView</key>
-										<real>0.0</real>
-										<key>isCollapsed</key>
-										<string>yes</string>
-										<key>sizes</key>
-										<array>
-											<string>{{0, 0}, {317, 164}}</string>
-											<string>{{317, 0}, {377, 164}}</string>
-										</array>
-									</dict>
-									<key>VerticalSplitView</key>
-									<dict>
-										<key>_collapsingFrameDimension</key>
-										<real>0.0</real>
-										<key>_indexOfCollapsedView</key>
-										<integer>0</integer>
-										<key>_percentageOfCollapsedView</key>
-										<real>0.0</real>
-										<key>isCollapsed</key>
-										<string>yes</string>
-										<key>sizes</key>
-										<array>
-											<string>{{0, 0}, {694, 164}}</string>
-											<string>{{0, 164}, {694, 216}}</string>
-										</array>
-									</dict>
-								</dict>
-								<key>LauncherConfigVersion</key>
-								<string>8</string>
-								<key>PBXProjectModuleGUID</key>
-								<string>1C162984064C10D400B95A72</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Debug - GLUTExamples (Underwater)</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>DebugConsoleDrawerSize</key>
-								<string>{100, 120}</string>
-								<key>DebugConsoleVisible</key>
-								<string>None</string>
-								<key>DebugConsoleWindowFrame</key>
-								<string>{{200, 200}, {500, 300}}</string>
-								<key>DebugSTDIOWindowFrame</key>
-								<string>{{200, 200}, {500, 300}}</string>
-								<key>Frame</key>
-								<string>{{0, 0}, {694, 380}}</string>
-								<key>RubberWindowFrame</key>
-								<string>321 238 694 422 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXDebugSessionModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Debugger</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXDebugSessionModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1CD10A99069EF8BA00B06720</string>
-				<string>1C0AD2AB069F1E9B00FABCE6</string>
-				<string>1C162984064C10D400B95A72</string>
-				<string>1C0AD2AC069F1E9B00FABCE6</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.debugV3</string>
-			<key>WindowString</key>
-			<string>321 238 694 422 0 0 1440 878 </string>
-			<key>WindowToolGUID</key>
-			<string>1CD10A99069EF8BA00B06720</string>
-			<key>WindowToolIsVisible</key>
-			<integer>0</integer>
-		</dict>
-		<dict>
-			<key>FirstTimeWindowDisplayed</key>
-			<false/>
-			<key>Identifier</key>
-			<string>windowTool.find</string>
-			<key>IsVertical</key>
-			<true/>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Dock</key>
-							<array>
-								<dict>
-									<key>BecomeActive</key>
-									<true/>
-									<key>ContentConfiguration</key>
-									<dict>
-										<key>PBXProjectModuleGUID</key>
-										<string>1CDD528C0622207200134675</string>
-										<key>PBXProjectModuleLabel</key>
-										<string>info.c</string>
-										<key>StatusBarVisibility</key>
-										<true/>
-									</dict>
-									<key>GeometryConfiguration</key>
-									<dict>
-										<key>Frame</key>
-										<string>{{0, 0}, {781, 212}}</string>
-										<key>RubberWindowFrame</key>
-										<string>909 342 781 470 0 0 1920 1178 </string>
-									</dict>
-									<key>Module</key>
-									<string>PBXNavigatorGroup</string>
-									<key>Proportion</key>
-									<string>781pt</string>
-								</dict>
-							</array>
-							<key>Proportion</key>
-							<string>212pt</string>
-						</dict>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CD0528E0623707200166675</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Project Find</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 217}, {781, 212}}</string>
-								<key>RubberWindowFrame</key>
-								<string>909 342 781 470 0 0 1920 1178 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXProjectFindModule</string>
-							<key>Proportion</key>
-							<string>212pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>429pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Project Find</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXProjectFindModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<true/>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C530D57069F1CE1000CFCEE</string>
-				<string>61958E351364BA7600B429B6</string>
-				<string>61958E361364BA7600B429B6</string>
-				<string>1CDD528C0622207200134675</string>
-				<string>1CD0528E0623707200166675</string>
-			</array>
-			<key>WindowString</key>
-			<string>909 342 781 470 0 0 1920 1178 </string>
-			<key>WindowToolGUID</key>
-			<string>1C530D57069F1CE1000CFCEE</string>
-			<key>WindowToolIsVisible</key>
-			<false/>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>MENUSEPARATOR</string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.debuggerConsole</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1C78EAAC065D492600B07095</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Debugger Console</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {650, 250}}</string>
-								<key>RubberWindowFrame</key>
-								<string>516 632 650 250 0 0 1680 1027 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXDebugCLIModule</string>
-							<key>Proportion</key>
-							<string>209pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>209pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Debugger Console</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXDebugCLIModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C78EAAD065D492600B07095</string>
-				<string>1C78EAAE065D492600B07095</string>
-				<string>1C78EAAC065D492600B07095</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.consoleV3</string>
-			<key>WindowString</key>
-			<string>650 41 650 250 0 0 1280 1002 </string>
-			<key>WindowToolGUID</key>
-			<string>1C78EAAD065D492600B07095</string>
-			<key>WindowToolIsVisible</key>
-			<integer>0</integer>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.snapshots</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>XCSnapshotModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Snapshots</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCSnapshotModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<string>Yes</string>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.snapshots</string>
-			<key>WindowString</key>
-			<string>315 824 300 550 0 0 1440 878 </string>
-			<key>WindowToolIsVisible</key>
-			<string>Yes</string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.scm</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1C78EAB2065D492600B07095</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>&lt;No Editor&gt;</string>
-								<key>PBXSplitModuleInNavigatorKey</key>
-								<dict>
-									<key>Split0</key>
-									<dict>
-										<key>PBXProjectModuleGUID</key>
-										<string>1C78EAB3065D492600B07095</string>
-									</dict>
-									<key>SplitCount</key>
-									<string>1</string>
-								</dict>
-								<key>StatusBarVisibility</key>
-								<integer>1</integer>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {452, 0}}</string>
-								<key>RubberWindowFrame</key>
-								<string>743 379 452 308 0 0 1280 1002 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>0pt</string>
-						</dict>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CD052920623707200166675</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>SCM</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>ConsoleFrame</key>
-								<string>{{0, 259}, {452, 0}}</string>
-								<key>Frame</key>
-								<string>{{0, 7}, {452, 259}}</string>
-								<key>RubberWindowFrame</key>
-								<string>743 379 452 308 0 0 1280 1002 </string>
-								<key>TableConfiguration</key>
-								<array>
-									<string>Status</string>
-									<real>30</real>
-									<string>FileName</string>
-									<real>199</real>
-									<string>Path</string>
-									<real>197.0950012207031</real>
-								</array>
-								<key>TableFrame</key>
-								<string>{{0, 0}, {452, 250}}</string>
-							</dict>
-							<key>Module</key>
-							<string>PBXCVSModule</string>
-							<key>Proportion</key>
-							<string>262pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>266pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>SCM</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXCVSModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C78EAB4065D492600B07095</string>
-				<string>1C78EAB5065D492600B07095</string>
-				<string>1C78EAB2065D492600B07095</string>
-				<string>1CD052920623707200166675</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.scm</string>
-			<key>WindowString</key>
-			<string>743 379 452 308 0 0 1280 1002 </string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.breakpoints</string>
-			<key>IsVertical</key>
-			<integer>0</integer>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXBottomSmartGroupGIDs</key>
-								<array>
-									<string>1C77FABC04509CD000000102</string>
-								</array>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CE0B1FE06471DED0097A5F4</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Files</string>
-								<key>PBXProjectStructureProvided</key>
-								<string>no</string>
-								<key>PBXSmartGroupTreeModuleColumnData</key>
-								<dict>
-									<key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
-									<array>
-										<real>168</real>
-									</array>
-									<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
-									<array>
-										<string>MainColumn</string>
-									</array>
-								</dict>
-								<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
-								<dict>
-									<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
-									<array>
-										<string>1C77FABC04509CD000000102</string>
-									</array>
-									<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
-									<array>
-										<array>
-											<integer>0</integer>
-										</array>
-									</array>
-									<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
-									<string>{{0, 0}, {168, 350}}</string>
-								</dict>
-								<key>PBXTopSmartGroupGIDs</key>
-								<array/>
-								<key>XCIncludePerspectivesSwitch</key>
-								<integer>0</integer>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{0, 0}, {185, 368}}</string>
-								<key>GroupTreeTableConfiguration</key>
-								<array>
-									<string>MainColumn</string>
-									<real>168</real>
-								</array>
-								<key>RubberWindowFrame</key>
-								<string>315 424 744 409 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXSmartGroupTreeModule</string>
-							<key>Proportion</key>
-							<string>185pt</string>
-						</dict>
-						<dict>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CA1AED706398EBD00589147</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Detail</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{{190, 0}, {554, 368}}</string>
-								<key>RubberWindowFrame</key>
-								<string>315 424 744 409 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>XCDetailModule</string>
-							<key>Proportion</key>
-							<string>554pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>368pt</string>
-				</dict>
-			</array>
-			<key>MajorVersion</key>
-			<integer>3</integer>
-			<key>MinorVersion</key>
-			<integer>0</integer>
-			<key>Name</key>
-			<string>Breakpoints</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXSmartGroupTreeModule</string>
-				<string>XCDetailModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1CDDB66807F98D9800BB5817</string>
-				<string>1CDDB66907F98D9800BB5817</string>
-				<string>1CE0B1FE06471DED0097A5F4</string>
-				<string>1CA1AED706398EBD00589147</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.breakpointsV3</string>
-			<key>WindowString</key>
-			<string>315 424 744 409 0 0 1440 878 </string>
-			<key>WindowToolGUID</key>
-			<string>1CDDB66807F98D9800BB5817</string>
-			<key>WindowToolIsVisible</key>
-			<integer>1</integer>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.debugAnimator</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>PBXNavigatorGroup</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Debug Visualizer</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXNavigatorGroup</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>1</integer>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.debugAnimatorV3</string>
-			<key>WindowString</key>
-			<string>100 100 700 500 0 0 1280 1002 </string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.bookmarks</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>PBXBookmarksModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Bookmarks</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXBookmarksModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>0</integer>
-			<key>WindowString</key>
-			<string>538 42 401 187 0 0 1280 1002 </string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.projectFormatConflicts</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>Module</key>
-							<string>XCProjectFormatConflictsModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Project Format Conflicts</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCProjectFormatConflictsModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>0</integer>
-			<key>WindowContentMinSize</key>
-			<string>450 300</string>
-			<key>WindowString</key>
-			<string>50 850 472 307 0 0 1440 877</string>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.classBrowser</string>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>ContentConfiguration</key>
-							<dict>
-								<key>OptionsSetName</key>
-								<string>Hierarchy, all classes</string>
-								<key>PBXProjectModuleGUID</key>
-								<string>1CA6456E063B45B4001379D8</string>
-								<key>PBXProjectModuleLabel</key>
-								<string>Class Browser - NSObject</string>
-							</dict>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>ClassesFrame</key>
-								<string>{{0, 0}, {374, 96}}</string>
-								<key>ClassesTreeTableConfiguration</key>
-								<array>
-									<string>PBXClassNameColumnIdentifier</string>
-									<real>208</real>
-									<string>PBXClassBookColumnIdentifier</string>
-									<real>22</real>
-								</array>
-								<key>Frame</key>
-								<string>{{0, 0}, {630, 331}}</string>
-								<key>MembersFrame</key>
-								<string>{{0, 105}, {374, 395}}</string>
-								<key>MembersTreeTableConfiguration</key>
-								<array>
-									<string>PBXMemberTypeIconColumnIdentifier</string>
-									<real>22</real>
-									<string>PBXMemberNameColumnIdentifier</string>
-									<real>216</real>
-									<string>PBXMemberTypeColumnIdentifier</string>
-									<real>97</real>
-									<string>PBXMemberBookColumnIdentifier</string>
-									<real>22</real>
-								</array>
-								<key>PBXModuleWindowStatusBarHidden2</key>
-								<integer>1</integer>
-								<key>RubberWindowFrame</key>
-								<string>385 179 630 352 0 0 1440 878 </string>
-							</dict>
-							<key>Module</key>
-							<string>PBXClassBrowserModule</string>
-							<key>Proportion</key>
-							<string>332pt</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>332pt</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Class Browser</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>PBXClassBrowserModule</string>
-			</array>
-			<key>StatusbarIsVisible</key>
-			<integer>0</integer>
-			<key>TableOfContents</key>
-			<array>
-				<string>1C0AD2AF069F1E9B00FABCE6</string>
-				<string>1C0AD2B0069F1E9B00FABCE6</string>
-				<string>1CA6456E063B45B4001379D8</string>
-			</array>
-			<key>ToolbarConfiguration</key>
-			<string>xcode.toolbar.config.classbrowser</string>
-			<key>WindowString</key>
-			<string>385 179 630 352 0 0 1440 878 </string>
-			<key>WindowToolGUID</key>
-			<string>1C0AD2AF069F1E9B00FABCE6</string>
-			<key>WindowToolIsVisible</key>
-			<integer>0</integer>
-		</dict>
-		<dict>
-			<key>Identifier</key>
-			<string>windowTool.refactoring</string>
-			<key>IncludeInToolsMenu</key>
-			<integer>0</integer>
-			<key>Layout</key>
-			<array>
-				<dict>
-					<key>Dock</key>
-					<array>
-						<dict>
-							<key>BecomeActive</key>
-							<integer>1</integer>
-							<key>GeometryConfiguration</key>
-							<dict>
-								<key>Frame</key>
-								<string>{0, 0}, {500, 335}</string>
-								<key>RubberWindowFrame</key>
-								<string>{0, 0}, {500, 335}</string>
-							</dict>
-							<key>Module</key>
-							<string>XCRefactoringModule</string>
-							<key>Proportion</key>
-							<string>100%</string>
-						</dict>
-					</array>
-					<key>Proportion</key>
-					<string>100%</string>
-				</dict>
-			</array>
-			<key>Name</key>
-			<string>Refactoring</string>
-			<key>ServiceClasses</key>
-			<array>
-				<string>XCRefactoringModule</string>
-			</array>
-			<key>WindowString</key>
-			<string>200 200 500 356 0 0 1920 1200 </string>
-		</dict>
-	</array>
-</dict>
-</plist>
--- a/misc/libtremor/Xcode/Tremor.xcodeproj/default.pbxuser	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,505 +0,0 @@
-// !$*UTF8*$!
-{
-	0867D690FE84028FC02AAC07 /* Project object */ = {
-		activeBuildConfigurationName = Release;
-		activeSDKPreference = iphoneos4.2;
-		activeTarget = D2AAC07D0554694100DB518D /* libTremor */;
-		addToTargets = (
-			D2AAC07D0554694100DB518D /* libTremor */,
-		);
-		codeSenseManager = 61958D981364B65600B429B6 /* Code sense */;
-		perUserDictionary = {
-			PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
-				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
-				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
-				PBXFileTableDataSourceColumnWidthsKey = (
-					20,
-					341,
-					20,
-					48,
-					43,
-					43,
-					20,
-				);
-				PBXFileTableDataSourceColumnsKey = (
-					PBXFileDataSource_FiletypeID,
-					PBXFileDataSource_Filename_ColumnID,
-					PBXFileDataSource_Built_ColumnID,
-					PBXFileDataSource_ObjectSize_ColumnID,
-					PBXFileDataSource_Errors_ColumnID,
-					PBXFileDataSource_Warnings_ColumnID,
-					PBXFileDataSource_Target_ColumnID,
-				);
-			};
-			PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
-				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
-				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
-				PBXFileTableDataSourceColumnWidthsKey = (
-					20,
-					301,
-					60,
-					20,
-					48,
-					43,
-					43,
-				);
-				PBXFileTableDataSourceColumnsKey = (
-					PBXFileDataSource_FiletypeID,
-					PBXFileDataSource_Filename_ColumnID,
-					PBXTargetDataSource_PrimaryAttribute,
-					PBXFileDataSource_Built_ColumnID,
-					PBXFileDataSource_ObjectSize_ColumnID,
-					PBXFileDataSource_Errors_ColumnID,
-					PBXFileDataSource_Warnings_ColumnID,
-				);
-			};
-			PBXPerProjectTemplateStateSaveDate = 325370743;
-			PBXWorkspaceStateSaveDate = 325370743;
-		};
-		perUserProjectItems = {
-			61958E001364B86F00B429B6 /* PBXTextBookmark */ = 61958E001364B86F00B429B6 /* PBXTextBookmark */;
-			61958E011364B86F00B429B6 /* PBXTextBookmark */ = 61958E011364B86F00B429B6 /* PBXTextBookmark */;
-			61958E021364B86F00B429B6 /* PBXTextBookmark */ = 61958E021364B86F00B429B6 /* PBXTextBookmark */;
-			61958E031364B86F00B429B6 /* PBXTextBookmark */ = 61958E031364B86F00B429B6 /* PBXTextBookmark */;
-			61958E041364B86F00B429B6 /* PBXTextBookmark */ = 61958E041364B86F00B429B6 /* PBXTextBookmark */;
-			61958E051364B86F00B429B6 /* PBXTextBookmark */ = 61958E051364B86F00B429B6 /* PBXTextBookmark */;
-			61958E061364B86F00B429B6 /* PBXTextBookmark */ = 61958E061364B86F00B429B6 /* PBXTextBookmark */;
-			61958E071364B86F00B429B6 /* PBXTextBookmark */ = 61958E071364B86F00B429B6 /* PBXTextBookmark */;
-			61958E081364B86F00B429B6 /* PBXTextBookmark */ = 61958E081364B86F00B429B6 /* PBXTextBookmark */;
-			61958E091364B86F00B429B6 /* PBXTextBookmark */ = 61958E091364B86F00B429B6 /* PBXTextBookmark */;
-			61958E0A1364B86F00B429B6 /* PBXTextBookmark */ = 61958E0A1364B86F00B429B6 /* PBXTextBookmark */;
-			61958E371364BA9400B429B6 /* PBXTextBookmark */ = 61958E371364BA9400B429B6 /* PBXTextBookmark */;
-			61958E391364BA9400B429B6 /* PBXTextBookmark */ = 61958E391364BA9400B429B6 /* PBXTextBookmark */;
-			619598471364BEBD00B429B6 /* PBXTextBookmark */ = 619598471364BEBD00B429B6 /* PBXTextBookmark */;
-			619598491364BEBD00B429B6 /* PBXTextBookmark */ = 619598491364BEBD00B429B6 /* PBXTextBookmark */;
-			6195985D1364BF4300B429B6 /* PBXTextBookmark */ = 6195985D1364BF4300B429B6 /* PBXTextBookmark */;
-			619598801364C1FD00B429B6 /* PBXTextBookmark */ = 619598801364C1FD00B429B6 /* PBXTextBookmark */;
-			6195988B1364C39900B429B6 /* PBXTextBookmark */ = 6195988B1364C39900B429B6 /* PBXTextBookmark */;
-		};
-		sourceControlManager = 61958D971364B65600B429B6 /* Source Control */;
-		userBuildSettings = {
-		};
-	};
-	61958D971364B65600B429B6 /* Source Control */ = {
-		isa = PBXSourceControlManager;
-		fallbackIsa = XCSourceControlManager;
-		isSCMEnabled = 0;
-		scmConfiguration = {
-			repositoryNamesForRoots = {
-				"" = "";
-			};
-		};
-	};
-	61958D981364B65600B429B6 /* Code sense */ = {
-		isa = PBXCodeSenseManager;
-		indexTemplatePath = "";
-	};
-	61958DA61364B72000B429B6 /* asm_arm.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 3375}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 959}";
-		};
-	};
-	61958DA71364B72000B429B6 /* backends.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 1845}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 955}";
-		};
-	};
-	61958DA81364B72000B429B6 /* block.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 6675}}";
-			sepNavSelRange = "{1055, 0}";
-			sepNavVisRange = "{999, 254}";
-		};
-	};
-	61958DA91364B72000B429B6 /* block.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 360}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 947}";
-		};
-	};
-	61958DAA1364B72000B429B6 /* codebook.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {523, 5745}}";
-			sepNavSelRange = "{9660, 0}";
-			sepNavVisRange = "{9524, 183}";
-		};
-	};
-	61958DAB1364B72000B429B6 /* codebook.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 1500}}";
-			sepNavSelRange = "{1021, 0}";
-			sepNavVisRange = "{841, 362}";
-		};
-	};
-	61958DAC1364B72000B429B6 /* codec_internal.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 1260}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 948}";
-		};
-	};
-	61958DAD1364B72000B429B6 /* config_types.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 330}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 981}";
-		};
-	};
-	61958DAE1364B72000B429B6 /* floor0.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 6375}}";
-			sepNavSelRange = "{1024, 0}";
-			sepNavVisRange = "{841, 306}";
-		};
-	};
-	61958DAF1364B72000B429B6 /* floor1.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 6825}}";
-			sepNavSelRange = "{1030, 0}";
-			sepNavVisRange = "{841, 306}";
-		};
-	};
-	61958DB01364B72000B429B6 /* info.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {720, 5775}}";
-			sepNavSelRange = "{9662, 16}";
-			sepNavVisRange = "{9466, 251}";
-		};
-	};
-	61958DB11364B72000B429B6 /* ivorbiscodec.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {530, 3345}}";
-			sepNavSelRange = "{6742, 0}";
-			sepNavVisRange = "{2442, 429}";
-		};
-	};
-	61958DB21364B72000B429B6 /* ivorbisfile.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 1860}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 985}";
-		};
-	};
-	61958DB31364B72000B429B6 /* lsp_lookup.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 2055}}";
-			sepNavSelRange = "{1001, 0}";
-			sepNavVisRange = "{841, 277}";
-		};
-	};
-	61958DB41364B72000B429B6 /* mapping0.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 4770}}";
-			sepNavSelRange = "{1051, 0}";
-			sepNavVisRange = "{885, 281}";
-		};
-	};
-	61958DB51364B72000B429B6 /* mdct_lookup.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 8190}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 946}";
-		};
-	};
-	61958DB71364B72000B429B6 /* mdct.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 555}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 970}";
-		};
-	};
-	61958DB81364B72000B429B6 /* misc.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 3450}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 958}";
-		};
-	};
-	61958DB91364B72000B429B6 /* os.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 795}}";
-			sepNavSelRange = "{1028, 0}";
-			sepNavVisRange = "{869, 301}";
-		};
-	};
-	61958DBC1364B72000B429B6 /* res012.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 5490}}";
-			sepNavSelRange = "{1041, 0}";
-			sepNavVisRange = "{894, 280}";
-		};
-	};
-	61958DBD1364B72000B429B6 /* sharedbook.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 6540}}";
-			sepNavSelRange = "{1032, 0}";
-			sepNavVisRange = "{841, 329}";
-		};
-	};
-	61958DBE1364B72000B429B6 /* synthesis.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {537, 1875}}";
-			sepNavSelRange = "{1726, 16}";
-			sepNavVisRange = "{1568, 333}";
-		};
-	};
-	61958DBF1364B72000B429B6 /* vorbisfile.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {621, 28110}}";
-			sepNavSelRange = "{2961, 0}";
-			sepNavVisRange = "{2767, 451}";
-		};
-	};
-	61958DC01364B72000B429B6 /* window_lookup.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {502, 31515}}";
-			sepNavSelRange = "{953, 0}";
-			sepNavVisRange = "{825, 415}";
-		};
-	};
-	61958DC11364B72000B429B6 /* window.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 990}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 941}";
-		};
-	};
-	61958DFB1364B84300B429B6 /* os_types.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 1095}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 981}";
-		};
-	};
-	61958E001364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DA61364B72000B429B6 /* asm_arm.h */;
-		name = "asm_arm.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 959;
-		vrLoc = 0;
-	};
-	61958E011364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DA71364B72000B429B6 /* backends.h */;
-		name = "backends.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 955;
-		vrLoc = 0;
-	};
-	61958E021364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DA91364B72000B429B6 /* block.h */;
-		name = "block.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 947;
-		vrLoc = 0;
-	};
-	61958E031364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DAB1364B72000B429B6 /* codebook.h */;
-		name = "codebook.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 957;
-		vrLoc = 0;
-	};
-	61958E041364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DAC1364B72000B429B6 /* codec_internal.h */;
-		name = "codec_internal.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 948;
-		vrLoc = 0;
-	};
-	61958E051364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DAD1364B72000B429B6 /* config_types.h */;
-		name = "config_types.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 981;
-		vrLoc = 0;
-	};
-	61958E061364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DB11364B72000B429B6 /* ivorbiscodec.h */;
-		name = "ivorbiscodec.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 948;
-		vrLoc = 0;
-	};
-	61958E071364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DB21364B72000B429B6 /* ivorbisfile.h */;
-		name = "ivorbisfile.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 985;
-		vrLoc = 0;
-	};
-	61958E081364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DB31364B72000B429B6 /* lsp_lookup.h */;
-		name = "lsp_lookup.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 937;
-		vrLoc = 0;
-	};
-	61958E091364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DB51364B72000B429B6 /* mdct_lookup.h */;
-		name = "mdct_lookup.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 946;
-		vrLoc = 0;
-	};
-	61958E0A1364B86F00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DB71364B72000B429B6 /* mdct.h */;
-		name = "mdct.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 970;
-		vrLoc = 0;
-	};
-	61958E0D1364B89700B429B6 /* ogg.h */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1022, 3000}}";
-			sepNavSelRange = "{1934, 14}";
-			sepNavVisRange = "{490, 1211}";
-			sepNavWindowFrame = "{{84, 265}, {1081, 845}}";
-		};
-	};
-	61958E331364BA7600B429B6 /* info.c */ = {
-		isa = PBXFileReference;
-		lastKnownFileType = sourcecode.c.c;
-		name = info.c;
-		path = /Users/vittorio/hedgewars/trunk/misc/libtremor/info.c;
-		sourceTree = "<absolute>";
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {720, 5520}}";
-			sepNavSelRange = "{11179, 0}";
-			sepNavVisRange = "{9060, 390}";
-		};
-	};
-	61958E371364BA9400B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DB81364B72000B429B6 /* misc.h */;
-		name = "misc.h: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 958;
-		vrLoc = 0;
-	};
-	61958E391364BA9400B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958E0D1364B89700B429B6 /* ogg.h */;
-		name = "ogg.h: 4";
-		rLen = 66;
-		rLoc = 212;
-		rType = 0;
-		vrLen = 949;
-		vrLoc = 0;
-	};
-	619598381364BDCC00B429B6 /* framing.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {1022, 16905}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{893, 1379}";
-			sepNavWindowFrame = "{{15, 328}, {1081, 845}}";
-		};
-	};
-	619598401364BE7F00B429B6 /* bitwise.c */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {519, 3690}}";
-			sepNavSelRange = "{0, 0}";
-			sepNavVisRange = "{0, 975}";
-		};
-	};
-	619598471364BEBD00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958E331364BA7600B429B6 /* info.c */;
-		name = "info.c: 25";
-		rLen = 0;
-		rLoc = 1164;
-		rType = 0;
-		vrLen = 396;
-		vrLoc = 905;
-	};
-	619598491364BEBD00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DC11364B72000B429B6 /* window.c */;
-		name = "window.c: 1";
-		rLen = 0;
-		rLoc = 0;
-		rType = 0;
-		vrLen = 941;
-		vrLoc = 0;
-	};
-	6195985D1364BF4300B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = AA747D9E0F9514B9006C5449 /* Tremor_Prefix.pch */;
-		name = "Tremor_Prefix.pch: 7";
-		rLen = 0;
-		rLoc = 181;
-		rType = 0;
-		vrLen = 188;
-		vrLoc = 0;
-	};
-	619598801364C1FD00B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DA81364B72000B429B6 /* block.c */;
-		name = "block.c: 21";
-		rLen = 0;
-		rLoc = 1055;
-		rType = 0;
-		vrLen = 265;
-		vrLoc = 999;
-	};
-	6195988B1364C39900B429B6 /* PBXTextBookmark */ = {
-		isa = PBXTextBookmark;
-		fRef = 61958DA81364B72000B429B6 /* block.c */;
-		name = "block.c: 21";
-		rLen = 0;
-		rLoc = 1055;
-		rType = 0;
-		vrLen = 254;
-		vrLoc = 999;
-	};
-	AA747D9E0F9514B9006C5449 /* Tremor_Prefix.pch */ = {
-		uiCtxt = {
-			sepNavIntBoundsRect = "{{0, 0}, {845, 237}}";
-			sepNavSelRange = "{181, 0}";
-			sepNavVisRange = "{0, 188}";
-			sepNavWindowFrame = "{{199, 160}, {1081, 845}}";
-		};
-	};
-	D2AAC07D0554694100DB518D /* libTremor */ = {
-		activeExec = 0;
-	};
-}
--- a/misc/libtremor/Xcode/Tremor.xcodeproj/project.pbxproj	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 45;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		61958DC31364B72000B429B6 /* asm_arm.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DA61364B72000B429B6 /* asm_arm.h */; };
-		61958DC41364B72000B429B6 /* backends.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DA71364B72000B429B6 /* backends.h */; };
-		61958DC51364B72000B429B6 /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DA81364B72000B429B6 /* block.c */; };
-		61958DC61364B72000B429B6 /* block.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DA91364B72000B429B6 /* block.h */; };
-		61958DC71364B72000B429B6 /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DAA1364B72000B429B6 /* codebook.c */; };
-		61958DC81364B72000B429B6 /* codebook.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DAB1364B72000B429B6 /* codebook.h */; };
-		61958DC91364B72000B429B6 /* codec_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DAC1364B72000B429B6 /* codec_internal.h */; };
-		61958DCA1364B72000B429B6 /* config_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DAD1364B72000B429B6 /* config_types.h */; };
-		61958DCB1364B72000B429B6 /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DAE1364B72000B429B6 /* floor0.c */; };
-		61958DCC1364B72000B429B6 /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DAF1364B72000B429B6 /* floor1.c */; };
-		61958DCD1364B72000B429B6 /* info.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DB01364B72000B429B6 /* info.c */; };
-		61958DCE1364B72000B429B6 /* ivorbiscodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB11364B72000B429B6 /* ivorbiscodec.h */; };
-		61958DCF1364B72000B429B6 /* ivorbisfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB21364B72000B429B6 /* ivorbisfile.h */; };
-		61958DD01364B72000B429B6 /* lsp_lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB31364B72000B429B6 /* lsp_lookup.h */; };
-		61958DD11364B72000B429B6 /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DB41364B72000B429B6 /* mapping0.c */; };
-		61958DD21364B72000B429B6 /* mdct_lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB51364B72000B429B6 /* mdct_lookup.h */; };
-		61958DD31364B72000B429B6 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DB61364B72000B429B6 /* mdct.c */; };
-		61958DD41364B72000B429B6 /* mdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB71364B72000B429B6 /* mdct.h */; };
-		61958DD51364B72000B429B6 /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB81364B72000B429B6 /* misc.h */; };
-		61958DD61364B72000B429B6 /* os.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DB91364B72000B429B6 /* os.h */; };
-		61958DD71364B72000B429B6 /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DBA1364B72000B429B6 /* registry.c */; };
-		61958DD81364B72000B429B6 /* registry.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DBB1364B72000B429B6 /* registry.h */; };
-		61958DD91364B72000B429B6 /* res012.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DBC1364B72000B429B6 /* res012.c */; };
-		61958DDA1364B72000B429B6 /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DBD1364B72000B429B6 /* sharedbook.c */; };
-		61958DDB1364B72000B429B6 /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DBE1364B72000B429B6 /* synthesis.c */; };
-		61958DDC1364B72000B429B6 /* vorbisfile.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DBF1364B72000B429B6 /* vorbisfile.c */; };
-		61958DDD1364B72000B429B6 /* window_lookup.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DC01364B72000B429B6 /* window_lookup.h */; };
-		61958DDE1364B72000B429B6 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 61958DC11364B72000B429B6 /* window.c */; };
-		61958DDF1364B72000B429B6 /* window.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DC21364B72000B429B6 /* window.h */; };
-		61958DFC1364B84300B429B6 /* os_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958DFB1364B84300B429B6 /* os_types.h */; };
-		61958E0E1364B89700B429B6 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 61958E0D1364B89700B429B6 /* ogg.h */; };
-		619598391364BDCC00B429B6 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 619598381364BDCC00B429B6 /* framing.c */; };
-		619598411364BE7F00B429B6 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 619598401364BE7F00B429B6 /* bitwise.c */; };
-		AA747D9F0F9514B9006C5449 /* Tremor_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* Tremor_Prefix.pch */; };
-		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
-		61958DA61364B72000B429B6 /* asm_arm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asm_arm.h; path = ../asm_arm.h; sourceTree = SOURCE_ROOT; };
-		61958DA71364B72000B429B6 /* backends.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = backends.h; path = ../backends.h; sourceTree = SOURCE_ROOT; };
-		61958DA81364B72000B429B6 /* block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = block.c; path = ../block.c; sourceTree = SOURCE_ROOT; };
-		61958DA91364B72000B429B6 /* block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = block.h; path = ../block.h; sourceTree = SOURCE_ROOT; };
-		61958DAA1364B72000B429B6 /* codebook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = codebook.c; path = ../codebook.c; sourceTree = SOURCE_ROOT; };
-		61958DAB1364B72000B429B6 /* codebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = codebook.h; path = ../codebook.h; sourceTree = SOURCE_ROOT; };
-		61958DAC1364B72000B429B6 /* codec_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = codec_internal.h; path = ../codec_internal.h; sourceTree = SOURCE_ROOT; };
-		61958DAD1364B72000B429B6 /* config_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = config_types.h; path = ../config_types.h; sourceTree = SOURCE_ROOT; };
-		61958DAE1364B72000B429B6 /* floor0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = floor0.c; path = ../floor0.c; sourceTree = SOURCE_ROOT; };
-		61958DAF1364B72000B429B6 /* floor1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = floor1.c; path = ../floor1.c; sourceTree = SOURCE_ROOT; };
-		61958DB01364B72000B429B6 /* info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = info.c; path = ../info.c; sourceTree = SOURCE_ROOT; };
-		61958DB11364B72000B429B6 /* ivorbiscodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ivorbiscodec.h; path = ../ivorbiscodec.h; sourceTree = SOURCE_ROOT; };
-		61958DB21364B72000B429B6 /* ivorbisfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ivorbisfile.h; path = ../ivorbisfile.h; sourceTree = SOURCE_ROOT; };
-		61958DB31364B72000B429B6 /* lsp_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = lsp_lookup.h; path = ../lsp_lookup.h; sourceTree = SOURCE_ROOT; };
-		61958DB41364B72000B429B6 /* mapping0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mapping0.c; path = ../mapping0.c; sourceTree = SOURCE_ROOT; };
-		61958DB51364B72000B429B6 /* mdct_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdct_lookup.h; path = ../mdct_lookup.h; sourceTree = SOURCE_ROOT; };
-		61958DB61364B72000B429B6 /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mdct.c; path = ../mdct.c; sourceTree = SOURCE_ROOT; };
-		61958DB71364B72000B429B6 /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mdct.h; path = ../mdct.h; sourceTree = SOURCE_ROOT; };
-		61958DB81364B72000B429B6 /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = misc.h; path = ../misc.h; sourceTree = SOURCE_ROOT; };
-		61958DB91364B72000B429B6 /* os.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os.h; path = ../os.h; sourceTree = SOURCE_ROOT; };
-		61958DBA1364B72000B429B6 /* registry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = registry.c; path = ../registry.c; sourceTree = SOURCE_ROOT; };
-		61958DBB1364B72000B429B6 /* registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = registry.h; path = ../registry.h; sourceTree = SOURCE_ROOT; };
-		61958DBC1364B72000B429B6 /* res012.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = res012.c; path = ../res012.c; sourceTree = SOURCE_ROOT; };
-		61958DBD1364B72000B429B6 /* sharedbook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sharedbook.c; path = ../sharedbook.c; sourceTree = SOURCE_ROOT; };
-		61958DBE1364B72000B429B6 /* synthesis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = synthesis.c; path = ../synthesis.c; sourceTree = SOURCE_ROOT; };
-		61958DBF1364B72000B429B6 /* vorbisfile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vorbisfile.c; path = ../vorbisfile.c; sourceTree = SOURCE_ROOT; };
-		61958DC01364B72000B429B6 /* window_lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = window_lookup.h; path = ../window_lookup.h; sourceTree = SOURCE_ROOT; };
-		61958DC11364B72000B429B6 /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = window.c; path = ../window.c; sourceTree = SOURCE_ROOT; };
-		61958DC21364B72000B429B6 /* window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = window.h; path = ../window.h; sourceTree = SOURCE_ROOT; };
-		61958DFB1364B84300B429B6 /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = os_types.h; path = ../../../../Library/cocos2d/external/Tremor/os_types.h; sourceTree = SOURCE_ROOT; };
-		61958E0D1364B89700B429B6 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ogg.h; path = ../ogg.h; sourceTree = SOURCE_ROOT; };
-		619598381364BDCC00B429B6 /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = framing.c; path = ../framing.c; sourceTree = "<group>"; };
-		619598401364BE7F00B429B6 /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bitwise.c; path = ../bitwise.c; sourceTree = "<group>"; };
-		AA747D9E0F9514B9006C5449 /* Tremor_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tremor_Prefix.pch; sourceTree = SOURCE_ROOT; };
-		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
-		D2AAC07E0554694100DB518D /* libTremor.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTremor.a; sourceTree = BUILT_PRODUCTS_DIR; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		D2AAC07C0554694100DB518D /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		034768DFFF38A50411DB9C8B /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				D2AAC07E0554694100DB518D /* libTremor.a */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		0867D691FE84028FC02AAC07 /* Tremor */ = {
-			isa = PBXGroup;
-			children = (
-				08FB77AEFE84172EC02AAC07 /* Sources */,
-				32C88DFF0371C24200C91783 /* Other Sources */,
-				0867D69AFE84028FC02AAC07 /* Frameworks */,
-				034768DFFF38A50411DB9C8B /* Products */,
-			);
-			name = Tremor;
-			sourceTree = "<group>";
-		};
-		0867D69AFE84028FC02AAC07 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				AACBBE490F95108600F1A2B1 /* Foundation.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-		08FB77AEFE84172EC02AAC07 /* Sources */ = {
-			isa = PBXGroup;
-			children = (
-				619598401364BE7F00B429B6 /* bitwise.c */,
-				619598381364BDCC00B429B6 /* framing.c */,
-				61958DA61364B72000B429B6 /* asm_arm.h */,
-				61958DA71364B72000B429B6 /* backends.h */,
-				61958DA81364B72000B429B6 /* block.c */,
-				61958DA91364B72000B429B6 /* block.h */,
-				61958DAA1364B72000B429B6 /* codebook.c */,
-				61958DAB1364B72000B429B6 /* codebook.h */,
-				61958DAC1364B72000B429B6 /* codec_internal.h */,
-				61958DAD1364B72000B429B6 /* config_types.h */,
-				61958DAE1364B72000B429B6 /* floor0.c */,
-				61958DAF1364B72000B429B6 /* floor1.c */,
-				61958DB01364B72000B429B6 /* info.c */,
-				61958DB11364B72000B429B6 /* ivorbiscodec.h */,
-				61958DB21364B72000B429B6 /* ivorbisfile.h */,
-				61958DB31364B72000B429B6 /* lsp_lookup.h */,
-				61958DB41364B72000B429B6 /* mapping0.c */,
-				61958DB51364B72000B429B6 /* mdct_lookup.h */,
-				61958DB61364B72000B429B6 /* mdct.c */,
-				61958DB71364B72000B429B6 /* mdct.h */,
-				61958DB81364B72000B429B6 /* misc.h */,
-				61958E0D1364B89700B429B6 /* ogg.h */,
-				61958DB91364B72000B429B6 /* os.h */,
-				61958DFB1364B84300B429B6 /* os_types.h */,
-				61958DBA1364B72000B429B6 /* registry.c */,
-				61958DBB1364B72000B429B6 /* registry.h */,
-				61958DBC1364B72000B429B6 /* res012.c */,
-				61958DBD1364B72000B429B6 /* sharedbook.c */,
-				61958DBE1364B72000B429B6 /* synthesis.c */,
-				61958DBF1364B72000B429B6 /* vorbisfile.c */,
-				61958DC01364B72000B429B6 /* window_lookup.h */,
-				61958DC11364B72000B429B6 /* window.c */,
-				61958DC21364B72000B429B6 /* window.h */,
-			);
-			name = Sources;
-			sourceTree = "<group>";
-		};
-		32C88DFF0371C24200C91783 /* Other Sources */ = {
-			isa = PBXGroup;
-			children = (
-				AA747D9E0F9514B9006C5449 /* Tremor_Prefix.pch */,
-			);
-			name = "Other Sources";
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXHeadersBuildPhase section */
-		D2AAC07A0554694100DB518D /* Headers */ = {
-			isa = PBXHeadersBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				AA747D9F0F9514B9006C5449 /* Tremor_Prefix.pch in Headers */,
-				61958DC31364B72000B429B6 /* asm_arm.h in Headers */,
-				61958DC41364B72000B429B6 /* backends.h in Headers */,
-				61958DC61364B72000B429B6 /* block.h in Headers */,
-				61958DC81364B72000B429B6 /* codebook.h in Headers */,
-				61958DC91364B72000B429B6 /* codec_internal.h in Headers */,
-				61958DCA1364B72000B429B6 /* config_types.h in Headers */,
-				61958DCE1364B72000B429B6 /* ivorbiscodec.h in Headers */,
-				61958DCF1364B72000B429B6 /* ivorbisfile.h in Headers */,
-				61958DD01364B72000B429B6 /* lsp_lookup.h in Headers */,
-				61958DD21364B72000B429B6 /* mdct_lookup.h in Headers */,
-				61958DD41364B72000B429B6 /* mdct.h in Headers */,
-				61958DD51364B72000B429B6 /* misc.h in Headers */,
-				61958DD61364B72000B429B6 /* os.h in Headers */,
-				61958DD81364B72000B429B6 /* registry.h in Headers */,
-				61958DDD1364B72000B429B6 /* window_lookup.h in Headers */,
-				61958DDF1364B72000B429B6 /* window.h in Headers */,
-				61958DFC1364B84300B429B6 /* os_types.h in Headers */,
-				61958E0E1364B89700B429B6 /* ogg.h in Headers */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXHeadersBuildPhase section */
-
-/* Begin PBXNativeTarget section */
-		D2AAC07D0554694100DB518D /* libTremor */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "libTremor" */;
-			buildPhases = (
-				D2AAC07A0554694100DB518D /* Headers */,
-				D2AAC07B0554694100DB518D /* Sources */,
-				D2AAC07C0554694100DB518D /* Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = libTremor;
-			productName = Tremor;
-			productReference = D2AAC07E0554694100DB518D /* libTremor.a */;
-			productType = "com.apple.product-type.library.static";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		0867D690FE84028FC02AAC07 /* Project object */ = {
-			isa = PBXProject;
-			buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Tremor" */;
-			compatibilityVersion = "Xcode 3.1";
-			developmentRegion = English;
-			hasScannedForEncodings = 1;
-			knownRegions = (
-				English,
-				Japanese,
-				French,
-				German,
-			);
-			mainGroup = 0867D691FE84028FC02AAC07 /* Tremor */;
-			productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				D2AAC07D0554694100DB518D /* libTremor */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
-		D2AAC07B0554694100DB518D /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				619598411364BE7F00B429B6 /* bitwise.c in Sources */,
-				61958DC51364B72000B429B6 /* block.c in Sources */,
-				61958DC71364B72000B429B6 /* codebook.c in Sources */,
-				619598391364BDCC00B429B6 /* framing.c in Sources */,
-				61958DCB1364B72000B429B6 /* floor0.c in Sources */,
-				61958DCC1364B72000B429B6 /* floor1.c in Sources */,
-				61958DCD1364B72000B429B6 /* info.c in Sources */,
-				61958DD11364B72000B429B6 /* mapping0.c in Sources */,
-				61958DD31364B72000B429B6 /* mdct.c in Sources */,
-				61958DD71364B72000B429B6 /* registry.c in Sources */,
-				61958DD91364B72000B429B6 /* res012.c in Sources */,
-				61958DDA1364B72000B429B6 /* sharedbook.c in Sources */,
-				61958DDB1364B72000B429B6 /* synthesis.c in Sources */,
-				61958DDC1364B72000B429B6 /* vorbisfile.c in Sources */,
-				61958DDE1364B72000B429B6 /* window.c in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		1DEB921F08733DC00010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				COPY_PHASE_STRIP = NO;
-				DSTROOT = /tmp/Tremor.dst;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_ENABLE_FIX_AND_CONTINUE = YES;
-				GCC_MODEL_TUNING = G5;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Tremor_Prefix.pch;
-				INSTALL_PATH = /usr/local/lib;
-				PRODUCT_NAME = Tremor;
-			};
-			name = Debug;
-		};
-		1DEB922008733DC00010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				DSTROOT = /tmp/Tremor.dst;
-				GCC_MODEL_TUNING = G5;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = Tremor_Prefix.pch;
-				INSTALL_PATH = /usr/local/lib;
-				PRODUCT_NAME = Tremor;
-			};
-			name = Release;
-		};
-		1DEB922308733DC00010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_THUMB_SUPPORT = NO;
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 4.0;
-				OTHER_LDFLAGS = "-ObjC";
-				PREBINDING = NO;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		1DEB922408733DC00010E9CD /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
-				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_FAST_MATH = YES;
-				GCC_THUMB_SUPPORT = NO;
-				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 4.0;
-				OTHER_LDFLAGS = "-ObjC";
-				PREBINDING = NO;
-				SDKROOT = iphoneos;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "libTremor" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB921F08733DC00010E9CD /* Debug */,
-				1DEB922008733DC00010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "Tremor" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				1DEB922308733DC00010E9CD /* Debug */,
-				1DEB922408733DC00010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 0867D690FE84028FC02AAC07 /* Project object */;
-}
--- a/misc/libtremor/Xcode/Tremor_Prefix.pch	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-//
-// Prefix header for all source files of the 'CocoaTouchStaticLibrary' target in the 'CocoaTouchStaticLibrary' project.
-//
-
-#ifdef __OBJC__
-    #import <Foundation/Foundation.h>
-#endif
--- a/misc/libtremor/asm_arm.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: arm7 and later wide math functions
-
- ********************************************************************/
-
-#ifdef _ARM_ASSEM_
-
-#if !defined(_V_WIDE_MATH) && !defined(_LOW_ACCURACY_)
-#define _V_WIDE_MATH
-
-static inline ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) {
-  int lo,hi;
-  asm volatile("smull\t%0, %1, %2, %3"
-               : "=&r"(lo),"=&r"(hi)
-               : "%r"(x),"r"(y)
-	       : "cc");
-  return(hi);
-}
-
-static inline ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) {
-  return MULT32(x,y)<<1;
-}
-
-static inline ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) {
-  int lo,hi;
-  asm volatile("smull	%0, %1, %2, %3\n\t"
-	       "movs	%0, %0, lsr #15\n\t"
-	       "adc	%1, %0, %1, lsl #17\n\t"
-               : "=&r"(lo),"=&r"(hi)
-               : "%r"(x),"r"(y)
-	       : "cc");
-  return(hi);
-}
-
-#define MB() asm volatile ("" : : : "memory")
-
-static inline void XPROD32(ogg_int32_t  a, ogg_int32_t  b,
-			   ogg_int32_t  t, ogg_int32_t  v,
-			   ogg_int32_t *x, ogg_int32_t *y)
-{
-  int x1, y1, l;
-  asm(	"smull	%0, %1, %4, %6\n\t"
-	"smlal	%0, %1, %5, %7\n\t"
-	"rsb	%3, %4, #0\n\t"
-	"smull	%0, %2, %5, %6\n\t"
-	"smlal	%0, %2, %3, %7"
-	: "=&r" (l), "=&r" (x1), "=&r" (y1), "=r" (a)
-	: "3" (a), "r" (b), "r" (t), "r" (v)
-	: "cc" );
-  *x = x1;
-  MB();
-  *y = y1;
-}
-
-static inline void XPROD31(ogg_int32_t  a, ogg_int32_t  b,
-			   ogg_int32_t  t, ogg_int32_t  v,
-			   ogg_int32_t *x, ogg_int32_t *y)
-{
-  int x1, y1, l;
-  asm(	"smull	%0, %1, %4, %6\n\t"
-	"smlal	%0, %1, %5, %7\n\t"
-	"rsb	%3, %4, #0\n\t"
-	"smull	%0, %2, %5, %6\n\t"
-	"smlal	%0, %2, %3, %7"
-	: "=&r" (l), "=&r" (x1), "=&r" (y1), "=r" (a)
-	: "3" (a), "r" (b), "r" (t), "r" (v)
-	: "cc" );
-  *x = x1 << 1;
-  MB();
-  *y = y1 << 1;
-}
-
-static inline void XNPROD31(ogg_int32_t  a, ogg_int32_t  b,
-			    ogg_int32_t  t, ogg_int32_t  v,
-			    ogg_int32_t *x, ogg_int32_t *y)
-{
-  int x1, y1, l;
-  asm(	"rsb	%2, %4, #0\n\t"
-	"smull	%0, %1, %3, %5\n\t"
-	"smlal	%0, %1, %2, %6\n\t"
-	"smull	%0, %2, %4, %5\n\t"
-	"smlal	%0, %2, %3, %6"
-	: "=&r" (l), "=&r" (x1), "=&r" (y1)
-	: "r" (a), "r" (b), "r" (t), "r" (v)
-	: "cc" );
-  *x = x1 << 1;
-  MB();
-  *y = y1 << 1;
-}
-
-#endif
-
-#ifndef _V_CLIP_MATH
-#define _V_CLIP_MATH
-
-static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) {
-  int tmp;
-  asm volatile("subs	%1, %0, #32768\n\t"
-	       "movpl	%0, #0x7f00\n\t"
-	       "orrpl	%0, %0, #0xff\n"
-	       "adds	%1, %0, #32768\n\t"
-	       "movmi	%0, #0x8000"
-	       : "+r"(x),"=r"(tmp)
-	       :
-	       : "cc");
-  return(x);
-}
-
-#endif
-
-#ifndef _V_LSP_MATH_ASM
-#define _V_LSP_MATH_ASM
-
-static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
-				ogg_int32_t *qexpp,
-				ogg_int32_t *ilsp,ogg_int32_t wi,
-				ogg_int32_t m){
-  
-  ogg_uint32_t qi=*qip,pi=*pip;
-  ogg_int32_t qexp=*qexpp;
-
-  asm("mov     r0,%3;"
-      "mov     r1,%5,asr#1;"
-      "add     r0,r0,r1,lsl#3;"
-      "1:"
-      
-      "ldmdb   r0!,{r1,r3};"
-      "subs    r1,r1,%4;"          //ilsp[j]-wi
-      "rsbmi   r1,r1,#0;"          //labs(ilsp[j]-wi)
-      "umull   %0,r2,r1,%0;"       //qi*=labs(ilsp[j]-wi)
-      
-      "subs    r1,r3,%4;"          //ilsp[j+1]-wi
-      "rsbmi   r1,r1,#0;"          //labs(ilsp[j+1]-wi)
-      "umull   %1,r3,r1,%1;"       //pi*=labs(ilsp[j+1]-wi)
-      
-      "cmn     r2,r3;"             // shift down 16?
-      "beq     0f;"
-      "add     %2,%2,#16;"
-      "mov     %0,%0,lsr #16;"
-      "orr     %0,%0,r2,lsl #16;"
-      "mov     %1,%1,lsr #16;"
-      "orr     %1,%1,r3,lsl #16;"
-      "0:"
-      "cmp     r0,%3;\n"
-      "bhi     1b;\n"
-      
-      // odd filter assymetry
-      "ands    r0,%5,#1;\n"
-      "beq     2f;\n"
-      "add     r0,%3,%5,lsl#2;\n"
-      
-      "ldr     r1,[r0,#-4];\n"
-      "mov     r0,#0x4000;\n"
-      
-      "subs    r1,r1,%4;\n"          //ilsp[j]-wi
-      "rsbmi   r1,r1,#0;\n"          //labs(ilsp[j]-wi)
-      "umull   %0,r2,r1,%0;\n"       //qi*=labs(ilsp[j]-wi)
-      "umull   %1,r3,r0,%1;\n"       //pi*=labs(ilsp[j+1]-wi)
-      
-      "cmn     r2,r3;\n"             // shift down 16?
-      "beq     2f;\n"
-      "add     %2,%2,#16;\n"
-      "mov     %0,%0,lsr #16;\n"
-      "orr     %0,%0,r2,lsl #16;\n"
-      "mov     %1,%1,lsr #16;\n"
-      "orr     %1,%1,r3,lsl #16;\n"
-      
-      //qi=(pi>>shift)*labs(ilsp[j]-wi);
-      //pi=(qi>>shift)*labs(ilsp[j+1]-wi);
-      //qexp+=shift;
-      
-      //}
-	 
-      /* normalize to max 16 sig figs */
-      "2:"
-      "mov     r2,#0;"
-      "orr     r1,%0,%1;"
-      "tst     r1,#0xff000000;"
-      "addne   r2,r2,#8;"
-      "movne   r1,r1,lsr #8;"
-      "tst     r1,#0x00f00000;"
-      "addne   r2,r2,#4;"
-      "movne   r1,r1,lsr #4;"
-      "tst     r1,#0x000c0000;"
-      "addne   r2,r2,#2;"
-      "movne   r1,r1,lsr #2;"
-      "tst     r1,#0x00020000;"
-      "addne   r2,r2,#1;"
-      "movne   r1,r1,lsr #1;"
-      "tst     r1,#0x00010000;"
-      "addne   r2,r2,#1;"
-      "mov     %0,%0,lsr r2;"
-      "mov     %1,%1,lsr r2;"
-      "add     %2,%2,r2;"
-      
-      : "+r"(qi),"+r"(pi),"+r"(qexp)
-      : "r"(ilsp),"r"(wi),"r"(m)
-      : "r0","r1","r2","r3","cc");
-  
-  *qip=qi;
-  *pip=pi;
-  *qexpp=qexp;
-}
-
-static inline void lsp_norm_asm(ogg_uint32_t *qip,ogg_int32_t *qexpp){
-
-  ogg_uint32_t qi=*qip;
-  ogg_int32_t qexp=*qexpp;
-
-  asm("tst     %0,#0x0000ff00;"
-      "moveq   %0,%0,lsl #8;"
-      "subeq   %1,%1,#8;"
-      "tst     %0,#0x0000f000;"
-      "moveq   %0,%0,lsl #4;"
-      "subeq   %1,%1,#4;"
-      "tst     %0,#0x0000c000;"
-      "moveq   %0,%0,lsl #2;"
-      "subeq   %1,%1,#2;"
-      "tst     %0,#0x00008000;"
-      "moveq   %0,%0,lsl #1;"
-      "subeq   %1,%1,#1;"
-      : "+r"(qi),"+r"(qexp)
-      :
-      : "cc");
-  *qip=qi;
-  *qexpp=qexp;
-}
-
-#endif
-#endif
-
--- a/misc/libtremor/autogen.sh	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-#!/bin/sh
-# Run this to set up the build system: configure, makefiles, etc.
-# (based on the version in enlightenment's cvs)
-
-package="vorbisdec"
-
-olddir=`pwd`
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-cd "$srcdir"
-DIE=0
-
-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
-}
-
-VERSIONGREP="sed -e s/.*[^0-9\.]\([0-9]\.[0-9]\).*/\1/"
-VERSIONMKINT="sed -e s/[^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... "
-    for am in automake-$AM_NEEDED automake$AM_NEEDED automake; do
-      ($am --version < /dev/null > /dev/null 2>&1) || continue
-      ver=`$am --version < /dev/null | head -n 1 | $VERSIONGREP | $VERSIONMKINT`
-      verneeded=`echo $AM_NEEDED | $VERSIONMKINT`
-      if test $ver -ge $verneeded; 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; do
-      ($ac --version < /dev/null > /dev/null 2>&1) || continue
-      ver=`$ac --version < /dev/null | head -n 1 | $VERSIONGREP | $VERSIONMKINT`
-      verneeded=`echo $AM_NEEDED | $VERSIONMKINT`
-      if test $ver -ge $verneeded; 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
-
-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
-}
-
-if test "$DIE" -eq 1; then
-        exit 1
-fi
-
-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
--- a/misc/libtremor/backends.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: backend and mapping structures
-
- ********************************************************************/
-
-/* this is exposed up here because we need it for static modes.
-   Lookups for each backend aren't exposed because there's no reason
-   to do so */
-
-#ifndef _vorbis_backend_h_
-#define _vorbis_backend_h_
-
-#include "codec_internal.h"
-
-/* this would all be simpler/shorter with templates, but.... */
-/* Transform backend generic *************************************/
-
-/* only mdct right now.  Flesh it out more if we ever transcend mdct
-   in the transform domain */
-
-/* Floor backend generic *****************************************/
-typedef struct{
-  vorbis_info_floor     *(*unpack)(vorbis_info *,oggpack_buffer *);
-  vorbis_look_floor     *(*look)  (vorbis_dsp_state *,vorbis_info_mode *,
-				   vorbis_info_floor *);
-  void (*free_info) (vorbis_info_floor *);
-  void (*free_look) (vorbis_look_floor *);
-  void *(*inverse1)  (struct vorbis_block *,vorbis_look_floor *);
-  int   (*inverse2)  (struct vorbis_block *,vorbis_look_floor *,
-		     void *buffer,ogg_int32_t *);
-} vorbis_func_floor;
-
-typedef struct{
-  int   order;
-  long  rate;
-  long  barkmap;
-
-  int   ampbits;
-  int   ampdB;
-
-  int   numbooks; /* <= 16 */
-  int   books[16];
-
-} vorbis_info_floor0;
-
-#define VIF_POSIT 63
-#define VIF_CLASS 16
-#define VIF_PARTS 31
-typedef struct{
-  int   partitions;                /* 0 to 31 */
-  int   partitionclass[VIF_PARTS]; /* 0 to 15 */
-
-  int   class_dim[VIF_CLASS];        /* 1 to 8 */
-  int   class_subs[VIF_CLASS];       /* 0,1,2,3 (bits: 1<<n poss) */
-  int   class_book[VIF_CLASS];       /* subs ^ dim entries */
-  int   class_subbook[VIF_CLASS][8]; /* [VIF_CLASS][subs] */
-
-
-  int   mult;                      /* 1 2 3 or 4 */
-  int   postlist[VIF_POSIT+2];    /* first two implicit */
-
-} vorbis_info_floor1;
-
-/* Residue backend generic *****************************************/
-typedef struct{
-  vorbis_info_residue *(*unpack)(vorbis_info *,oggpack_buffer *);
-  vorbis_look_residue *(*look)  (vorbis_dsp_state *,vorbis_info_mode *,
-				 vorbis_info_residue *);
-  void (*free_info)    (vorbis_info_residue *);
-  void (*free_look)    (vorbis_look_residue *);
-  int  (*inverse)      (struct vorbis_block *,vorbis_look_residue *,
-			ogg_int32_t **,int *,int);
-} vorbis_func_residue;
-
-typedef struct vorbis_info_residue0{
-/* block-partitioned VQ coded straight residue */
-  long  begin;
-  long  end;
-
-  /* first stage (lossless partitioning) */
-  int    grouping;         /* group n vectors per partition */
-  int    partitions;       /* possible codebooks for a partition */
-  int    groupbook;        /* huffbook for partitioning */
-  int    secondstages[64]; /* expanded out to pointers in lookup */
-  int    booklist[256];    /* list of second stage books */
-} vorbis_info_residue0;
-
-/* Mapping backend generic *****************************************/
-typedef struct{
-  vorbis_info_mapping *(*unpack)(vorbis_info *,oggpack_buffer *);
-  vorbis_look_mapping *(*look)  (vorbis_dsp_state *,vorbis_info_mode *,
-				 vorbis_info_mapping *);
-  void (*free_info)    (vorbis_info_mapping *);
-  void (*free_look)    (vorbis_look_mapping *);
-  int  (*inverse)      (struct vorbis_block *vb,vorbis_look_mapping *);
-} vorbis_func_mapping;
-
-typedef struct vorbis_info_mapping0{
-  int   submaps;  /* <= 16 */
-  int   chmuxlist[256];   /* up to 256 channels in a Vorbis stream */
-
-  int   floorsubmap[16];   /* [mux] submap to floors */
-  int   residuesubmap[16]; /* [mux] submap to residue */
-
-  int   psy[2]; /* by blocktype; impulse/padding for short,
-                   transition/normal for long */
-
-  int   coupling_steps;
-  int   coupling_mag[256];
-  int   coupling_ang[256];
-} vorbis_info_mapping0;
-
-#endif
-
-
-
-
-
--- a/misc/libtremor/bitwise.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
-  function: packing variable sized words into an octet stream
-
- ********************************************************************/
-
-/* We're 'LSb' endian; if we write a word but read individual bits,
-   then we'll read the lsb first */
-
-#include <string.h>
-#include <stdlib.h>
-#include "ogg.h"
-
-static unsigned long mask[]=
-{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f,
- 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff,
- 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff,
- 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff,
- 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff,
- 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff,
- 0x3fffffff,0x7fffffff,0xffffffff };
-
-/* mark read process as having run off the end */
-static void _adv_halt(oggpack_buffer *b){
-  b->headptr=b->head->buffer->data+b->head->begin+b->head->length;
-  b->headend=-1;
-  b->headbit=0;
-}
-
-/* spans forward, skipping as many bytes as headend is negative; if
-   headend is zero, simply finds next byte.  If we're up to the end
-   of the buffer, leaves headend at zero.  If we've read past the end,
-   halt the decode process. */
-static void _span(oggpack_buffer *b){
-  while(b->headend<1){
-    if(b->head->next){
-      b->count+=b->head->length;
-      b->head=b->head->next;
-      b->headptr=b->head->buffer->data+b->head->begin-b->headend;
-      b->headend+=b->head->length;
-    }else{
-      /* we've either met the end of decode, or gone past it. halt
-         only if we're past */
-      if(b->headend<0 || b->headbit)
-        /* read has fallen off the end */
-        _adv_halt(b);
-
-      break;
-    }
-  }
-}
-
-void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){
-  memset(b,0,sizeof(*b));
-
-  b->tail=b->head=r;
-  b->count=0;
-  b->headptr=b->head->buffer->data+b->head->begin;
-  b->headend=b->head->length;
-  _span(b);
-}
-
-#define _lookspan()   while(!end){\
-                        head=head->next;\
-                        if(!head) return -1;\
-                        ptr=head->buffer->data + head->begin;\
-                        end=head->length;\
-                      }
-
-/* Read in bits without advancing the bitptr; bits <= 32 */
-long oggpack_look(oggpack_buffer *b,int bits){
-  unsigned long m=mask[bits];
-  unsigned long ret=-1;
-
-  bits+=b->headbit;
-
-  if(bits >= b->headend<<3){
-    int            end=b->headend;
-    unsigned char *ptr=b->headptr;
-    ogg_reference *head=b->head;
-
-    if(end<0)return -1;
-
-    if(bits){
-      _lookspan();
-      ret=*ptr++>>b->headbit;
-      if(bits>8){
-        --end;
-        _lookspan();
-        ret|=*ptr++<<(8-b->headbit);
-        if(bits>16){
-          --end;
-          _lookspan();
-          ret|=*ptr++<<(16-b->headbit);
-          if(bits>24){
-            --end;
-            _lookspan();
-            ret|=*ptr++<<(24-b->headbit);
-            if(bits>32 && b->headbit){
-              --end;
-              _lookspan();
-              ret|=*ptr<<(32-b->headbit);
-            }
-          }
-        }
-      }
-    }
-
-  }else{
-
-    /* make this a switch jump-table */
-    ret=b->headptr[0]>>b->headbit;
-    if(bits>8){
-      ret|=b->headptr[1]<<(8-b->headbit);  
-      if(bits>16){
-        ret|=b->headptr[2]<<(16-b->headbit);  
-        if(bits>24){
-          ret|=b->headptr[3]<<(24-b->headbit);  
-          if(bits>32 && b->headbit)
-            ret|=b->headptr[4]<<(32-b->headbit);
-        }
-      }
-    }
-  }
-
-  ret&=m;
-  return ret;
-}
-
-/* limited to 32 at a time */
-void oggpack_adv(oggpack_buffer *b,int bits){
-  bits+=b->headbit;
-  b->headbit=bits&7;
-  b->headptr+=bits/8;
-  if((b->headend-=bits/8)<1)_span(b);
-}
-
-/* spans forward and finds next byte.  Never halts */
-static void _span_one(oggpack_buffer *b){
-  while(b->headend<1){
-    if(b->head->next){
-      b->count+=b->head->length;
-      b->head=b->head->next;
-      b->headptr=b->head->buffer->data+b->head->begin;
-      b->headend=b->head->length;
-    }else
-      break;
-  }
-}
-
-static int _halt_one(oggpack_buffer *b){
-  if(b->headend<1){
-    _adv_halt(b);
-    return -1;
-  }
-  return 0;
-}
-
-int oggpack_eop(oggpack_buffer *b){
-  if(b->headend<0)return -1;
-  return 0;
-}
-
-/* bits <= 32 */
-long oggpack_read(oggpack_buffer *b,int bits){
-  unsigned long m=mask[bits];
-  ogg_uint32_t ret=-1;
-
-  bits+=b->headbit;
-
-  if(bits >= b->headend<<3){
-
-    if(b->headend<0)return -1;
-
-    if(bits){
-      if (_halt_one(b)) return -1;
-      ret=*b->headptr>>b->headbit;
-
-      if(bits>=8){
-        ++b->headptr;
-        --b->headend;
-        _span_one(b);
-        if(bits>8){
-          if (_halt_one(b)) return -1;
-          ret|=*b->headptr<<(8-b->headbit);
-
-          if(bits>=16){
-            ++b->headptr;
-            --b->headend;
-            _span_one(b);
-            if(bits>16){
-              if (_halt_one(b)) return -1;
-              ret|=*b->headptr<<(16-b->headbit);
-
-              if(bits>=24){
-                ++b->headptr;
-                --b->headend;
-                _span_one(b);
-                if(bits>24){
-                  if (_halt_one(b)) return -1;
-                  ret|=*b->headptr<<(24-b->headbit);
-
-                  if(bits>=32){
-                    ++b->headptr;
-                    --b->headend;
-                    _span_one(b);
-                    if(bits>32){
-                      if (_halt_one(b)) return -1;
-                      if(b->headbit)ret|=*b->headptr<<(32-b->headbit);
-
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-  }else{
-
-    ret=b->headptr[0]>>b->headbit;
-    if(bits>8){
-      ret|=b->headptr[1]<<(8-b->headbit);
-      if(bits>16){
-        ret|=b->headptr[2]<<(16-b->headbit);
-        if(bits>24){
-          ret|=b->headptr[3]<<(24-b->headbit);
-          if(bits>32 && b->headbit){
-            ret|=b->headptr[4]<<(32-b->headbit);
-          }
-        }
-      }
-    }
-
-    b->headptr+=bits/8;
-    b->headend-=bits/8;
-  }
-
-  ret&=m;
-  b->headbit=bits&7;
-  return ret;
-}
-
-long oggpack_bytes(oggpack_buffer *b){
-  return(b->count+b->headptr-b->head->buffer->data-b->head->begin+
-         (b->headbit+7)/8);
-}
-
-long oggpack_bits(oggpack_buffer *b){
-  return((b->count+b->headptr-b->head->buffer->data-b->head->begin)*8+
-         b->headbit);
-}
-
--- a/misc/libtremor/block.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,453 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: PCM data vector blocking, windowing and dis/reassembly
-
- ********************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "ogg.h"
-#include "ivorbiscodec.h"
-#include "codec_internal.h"
-
-#include "window.h"
-#include "registry.h"
-#include "misc.h"
-
-static int ilog(unsigned int v){
-  int ret=0;
-  if(v)--v;
-  while(v){
-    ret++;
-    v>>=1;
-  }
-  return(ret);
-}
-
-/* pcm accumulator examples (not exhaustive):
-
- <-------------- lW ---------------->
-                   <--------------- W ---------------->
-:            .....|.....       _______________         |
-:        .'''     |     '''_---      |       |\        |
-:.....'''         |_____--- '''......|       | \_______|
-:.................|__________________|_______|__|______|
-                  |<------ Sl ------>|      > Sr <     |endW
-                  |beginSl           |endSl  |  |endSr
-                  |beginW            |endlW  |beginSr
-
-
-                      |< lW >|
-                   <--------------- W ---------------->
-                  |   |  ..  ______________            |
-                  |   | '  `/        |     ---_        |
-                  |___.'___/`.       |         ---_____|
-                  |_______|__|_______|_________________|
-                  |      >|Sl|<      |<------ Sr ----->|endW
-                  |       |  |endSl  |beginSr          |endSr
-                  |beginW |  |endlW
-                  mult[0] |beginSl                     mult[n]
-
- <-------------- lW ----------------->
-                          |<--W-->|
-:            ..............  ___  |   |
-:        .'''             |`/   \ |   |
-:.....'''                 |/`....\|...|
-:.........................|___|___|___|
-                          |Sl |Sr |endW
-                          |   |   |endSr
-                          |   |beginSr
-                          |   |endSl
-			  |beginSl
-			  |beginW
-*/
-
-/* block abstraction setup *********************************************/
-
-#ifndef WORD_ALIGN
-#define WORD_ALIGN 8
-#endif
-
-int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){
-  memset(vb,0,sizeof(*vb));
-  vb->vd=v;
-  vb->localalloc=0;
-  vb->localstore=NULL;
-
-  return(0);
-}
-
-void *_vorbis_block_alloc(vorbis_block *vb,long bytes){
-  bytes=(bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1);
-  if(bytes+vb->localtop>vb->localalloc){
-    /* can't just _ogg_realloc... there are outstanding pointers */
-    if(vb->localstore){
-      struct alloc_chain *link=(struct alloc_chain *)_ogg_malloc(sizeof(*link));
-      vb->totaluse+=vb->localtop;
-      link->next=vb->reap;
-      link->ptr=vb->localstore;
-      vb->reap=link;
-    }
-    /* highly conservative */
-    vb->localalloc=bytes;
-    vb->localstore=_ogg_malloc(vb->localalloc);
-    vb->localtop=0;
-  }
-  {
-    void *ret=(void *)(((char *)vb->localstore)+vb->localtop);
-    vb->localtop+=bytes;
-    return ret;
-  }
-}
-
-/* reap the chain, pull the ripcord */
-void _vorbis_block_ripcord(vorbis_block *vb){
-  /* reap the chain */
-  struct alloc_chain *reap=vb->reap;
-  while(reap){
-    struct alloc_chain *next=reap->next;
-    _ogg_free(reap->ptr);
-    memset(reap,0,sizeof(*reap));
-    _ogg_free(reap);
-    reap=next;
-  }
-  /* consolidate storage */
-  if(vb->totaluse){
-    vb->localstore=_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc);
-    vb->localalloc+=vb->totaluse;
-    vb->totaluse=0;
-  }
-
-  /* pull the ripcord */
-  vb->localtop=0;
-  vb->reap=NULL;
-}
-
-int vorbis_block_clear(vorbis_block *vb){
-  _vorbis_block_ripcord(vb);
-  if(vb->localstore)_ogg_free(vb->localstore);
-
-  memset(vb,0,sizeof(*vb));
-  return(0);
-}
-
-static int _vds_init(vorbis_dsp_state *v,vorbis_info *vi){
-  int i;
-  codec_setup_info *ci=(codec_setup_info *)vi->codec_setup;
-  private_state *b=NULL;
-
-  memset(v,0,sizeof(*v));
-  b=(private_state *)(v->backend_state=_ogg_calloc(1,sizeof(*b)));
-
-  v->vi=vi;
-  b->modebits=ilog(ci->modes);
-
-  /* Vorbis I uses only window type 0 */
-  b->window[0]=_vorbis_window(0,ci->blocksizes[0]/2);
-  b->window[1]=_vorbis_window(0,ci->blocksizes[1]/2);
-
-  /* finish the codebooks */
-  if(!ci->fullbooks){
-    ci->fullbooks=(codebook *)_ogg_calloc(ci->books,sizeof(*ci->fullbooks));
-    for(i=0;i<ci->books;i++){
-      vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i]);
-      /* decode codebooks are now standalone after init */
-      vorbis_staticbook_destroy(ci->book_param[i]);
-      ci->book_param[i]=NULL;
-    }
-  }
-
-  v->pcm_storage=ci->blocksizes[1];
-  v->pcm=(ogg_int32_t **)_ogg_malloc(vi->channels*sizeof(*v->pcm));
-  v->pcmret=(ogg_int32_t **)_ogg_malloc(vi->channels*sizeof(*v->pcmret));
-  for(i=0;i<vi->channels;i++)
-    v->pcm[i]=(ogg_int32_t *)_ogg_calloc(v->pcm_storage,sizeof(*v->pcm[i]));
-
-  /* all 1 (large block) or 0 (small block) */
-  /* explicitly set for the sake of clarity */
-  v->lW=0; /* previous window size */
-  v->W=0;  /* current window size */
-
-  /* initialize all the mapping/backend lookups */
-  b->mode=(vorbis_look_mapping **)_ogg_calloc(ci->modes,sizeof(*b->mode));
-  for(i=0;i<ci->modes;i++){
-    int mapnum=ci->mode_param[i]->mapping;
-    int maptype=ci->map_type[mapnum];
-    b->mode[i]=_mapping_P[maptype]->look(v,ci->mode_param[i],
-					 ci->map_param[mapnum]);
-  }
-  return(0);
-}
-
-int vorbis_synthesis_restart(vorbis_dsp_state *v){
-  vorbis_info *vi=v->vi;
-  codec_setup_info *ci;
-
-  if(!v->backend_state)return -1;
-  if(!vi)return -1;
-  ci=vi->codec_setup;
-  if(!ci)return -1;
-
-  v->centerW=ci->blocksizes[1]/2;
-  v->pcm_current=v->centerW;
-
-  v->pcm_returned=-1;
-  v->granulepos=-1;
-  v->sequence=-1;
-  ((private_state *)(v->backend_state))->sample_count=-1;
-
-  return(0);
-}
-
-int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){
-  _vds_init(v,vi);
-  vorbis_synthesis_restart(v);
-
-  return(0);
-}
-
-void vorbis_dsp_clear(vorbis_dsp_state *v){
-  int i;
-  if(v){
-    vorbis_info *vi=v->vi;
-    codec_setup_info *ci=(codec_setup_info *)(vi?vi->codec_setup:NULL);
-    private_state *b=(private_state *)v->backend_state;
-
-    if(v->pcm){
-      for(i=0;i<vi->channels;i++)
-	if(v->pcm[i])_ogg_free(v->pcm[i]);
-      _ogg_free(v->pcm);
-      if(v->pcmret)_ogg_free(v->pcmret);
-    }
-
-    /* free mode lookups; these are actually vorbis_look_mapping structs */
-    if(ci){
-      for(i=0;i<ci->modes;i++){
-	int mapnum=ci->mode_param[i]->mapping;
-	int maptype=ci->map_type[mapnum];
-	if(b && b->mode)_mapping_P[maptype]->free_look(b->mode[i]);
-      }
-    }
-
-    if(b){
-      if(b->mode)_ogg_free(b->mode);
-      _ogg_free(b);
-    }
-
-    memset(v,0,sizeof(*v));
-  }
-}
-
-/* Unlike in analysis, the window is only partially applied for each
-   block.  The time domain envelope is not yet handled at the point of
-   calling (as it relies on the previous block). */
-
-int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){
-  vorbis_info *vi=v->vi;
-  codec_setup_info *ci=(codec_setup_info *)vi->codec_setup;
-  private_state *b=v->backend_state;
-  int i,j;
-
-  if(v->pcm_current>v->pcm_returned  && v->pcm_returned!=-1)return(OV_EINVAL);
-
-  v->lW=v->W;
-  v->W=vb->W;
-  v->nW=-1;
-
-  if((v->sequence==-1)||
-     (v->sequence+1 != vb->sequence)){
-    v->granulepos=-1; /* out of sequence; lose count */
-    b->sample_count=-1;
-  }
-
-  v->sequence=vb->sequence;
-
-  if(vb->pcm){  /* no pcm to process if vorbis_synthesis_trackonly
-                   was called on block */
-    int n=ci->blocksizes[v->W]/2;
-    int n0=ci->blocksizes[0]/2;
-    int n1=ci->blocksizes[1]/2;
-
-    int thisCenter;
-    int prevCenter;
-
-    if(v->centerW){
-      thisCenter=n1;
-      prevCenter=0;
-    }else{
-      thisCenter=0;
-      prevCenter=n1;
-    }
-
-    /* v->pcm is now used like a two-stage double buffer.  We don't want
-       to have to constantly shift *or* adjust memory usage.  Don't
-       accept a new block until the old is shifted out */
-
-    /* overlap/add PCM */
-
-    for(j=0;j<vi->channels;j++){
-      /* the overlap/add section */
-      if(v->lW){
-	if(v->W){
-	  /* large/large */
-	  ogg_int32_t *pcm=v->pcm[j]+prevCenter;
-	  ogg_int32_t *p=vb->pcm[j];
-	  for(i=0;i<n1;i++)
-	    pcm[i]+=p[i];
-	}else{
-	  /* large/small */
-	  ogg_int32_t *pcm=v->pcm[j]+prevCenter+n1/2-n0/2;
-	  ogg_int32_t *p=vb->pcm[j];
-	  for(i=0;i<n0;i++)
-	    pcm[i]+=p[i];
-	}
-      }else{
-	if(v->W){
-	  /* small/large */
-	  ogg_int32_t *pcm=v->pcm[j]+prevCenter;
-	  ogg_int32_t *p=vb->pcm[j]+n1/2-n0/2;
-	  for(i=0;i<n0;i++)
-	    pcm[i]+=p[i];
-	  for(;i<n1/2+n0/2;i++)
-	    pcm[i]=p[i];
-	}else{
-	  /* small/small */
-	  ogg_int32_t *pcm=v->pcm[j]+prevCenter;
-	  ogg_int32_t *p=vb->pcm[j];
-	  for(i=0;i<n0;i++)
-	    pcm[i]+=p[i];
-	}
-      }
-
-      /* the copy section */
-      {
-	ogg_int32_t *pcm=v->pcm[j]+thisCenter;
-	ogg_int32_t *p=vb->pcm[j]+n;
-	for(i=0;i<n;i++)
-	  pcm[i]=p[i];
-      }
-    }
-
-    if(v->centerW)
-      v->centerW=0;
-    else
-      v->centerW=n1;
-
-    /* deal with initial packet state; we do this using the explicit
-       pcm_returned==-1 flag otherwise we're sensitive to first block
-       being short or long */
-
-    if(v->pcm_returned==-1){
-      v->pcm_returned=thisCenter;
-      v->pcm_current=thisCenter;
-    }else{
-      v->pcm_returned=prevCenter;
-      v->pcm_current=prevCenter+
-	ci->blocksizes[v->lW]/4+
-	ci->blocksizes[v->W]/4;
-    }
-
-  }
-
-  /* track the frame number... This is for convenience, but also
-     making sure our last packet doesn't end with added padding.  If
-     the last packet is partial, the number of samples we'll have to
-     return will be past the vb->granulepos.
-     
-     This is not foolproof!  It will be confused if we begin
-     decoding at the last page after a seek or hole.  In that case,
-     we don't have a starting point to judge where the last frame
-     is.  For this reason, vorbisfile will always try to make sure
-     it reads the last two marked pages in proper sequence */
-
-  if(b->sample_count==-1){
-    b->sample_count=0;
-  }else{
-    b->sample_count+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4;
-  }
-
-  if(v->granulepos==-1){
-    if(vb->granulepos!=-1){ /* only set if we have a position to set to */
-
-      v->granulepos=vb->granulepos;
-
-      /* is this a short page? */
-      if(b->sample_count>v->granulepos){
-	/* corner case; if this is both the first and last audio page,
-	   then spec says the end is cut, not beginning */
-	if(vb->eofflag){
-	  /* trim the end */
-	  /* no preceeding granulepos; assume we started at zero (we'd
-	     have to in a short single-page stream) */
-	  /* granulepos could be -1 due to a seek, but that would result
-	     in a long coun`t, not short count */
-
-	  v->pcm_current-=(b->sample_count-v->granulepos);
-	}else{
-	  /* trim the beginning */
-	  v->pcm_returned+=(b->sample_count-v->granulepos);
-	  if(v->pcm_returned>v->pcm_current)
-	    v->pcm_returned=v->pcm_current;
-	}
-
-      }
-
-    }
-  }else{
-    v->granulepos+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4;
-    if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){
-      
-      if(v->granulepos>vb->granulepos){
-	long extra=v->granulepos-vb->granulepos;
-	
-	if(extra)
-	  if(vb->eofflag){
-	    /* partial last frame.  Strip the extra samples off */
-	    v->pcm_current-=extra;
-	  } /* else {Shouldn't happen *unless* the bitstream is out of
-	       spec.  Either way, believe the bitstream } */
-      } /* else {Shouldn't happen *unless* the bitstream is out of
-	   spec.  Either way, believe the bitstream } */
-      v->granulepos=vb->granulepos;
-    }
-  }
-
-  /* Update, cleanup */
-
-  if(vb->eofflag)v->eofflag=1;
-  return(0);
-}
-
-/* pcm==NULL indicates we just want the pending samples, no more */
-int vorbis_synthesis_pcmout(vorbis_dsp_state *v,ogg_int32_t ***pcm){
-  vorbis_info *vi=v->vi;
-  if(v->pcm_returned>-1 && v->pcm_returned<v->pcm_current){
-    if(pcm){
-      int i;
-      for(i=0;i<vi->channels;i++)
-	v->pcmret[i]=v->pcm[i]+v->pcm_returned;
-      *pcm=v->pcmret;
-    }
-    return(v->pcm_current-v->pcm_returned);
-  }
-  return(0);
-}
-
-int vorbis_synthesis_read(vorbis_dsp_state *v,int bytes){
-  if(bytes && v->pcm_returned+bytes>v->pcm_current)return(OV_EINVAL);
-  v->pcm_returned+=bytes;
-  return(0);
-}
-
--- a/misc/libtremor/block.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2008    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: shared block functions
-
- ********************************************************************/
-
-#ifndef _V_BLOCK_
-#define _V_BLOCK_
-
-#include "ivorbiscodec.h"
-
-extern void _vorbis_block_ripcord(vorbis_block *vb);
-extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes);
-
-#endif
--- a/misc/libtremor/codebook.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,371 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: basic codebook pack/unpack/code/decode operations
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "ogg.h"
-#include "ivorbiscodec.h"
-#include "codebook.h"
-#include "misc.h"
-
-/* unpacks a codebook from the packet buffer into the codebook struct,
-   readies the codebook auxiliary structures for decode *************/
-int vorbis_staticbook_unpack(oggpack_buffer *opb,static_codebook *s){
-  long i,j;
-  memset(s,0,sizeof(*s));
-
-  /* make sure alignment is correct */
-  if(oggpack_read(opb,24)!=0x564342)goto _eofout;
-
-  /* first the basic parameters */
-  s->dim=oggpack_read(opb,16);
-  s->entries=oggpack_read(opb,24);
-  if(s->entries==-1)goto _eofout;
-
-  /* codeword ordering.... length ordered or unordered? */
-  switch((int)oggpack_read(opb,1)){
-  case 0:
-    /* unordered */
-    s->lengthlist=(long *)_ogg_malloc(sizeof(*s->lengthlist)*s->entries);
-
-    /* allocated but unused entries? */
-    if(oggpack_read(opb,1)){
-      /* yes, unused entries */
-
-      for(i=0;i<s->entries;i++){
-	if(oggpack_read(opb,1)){
-	  long num=oggpack_read(opb,5);
-	  if(num==-1)goto _eofout;
-	  s->lengthlist[i]=num+1;
-	}else
-	  s->lengthlist[i]=0;
-      }
-    }else{
-      /* all entries used; no tagging */
-      for(i=0;i<s->entries;i++){
-	long num=oggpack_read(opb,5);
-	if(num==-1)goto _eofout;
-	s->lengthlist[i]=num+1;
-      }
-    }
-    
-    break;
-  case 1:
-    /* ordered */
-    {
-      long length=oggpack_read(opb,5)+1;
-      s->lengthlist=(long *)_ogg_malloc(sizeof(*s->lengthlist)*s->entries);
-
-      for(i=0;i<s->entries;){
-	long num=oggpack_read(opb,_ilog(s->entries-i));
-	if(num==-1)goto _eofout;
-	for(j=0;j<num && i<s->entries;j++,i++)
-	  s->lengthlist[i]=length;
-	length++;
-      }
-    }
-    break;
-  default:
-    /* EOF */
-    return(-1);
-  }
-  
-  /* Do we have a mapping to unpack? */
-  switch((s->maptype=oggpack_read(opb,4))){
-  case 0:
-    /* no mapping */
-    break;
-  case 1: case 2:
-    /* implicitly populated value mapping */
-    /* explicitly populated value mapping */
-
-    s->q_min=oggpack_read(opb,32);
-    s->q_delta=oggpack_read(opb,32);
-    s->q_quant=oggpack_read(opb,4)+1;
-    s->q_sequencep=oggpack_read(opb,1);
-
-    {
-      int quantvals=0;
-      switch(s->maptype){
-      case 1:
-	quantvals=_book_maptype1_quantvals(s);
-	break;
-      case 2:
-	quantvals=s->entries*s->dim;
-	break;
-      }
-      
-      /* quantized values */
-      s->quantlist=(long *)_ogg_malloc(sizeof(*s->quantlist)*quantvals);
-      for(i=0;i<quantvals;i++)
-	s->quantlist[i]=oggpack_read(opb,s->q_quant);
-      
-      if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout;
-    }
-    break;
-  default:
-    goto _errout;
-  }
-
-  /* all set */
-  return(0);
-  
- _errout:
- _eofout:
-  vorbis_staticbook_clear(s);
-  return(-1); 
-}
-
-/* the 'eliminate the decode tree' optimization actually requires the
-   codewords to be MSb first, not LSb.  This is an annoying inelegancy
-   (and one of the first places where carefully thought out design
-   turned out to be wrong; Vorbis II and future Ogg codecs should go
-   to an MSb bitpacker), but not actually the huge hit it appears to
-   be.  The first-stage decode table catches most words so that
-   bitreverse is not in the main execution path. */
-
-static ogg_uint32_t bitreverse(ogg_uint32_t x){
-  x=    ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000);
-  x=    ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00);
-  x=    ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0);
-  x=    ((x>> 2)&0x33333333) | ((x<< 2)&0xcccccccc);
-  return((x>> 1)&0x55555555) | ((x<< 1)&0xaaaaaaaa);
-}
-
-STIN long decode_packed_entry_number(codebook *book, 
-					      oggpack_buffer *b){
-  int  read=book->dec_maxlength;
-  long lo,hi;
-  long lok = oggpack_look(b,book->dec_firsttablen);
- 
-  if (lok >= 0) {
-    long entry = book->dec_firsttable[lok];
-    if(entry&0x80000000UL){
-      lo=(entry>>15)&0x7fff;
-      hi=book->used_entries-(entry&0x7fff);
-    }else{
-      oggpack_adv(b, book->dec_codelengths[entry-1]);
-      return(entry-1);
-    }
-  }else{
-    lo=0;
-    hi=book->used_entries;
-  }
-
-  lok = oggpack_look(b, read);
-
-  while(lok<0 && read>1)
-    lok = oggpack_look(b, --read);
-
-  if(lok<0){
-    oggpack_adv(b,1); /* force eop */
-    return -1;
-  }
-
-  /* bisect search for the codeword in the ordered list */
-  {
-    ogg_uint32_t testword=bitreverse((ogg_uint32_t)lok);
-
-    while(hi-lo>1){
-      long p=(hi-lo)>>1;
-      long test=book->codelist[lo+p]>testword;    
-      lo+=p&(test-1);
-      hi-=p&(-test);
-    }
-
-    if(book->dec_codelengths[lo]<=read){
-      oggpack_adv(b, book->dec_codelengths[lo]);
-      return(lo);
-    }
-  }
-  
-  oggpack_adv(b, read+1);
-  return(-1);
-}
-
-/* Decode side is specced and easier, because we don't need to find
-   matches using different criteria; we simply read and map.  There are
-   two things we need to do 'depending':
-   
-   We may need to support interleave.  We don't really, but it's
-   convenient to do it here rather than rebuild the vector later.
-
-   Cascades may be additive or multiplicitive; this is not inherent in
-   the codebook, but set in the code using the codebook.  Like
-   interleaving, it's easiest to do it here.  
-   addmul==0 -> declarative (set the value)
-   addmul==1 -> additive
-   addmul==2 -> multiplicitive */
-
-/* returns the [original, not compacted] entry number or -1 on eof *********/
-long vorbis_book_decode(codebook *book, oggpack_buffer *b){
-  if(book->used_entries>0){
-    long packed_entry=decode_packed_entry_number(book,b);
-    if(packed_entry>=0)
-      return(book->dec_index[packed_entry]);
-  }
-
-  /* if there's no dec_index, the codebook unpacking isn't collapsed */
-  return(-1);
-}
-
-/* returns 0 on OK or -1 on eof *************************************/
-long vorbis_book_decodevs_add(codebook *book,ogg_int32_t *a,
-			      oggpack_buffer *b,int n,int point){
-  if(book->used_entries>0){  
-    int step=n/book->dim;
-    long *entry = (long *)alloca(sizeof(*entry)*step);
-    ogg_int32_t **t = (ogg_int32_t **)alloca(sizeof(*t)*step);
-    int i,j,o;
-    int shift=point-book->binarypoint;
-    
-    if(shift>=0){
-      for (i = 0; i < step; i++) {
-	entry[i]=decode_packed_entry_number(book,b);
-	if(entry[i]==-1)return(-1);
-	t[i] = book->valuelist+entry[i]*book->dim;
-      }
-      for(i=0,o=0;i<book->dim;i++,o+=step)
-	for (j=0;j<step;j++)
-	  a[o+j]+=t[j][i]>>shift;
-    }else{
-      for (i = 0; i < step; i++) {
-	entry[i]=decode_packed_entry_number(book,b);
-	if(entry[i]==-1)return(-1);
-	t[i] = book->valuelist+entry[i]*book->dim;
-      }
-      for(i=0,o=0;i<book->dim;i++,o+=step)
-	for (j=0;j<step;j++)
-	  a[o+j]+=t[j][i]<<-shift;
-    }
-  }
-  return(0);
-}
-
-long vorbis_book_decodev_add(codebook *book,ogg_int32_t *a,
-			     oggpack_buffer *b,int n,int point){
-  if(book->used_entries>0){
-    int i,j,entry;
-    ogg_int32_t *t;
-    int shift=point-book->binarypoint;
-    
-    if(shift>=0){
-      for(i=0;i<n;){
-	entry = decode_packed_entry_number(book,b);
-	if(entry==-1)return(-1);
-	t     = book->valuelist+entry*book->dim;
-	for (j=0;j<book->dim;)
-	  a[i++]+=t[j++]>>shift;
-      }
-    }else{
-      for(i=0;i<n;){
-	entry = decode_packed_entry_number(book,b);
-	if(entry==-1)return(-1);
-	t     = book->valuelist+entry*book->dim;
-	for (j=0;j<book->dim;)
-	  a[i++]+=t[j++]<<-shift;
-      }
-    }
-  }
-  return(0);
-}
-
-long vorbis_book_decodev_set(codebook *book,ogg_int32_t *a,
-			     oggpack_buffer *b,int n,int point){
-  if(book->used_entries>0){
-    int i,j,entry;
-    ogg_int32_t *t;
-    int shift=point-book->binarypoint;
-    
-    if(shift>=0){
-      
-      for(i=0;i<n;){
-	entry = decode_packed_entry_number(book,b);
-	if(entry==-1)return(-1);
-	t     = book->valuelist+entry*book->dim;
-	for (j=0;j<book->dim;){
-	  a[i++]=t[j++]>>shift;
-	}
-      }
-    }else{
-      
-      for(i=0;i<n;){
-	entry = decode_packed_entry_number(book,b);
-	if(entry==-1)return(-1);
-	t     = book->valuelist+entry*book->dim;
-	for (j=0;j<book->dim;){
-	  a[i++]=t[j++]<<-shift;
-	}
-      }
-    }
-  }else{
-
-    int i,j;
-    for(i=0;i<n;){
-      for (j=0;j<book->dim;){
-	a[i++]=0;
-      }
-    }
-  }
-  return(0);
-}
-
-long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a,\
-			      long offset,int ch,
-			      oggpack_buffer *b,int n,int point){
-  if(book->used_entries>0){
-    long i,j,entry;
-    int chptr=0;
-    int shift=point-book->binarypoint;
-    
-    if(shift>=0){
-      
-      for(i=offset;i<offset+n;){
-	entry = decode_packed_entry_number(book,b);
-	if(entry==-1)return(-1);
-	{
-	  const ogg_int32_t *t = book->valuelist+entry*book->dim;
-	  for (j=0;j<book->dim;j++){
-	    a[chptr++][i]+=t[j]>>shift;
-	    if(chptr==ch){
-	      chptr=0;
-	      i++;
-	    }
-	  }
-	}
-      }
-    }else{
-      
-      for(i=offset;i<offset+n;){
-	entry = decode_packed_entry_number(book,b);
-	if(entry==-1)return(-1);
-	{
-	  const ogg_int32_t *t = book->valuelist+entry*book->dim;
-	  for (j=0;j<book->dim;j++){
-	    a[chptr++][i]+=t[j]<<-shift;
-	    if(chptr==ch){
-	      chptr=0;
-	      i++;
-	    }
-	  }
-	}
-      }
-    }
-  }
-  return(0);
-}
--- a/misc/libtremor/codebook.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: basic shared codebook operations
-
- ********************************************************************/
-
-#ifndef _V_CODEBOOK_H_
-#define _V_CODEBOOK_H_
-
-#include "ogg.h"
-
-/* This structure encapsulates huffman and VQ style encoding books; it
-   doesn't do anything specific to either.
-
-   valuelist/quantlist are nonNULL (and q_* significant) only if
-   there's entry->value mapping to be done.
-
-   If encode-side mapping must be done (and thus the entry needs to be
-   hunted), the auxiliary encode pointer will point to a decision
-   tree.  This is true of both VQ and huffman, but is mostly useful
-   with VQ.
-
-*/
-
-typedef struct static_codebook{
-  long   dim;            /* codebook dimensions (elements per vector) */
-  long   entries;        /* codebook entries */
-  long  *lengthlist;     /* codeword lengths in bits */
-
-  /* mapping ***************************************************************/
-  int    maptype;        /* 0=none
-			    1=implicitly populated values from map column 
-			    2=listed arbitrary values */
-
-  /* The below does a linear, single monotonic sequence mapping. */
-  long     q_min;       /* packed 32 bit float; quant value 0 maps to minval */
-  long     q_delta;     /* packed 32 bit float; val 1 - val 0 == delta */
-  int      q_quant;     /* bits: 0 < quant <= 16 */
-  int      q_sequencep; /* bitflag */
-
-  long     *quantlist;  /* map == 1: (int)(entries^(1/dim)) element column map
-			   map == 2: list of dim*entries quantized entry vals
-			*/
-} static_codebook;
-
-typedef struct codebook{
-  long dim;           /* codebook dimensions (elements per vector) */
-  long entries;       /* codebook entries */
-  long used_entries;  /* populated codebook entries */
-
-  /* the below are ordered by bitreversed codeword and only used
-     entries are populated */
-  int           binarypoint;
-  ogg_int32_t  *valuelist;  /* list of dim*entries actual entry values */  
-  ogg_uint32_t *codelist;   /* list of bitstream codewords for each entry */
-
-  int          *dec_index;  
-  char         *dec_codelengths;
-  ogg_uint32_t *dec_firsttable;
-  int           dec_firsttablen;
-  int           dec_maxlength;
-
-  long     q_min;       /* packed 32 bit float; quant value 0 maps to minval */
-  long     q_delta;     /* packed 32 bit float; val 1 - val 0 == delta */
-
-} codebook;
-
-extern void vorbis_staticbook_clear(static_codebook *b);
-extern void vorbis_staticbook_destroy(static_codebook *b);
-extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source);
-
-extern void vorbis_book_clear(codebook *b);
-extern long _book_maptype1_quantvals(const static_codebook *b);
-
-extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c);
-
-extern long vorbis_book_decode(codebook *book, oggpack_buffer *b);
-extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a, 
-				     oggpack_buffer *b,int n,int point);
-extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a, 
-				    oggpack_buffer *b,int n,int point);
-extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a, 
-				    oggpack_buffer *b,int n,int point);
-extern long vorbis_book_decodevv_add(codebook *book, ogg_int32_t **a,
-				     long off,int ch, 
-				    oggpack_buffer *b,int n,int point);
-
-extern int _ilog(unsigned int v);
-
-
-#endif
--- a/misc/libtremor/codec_internal.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: libvorbis codec headers
-
- ********************************************************************/
-
-#ifndef _V_CODECI_H_
-#define _V_CODECI_H_
-
-#include "codebook.h"
-
-typedef void vorbis_look_mapping;
-typedef void vorbis_look_floor;
-typedef void vorbis_look_residue;
-typedef void vorbis_look_transform;
-
-/* mode ************************************************************/
-typedef struct {
-  int blockflag;
-  int windowtype;
-  int transformtype;
-  int mapping;
-} vorbis_info_mode;
-
-typedef void vorbis_info_floor;
-typedef void vorbis_info_residue;
-typedef void vorbis_info_mapping;
-
-typedef struct private_state {
-  /* local lookup storage */
-  const void             *window[2];
-
-  /* backend lookups are tied to the mode, not the backend or naked mapping */
-  int                     modebits;
-  vorbis_look_mapping   **mode;
-
-  ogg_int64_t sample_count;
-
-} private_state;
-
-/* codec_setup_info contains all the setup information specific to the
-   specific compression/decompression mode in progress (eg,
-   psychoacoustic settings, channel setup, options, codebook
-   etc).  
-*********************************************************************/
-
-typedef struct codec_setup_info {
-
-  /* Vorbis supports only short and long blocks, but allows the
-     encoder to choose the sizes */
-
-  long blocksizes[2];
-
-  /* modes are the primary means of supporting on-the-fly different
-     blocksizes, different channel mappings (LR or M/A),
-     different residue backends, etc.  Each mode consists of a
-     blocksize flag and a mapping (along with the mapping setup */
-
-  int        modes;
-  int        maps;
-  int        times;
-  int        floors;
-  int        residues;
-  int        books;
-
-  vorbis_info_mode       *mode_param[64];
-  int                     map_type[64];
-  vorbis_info_mapping    *map_param[64];
-  int                     time_type[64];
-  int                     floor_type[64];
-  vorbis_info_floor      *floor_param[64];
-  int                     residue_type[64];
-  vorbis_info_residue    *residue_param[64];
-  static_codebook        *book_param[256];
-  codebook               *fullbooks;
-
-  int    passlimit[32];     /* iteration limit per couple/quant pass */
-  int    coupling_passes;
-} codec_setup_info;
-
-#endif
--- a/misc/libtremor/config_types.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: #ifdef jail to whip a few platforms into the UNIX ideal.
-
- ********************************************************************/
-#ifndef _OS_CVTYPES_H
-#define _OS_CVTYPES_H
-
-typedef long long ogg_int64_t;
-typedef int ogg_int32_t;
-typedef unsigned int ogg_uint32_t;
-typedef short ogg_int16_t;
-
-#endif
--- a/misc/libtremor/configure.in	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-dnl Process this file with autoconf to produce a configure script
-
-dnl ------------------------------------------------
-dnl Initialization and Versioning
-dnl ------------------------------------------------
-
-AC_INIT(mdct.c)
-
-AC_CANONICAL_HOST
-AC_CANONICAL_TARGET
-
-AM_CONFIG_HEADER([config.h])
-
-AM_INIT_AUTOMAKE(libvorbisidec,1.2.0)
-
-dnl Library versioning
-
-V_LIB_CURRENT=1
-V_LIB_REVISION=2
-V_LIB_AGE=0
-AC_SUBST(V_LIB_CURRENT)
-AC_SUBST(V_LIB_REVISION)
-AC_SUBST(V_LIB_AGE)
-
-dnl --------------------------------------------------  
-dnl Check for programs
-dnl --------------------------------------------------  
-
-dnl save $CFLAGS since AC_PROG_CC likes to insert "-g -O2"
-dnl if $CFLAGS is blank
-cflags_save="$CFLAGS"
-AC_PROG_CC
-AC_PROG_CPP
-CFLAGS="$cflags_save"
-
-AM_PROG_LIBTOOL
-
-dnl --------------------------------------------------
-dnl Set build flags based on environment
-dnl --------------------------------------------------
-
-dnl Set some target options
-
-cflags_save="$CFLAGS"
-ldflags_save="$LDFLAGS"
-if test -z "$GCC"; then
-        case $host in 
-        arm-*-*)
-                DEBUG="-g -D_ARM_ASSEM_" 
-                CFLAGS="-O -D_ARM_ASSEM_"
-                PROFILE="-p -g -O -D_ARM_ASSEM_" ;;
-        *)
-                DEBUG="-g"
-                CFLAGS="-O"
-                PROFILE="-g -p" ;;
-        esac
-else
-
-        case $host in 
-        arm-*-*)
-                DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char -D_ARM_ASSEM_"
-                CFLAGS="-O2 -D_ARM_ASSEM_ -fsigned-char"
-                PROFILE="-W -pg -g -O2 -D_ARM_ASSEM_ -fsigned-char -fno-inline-functions";;
-
-        *)
-                DEBUG="-g -Wall -D__NO_MATH_INLINES -fsigned-char"
-                CFLAGS="-O2 -Wall -fsigned-char"
-                PROFILE="-Wall -pg -g -O2 -fsigned-char -fno-inline-functions";;
-        esac
-fi
-CFLAGS="$CFLAGS $cflags_save -D_REENTRANT"
-LDFLAGS="$LDFLAGS $ldflags_save"
-
-
-# Test whenever ld supports -version-script
-AC_PROG_LD
-AC_PROG_LD_GNU
-if test "x$lt_cv_prog_gnu_ld" = "xyes"; then
-   SHLIB_VERSION_ARG="Wl,--version-script=Version_script"
-
-   dnl Set extra linker options
-   case "$target_os" in
-  linux* | solaris* )
-    SHLIB_VERSION_ARG="-Wl,--version-script=Version_script"
-    ;;
-  *)
-    ;;
-   esac
-   LDFLAGS="$LDFLAGS $SHLIB_VERSION_ARG"
-fi
-
-dnl --------------------------------------------------
-dnl Options 
-dnl --------------------------------------------------
-
-AC_ARG_ENABLE(
-   low-accuracy,
-   [  --enable-low-accuracy   enable 32 bit only multiply operations],
-   CFLAGS="$CFLAGS -D_LOW_ACCURACY_"
-)
-
-dnl --------------------------------------------------
-dnl Check for headers
-dnl --------------------------------------------------
-
-AC_CHECK_HEADER(memory.h,CFLAGS="$CFLAGS -DUSE_MEMORY_H",:)
-
-dnl --------------------------------------------------
-dnl Check for typedefs, structures, etc
-dnl --------------------------------------------------
-
-dnl none
-
-dnl --------------------------------------------------
-dnl Check for library functions
-dnl --------------------------------------------------
-
-AC_FUNC_ALLOCA
-AC_FUNC_MEMCMP
-
-dnl --------------------------------------------------
-dnl Do substitutions
-dnl --------------------------------------------------
-
-LIBS="$LIBS"
-
-AC_SUBST(LIBS)
-AC_SUBST(DEBUG)
-AC_SUBST(PROFILE)
-
-AC_OUTPUT(Makefile Version_script)
--- a/misc/libtremor/floor0.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,435 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: floor backend 0 implementation
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "ogg.h"
-#include "ivorbiscodec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "codebook.h"
-#include "misc.h"
-#include "block.h"
-
-#define LSP_FRACBITS 14
-
-typedef struct {
-  long n;
-  int ln;
-  int  m;
-  int *linearmap;
-
-  vorbis_info_floor0 *vi;
-  ogg_int32_t *lsp_look;
-
-} vorbis_look_floor0;
-
-/*************** LSP decode ********************/
-
-#include "lsp_lookup.h"
-
-/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in
-   16.16 format 
-   returns in m.8 format */
-
-static long ADJUST_SQRT2[2]={8192,5792};
-STIN ogg_int32_t vorbis_invsqlook_i(long a,long e){
-  long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); 
-  long d=a&INVSQ_LOOKUP_I_MASK;                              /*  0.10 */
-  long val=INVSQ_LOOKUP_I[i]-                                /*  1.16 */
-    ((INVSQ_LOOKUP_IDel[i]*d)>>INVSQ_LOOKUP_I_SHIFT);        /* result 1.16 */
-  val*=ADJUST_SQRT2[e&1];
-  e=(e>>1)+21;
-  return(val>>e);
-}
-
-/* interpolated lookup based fromdB function, domain -140dB to 0dB only */
-/* a is in n.12 format */
-STIN ogg_int32_t vorbis_fromdBlook_i(long a){
-  int i=(-a)>>(12-FROMdB2_SHIFT);
-  if(i<0) return 0x7fffffff;
-  if(i>=(FROMdB_LOOKUP_SZ<<FROMdB_SHIFT))return 0;
-  
-  return FROMdB_LOOKUP[i>>FROMdB_SHIFT] * FROMdB2_LOOKUP[i&FROMdB2_MASK];
-}
-
-/* interpolated lookup based cos function, domain 0 to PI only */
-/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */
-STIN ogg_int32_t vorbis_coslook_i(long a){
-  int i=a>>COS_LOOKUP_I_SHIFT;
-  int d=a&COS_LOOKUP_I_MASK;
-  return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>>
-			   COS_LOOKUP_I_SHIFT);
-}
-
-/* interpolated lookup based cos function */
-/* a is in 0.16 format, where 0==0, 2^^16==PI, return .LSP_FRACBITS */
-STIN ogg_int32_t vorbis_coslook2_i(long a){
-  a=a&0x1ffff;
-
-  if(a>0x10000)a=0x20000-a;
-  {               
-    int i=a>>COS_LOOKUP_I_SHIFT;
-    int d=a&COS_LOOKUP_I_MASK;
-    a=((COS_LOOKUP_I[i]<<COS_LOOKUP_I_SHIFT)-
-       d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>>
-      (COS_LOOKUP_I_SHIFT-LSP_FRACBITS+14);
-  }
-  
-  return(a);
-}
-
-static const int barklook[28]={
-  0,100,200,301,          405,516,635,766,
-  912,1077,1263,1476,     1720,2003,2333,2721,
-  3184,3742,4428,5285,    6376,7791,9662,12181,
-  15624,20397,27087,36554
-};
-
-/* used in init only; interpolate the long way */
-STIN ogg_int32_t toBARK(int n){
-  int i;
-  for(i=0;i<27;i++) 
-    if(n>=barklook[i] && n<barklook[i+1])break;
-  
-  if(i==27){
-    return 27<<15;
-  }else{
-    int gap=barklook[i+1]-barklook[i];
-    int del=n-barklook[i];
-
-    return((i<<15)+((del<<15)/gap));
-  }
-}
-
-static const unsigned char MLOOP_1[64]={
-   0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13,
-  14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14,
-  15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
-  15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15,
-};
-
-static const unsigned char MLOOP_2[64]={
-  0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7,
-  8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8,
-  9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9,
-  9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9,
-};
-
-static const unsigned char MLOOP_3[8]={0,1,2,2,3,3,3,3};
-
-void vorbis_lsp_to_curve(ogg_int32_t *curve,int *map,int n,int ln,
-			 ogg_int32_t *lsp,int m,
-			 ogg_int32_t amp,
-			 ogg_int32_t ampoffset,
-			 ogg_int32_t *icos){
-
-  /* 0 <= m < 256 */
-
-  /* set up for using all int later */
-  int i;
-  int ampoffseti=ampoffset*4096;
-  int ampi=amp;
-  ogg_int32_t *ilsp=(ogg_int32_t *)alloca(m*sizeof(*ilsp));
-  /* lsp is in 8.24, range 0 to PI; coslook wants it in .16 0 to 1*/
-  for(i=0;i<m;i++){
-#ifndef _LOW_ACCURACY_
-    ogg_int32_t val=MULT32(lsp[i],0x517cc2);
-#else
-    ogg_int32_t val=((lsp[i]>>10)*0x517d)>>14;
-#endif
-
-    /* safeguard against a malicious stream */
-    if(val<0 || (val>>COS_LOOKUP_I_SHIFT)>=COS_LOOKUP_I_SZ){
-      memset(curve,0,sizeof(*curve)*n);
-      return;
-    }
-
-    ilsp[i]=vorbis_coslook_i(val);
-  }
-
-  i=0;
-  while(i<n){
-    int j,k=map[i];
-    ogg_uint32_t pi=46341; /* 2**-.5 in 0.16 */
-    ogg_uint32_t qi=46341;
-    ogg_int32_t qexp=0,shift;
-    ogg_int32_t wi=icos[k];
-
-#ifdef _V_LSP_MATH_ASM
-    lsp_loop_asm(&qi,&pi,&qexp,ilsp,wi,m);
-
-    pi=((pi*pi)>>16);
-    qi=((qi*qi)>>16);
-    
-    if(m&1){
-      qexp= qexp*2-28*((m+1)>>1)+m;	     
-      pi*=(1<<14)-((wi*wi)>>14);
-      qi+=pi>>14;     
-    }else{
-      qexp= qexp*2-13*m;
-      
-      pi*=(1<<14)-wi;
-      qi*=(1<<14)+wi;
-      
-      qi=(qi+pi)>>14;
-    }
-    
-    if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */
-      qi>>=1; qexp++; 
-    }else
-      lsp_norm_asm(&qi,&qexp);
-
-#else
-
-    qi*=labs(ilsp[0]-wi);
-    pi*=labs(ilsp[1]-wi);
-
-    for(j=3;j<m;j+=2){
-      if(!(shift=MLOOP_1[(pi|qi)>>25]))
-	if(!(shift=MLOOP_2[(pi|qi)>>19]))
-	  shift=MLOOP_3[(pi|qi)>>16];
-      qi=(qi>>shift)*labs(ilsp[j-1]-wi);
-      pi=(pi>>shift)*labs(ilsp[j]-wi);
-      qexp+=shift;
-    }
-    if(!(shift=MLOOP_1[(pi|qi)>>25]))
-      if(!(shift=MLOOP_2[(pi|qi)>>19]))
-	shift=MLOOP_3[(pi|qi)>>16];
-
-    /* pi,qi normalized collectively, both tracked using qexp */
-
-    if(m&1){
-      /* odd order filter; slightly assymetric */
-      /* the last coefficient */
-      qi=(qi>>shift)*labs(ilsp[j-1]-wi);
-      pi=(pi>>shift)<<14;
-      qexp+=shift;
-
-      if(!(shift=MLOOP_1[(pi|qi)>>25]))
-	if(!(shift=MLOOP_2[(pi|qi)>>19]))
-	  shift=MLOOP_3[(pi|qi)>>16];
-      
-      pi>>=shift;
-      qi>>=shift;
-      qexp+=shift-14*((m+1)>>1);
-
-      pi=((pi*pi)>>16);
-      qi=((qi*qi)>>16);
-      qexp=qexp*2+m;
-
-      pi*=(1<<14)-((wi*wi)>>14);
-      qi+=pi>>14;
-
-    }else{
-      /* even order filter; still symmetric */
-
-      /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't
-	 worth tracking step by step */
-      
-      pi>>=shift;
-      qi>>=shift;
-      qexp+=shift-7*m;
-
-      pi=((pi*pi)>>16);
-      qi=((qi*qi)>>16);
-      qexp=qexp*2+m;
-      
-      pi*=(1<<14)-wi;
-      qi*=(1<<14)+wi;
-      qi=(qi+pi)>>14;
-      
-    }
-    
-
-    /* we've let the normalization drift because it wasn't important;
-       however, for the lookup, things must be normalized again.  We
-       need at most one right shift or a number of left shifts */
-
-    if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */
-      qi>>=1; qexp++; 
-    }else
-      while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/
-	qi<<=1; qexp--; 
-      }
-
-#endif
-
-    amp=vorbis_fromdBlook_i(ampi*                     /*  n.4         */
-			    vorbis_invsqlook_i(qi,qexp)- 
-			                              /*  m.8, m+n<=8 */
-			    ampoffseti);              /*  8.12[0]     */
-    
-#ifdef _LOW_ACCURACY_
-    amp>>=9;
-#endif
-    curve[i]= MULT31_SHIFT15(curve[i],amp);
-    while(map[++i]==k) curve[i]= MULT31_SHIFT15(curve[i],amp);
-  }
-}
-
-/*************** vorbis decode glue ************/
-
-static void floor0_free_info(vorbis_info_floor *i){
-  vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
-  if(info){
-    memset(info,0,sizeof(*info));
-    _ogg_free(info);
-  }
-}
-
-static void floor0_free_look(vorbis_look_floor *i){
-  vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
-  if(look){
-
-    if(look->linearmap)_ogg_free(look->linearmap);
-    if(look->lsp_look)_ogg_free(look->lsp_look);
-    memset(look,0,sizeof(*look));
-    _ogg_free(look);
-  }
-}
-
-static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  int j;
-
-  vorbis_info_floor0 *info=(vorbis_info_floor0 *)_ogg_malloc(sizeof(*info));
-  info->order=oggpack_read(opb,8);
-  info->rate=oggpack_read(opb,16);
-  info->barkmap=oggpack_read(opb,16);
-  info->ampbits=oggpack_read(opb,6);
-  info->ampdB=oggpack_read(opb,8);
-  info->numbooks=oggpack_read(opb,4)+1;
-  
-  if(info->order<1)goto err_out;
-  if(info->rate<1)goto err_out;
-  if(info->barkmap<1)goto err_out;
-  if(info->numbooks<1)goto err_out;
-    
-  for(j=0;j<info->numbooks;j++){
-    info->books[j]=oggpack_read(opb,8);
-    if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out;
-  }
-  return(info);
-
- err_out:
-  floor0_free_info(info);
-  return(NULL);
-}
-
-/* initialize Bark scale and normalization lookups.  We could do this
-   with static tables, but Vorbis allows a number of possible
-   combinations, so it's best to do it computationally.
-
-   The below is authoritative in terms of defining scale mapping.
-   Note that the scale depends on the sampling rate as well as the
-   linear block and mapping sizes */
-
-static vorbis_look_floor *floor0_look (vorbis_dsp_state *vd,vorbis_info_mode *mi,
-                              vorbis_info_floor *i){
-  int j;
-  vorbis_info        *vi=vd->vi;
-  codec_setup_info   *ci=(codec_setup_info *)vi->codec_setup;
-  vorbis_info_floor0 *info=(vorbis_info_floor0 *)i;
-  vorbis_look_floor0 *look=(vorbis_look_floor0 *)_ogg_calloc(1,sizeof(*look));
-  look->m=info->order;
-  look->n=ci->blocksizes[mi->blockflag]/2;
-  look->ln=info->barkmap;
-  look->vi=info;
-
-  /* the mapping from a linear scale to a smaller bark scale is
-     straightforward.  We do *not* make sure that the linear mapping
-     does not skip bark-scale bins; the decoder simply skips them and
-     the encoder may do what it wishes in filling them.  They're
-     necessary in some mapping combinations to keep the scale spacing
-     accurate */
-  look->linearmap=(int *)_ogg_malloc((look->n+1)*sizeof(*look->linearmap));
-  for(j=0;j<look->n;j++){
-
-    int val=(look->ln*
-	     ((toBARK(info->rate/2*j/look->n)<<11)/toBARK(info->rate/2)))>>11;
-
-    if(val>=look->ln)val=look->ln-1; /* guard against the approximation */
-    look->linearmap[j]=val;
-  }
-  look->linearmap[j]=-1;
-
-  look->lsp_look=(ogg_int32_t *)_ogg_malloc(look->ln*sizeof(*look->lsp_look));
-  for(j=0;j<look->ln;j++)
-    look->lsp_look[j]=vorbis_coslook2_i(0x10000*j/look->ln);
-
-  return look;
-}
-
-static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){
-  vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
-  vorbis_info_floor0 *info=look->vi;
-  int j,k;
-  
-  int ampraw=oggpack_read(&vb->opb,info->ampbits);
-  if(ampraw>0){ /* also handles the -1 out of data case */
-    long maxval=(1<<info->ampbits)-1;
-    int amp=((ampraw*info->ampdB)<<4)/maxval;
-    int booknum=oggpack_read(&vb->opb,_ilog(info->numbooks));
-    
-    if(booknum!=-1 && booknum<info->numbooks){ /* be paranoid */
-      codec_setup_info  *ci=(codec_setup_info *)vb->vd->vi->codec_setup;
-      codebook *b=ci->fullbooks+info->books[booknum];
-      ogg_int32_t last=0;
-      ogg_int32_t *lsp=(ogg_int32_t *)_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+1));
-            
-      for(j=0;j<look->m;j+=b->dim)
-	if(vorbis_book_decodev_set(b,lsp+j,&vb->opb,b->dim,-24)==-1)goto eop;
-      for(j=0;j<look->m;){
-	for(k=0;k<b->dim;k++,j++)lsp[j]+=last;
-	last=lsp[j-1];
-      }
-      
-      lsp[look->m]=amp;
-      return(lsp);
-    }
-  }
- eop:
-  return(NULL);
-}
-
-static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i,
-			   void *memo,ogg_int32_t *out){
-  vorbis_look_floor0 *look=(vorbis_look_floor0 *)i;
-  vorbis_info_floor0 *info=look->vi;
-  
-  if(memo){
-    ogg_int32_t *lsp=(ogg_int32_t *)memo;
-    ogg_int32_t amp=lsp[look->m];
-
-    /* take the coefficients back to a spectral envelope curve */
-    vorbis_lsp_to_curve(out,look->linearmap,look->n,look->ln,
-			lsp,look->m,amp,info->ampdB,look->lsp_look);
-    return(1);
-  }
-  memset(out,0,sizeof(*out)*look->n);
-  return(0);
-}
-
-/* export hooks */
-vorbis_func_floor floor0_exportbundle={
-  &floor0_unpack,&floor0_look,&floor0_free_info,
-  &floor0_free_look,&floor0_inverse1,&floor0_inverse2
-};
-
-
--- a/misc/libtremor/floor1.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: floor backend 1 implementation
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include "ogg.h"
-#include "ivorbiscodec.h"
-#include "codec_internal.h"
-#include "registry.h"
-#include "codebook.h"
-#include "misc.h"
-#include "block.h"
-
-#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */
-
-typedef struct {
-  int forward_index[VIF_POSIT+2];
-  
-  int hineighbor[VIF_POSIT];
-  int loneighbor[VIF_POSIT];
-  int posts;
-
-  int n;
-  int quant_q;
-  vorbis_info_floor1 *vi;
-
-} vorbis_look_floor1;
-
-/***********************************************/
- 
-static void floor1_free_info(vorbis_info_floor *i){
-  vorbis_info_floor1 *info=(vorbis_info_floor1 *)i;
-  if(info){
-    memset(info,0,sizeof(*info));
-    _ogg_free(info);
-  }
-}
-
-static void floor1_free_look(vorbis_look_floor *i){
-  vorbis_look_floor1 *look=(vorbis_look_floor1 *)i;
-  if(look){
-    memset(look,0,sizeof(*look));
-    _ogg_free(look);
-  }
-}
-
-static int ilog(unsigned int v){
-  int ret=0;
-  while(v){
-    ret++;
-    v>>=1;
-  }
-  return(ret);
-}
-
-static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  int j,k,count=0,maxclass=-1,rangebits;
-
-  vorbis_info_floor1 *info=(vorbis_info_floor1 *)_ogg_calloc(1,sizeof(*info));
-  /* read partitions */
-  info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */
-  for(j=0;j<info->partitions;j++){
-    info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */
-    if(maxclass<info->partitionclass[j])maxclass=info->partitionclass[j];
-  }
-
-  /* read partition classes */
-  for(j=0;j<maxclass+1;j++){
-    info->class_dim[j]=oggpack_read(opb,3)+1; /* 1 to 8 */
-    info->class_subs[j]=oggpack_read(opb,2); /* 0,1,2,3 bits */
-    if(info->class_subs[j]<0)
-      goto err_out;
-    if(info->class_subs[j])info->class_book[j]=oggpack_read(opb,8);
-    if(info->class_book[j]<0 || info->class_book[j]>=ci->books)
-      goto err_out;
-    for(k=0;k<(1<<info->class_subs[j]);k++){
-      info->class_subbook[j][k]=oggpack_read(opb,8)-1;
-      if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books)
-	goto err_out;
-    }
-  }
-
-  /* read the post list */
-  info->mult=oggpack_read(opb,2)+1;     /* only 1,2,3,4 legal now */ 
-  rangebits=oggpack_read(opb,4);
-
-  for(j=0,k=0;j<info->partitions;j++){
-    count+=info->class_dim[info->partitionclass[j]]; 
-    for(;k<count;k++){
-      int t=info->postlist[k+2]=oggpack_read(opb,rangebits);
-      if(t<0 || t>=(1<<rangebits))
-	goto err_out;
-    }
-  }
-  info->postlist[0]=0;
-  info->postlist[1]=1<<rangebits;
-
-  return(info);
-  
- err_out:
-  floor1_free_info(info);
-  return(NULL);
-}
-
-static int icomp(const void *a,const void *b){
-  return(**(int **)a-**(int **)b);
-}
-
-static vorbis_look_floor *floor1_look(vorbis_dsp_state *vd,vorbis_info_mode *mi,
-                              vorbis_info_floor *in){
-
-  int *sortpointer[VIF_POSIT+2];
-  vorbis_info_floor1 *info=(vorbis_info_floor1 *)in;
-  vorbis_look_floor1 *look=(vorbis_look_floor1 *)_ogg_calloc(1,sizeof(*look));
-  int i,j,n=0;
-
-  look->vi=info;
-  look->n=info->postlist[1];
- 
-  /* we drop each position value in-between already decoded values,
-     and use linear interpolation to predict each new value past the
-     edges.  The positions are read in the order of the position
-     list... we precompute the bounding positions in the lookup.  Of
-     course, the neighbors can change (if a position is declined), but
-     this is an initial mapping */
-
-  for(i=0;i<info->partitions;i++)n+=info->class_dim[info->partitionclass[i]];
-  n+=2;
-  look->posts=n;
-
-  /* also store a sorted position index */
-  for(i=0;i<n;i++)sortpointer[i]=info->postlist+i;
-  qsort(sortpointer,n,sizeof(*sortpointer),icomp);
-
-  /* points from sort order back to range number */
-  for(i=0;i<n;i++)look->forward_index[i]=sortpointer[i]-info->postlist;
-  
-  /* quantize values to multiplier spec */
-  switch(info->mult){
-  case 1: /* 1024 -> 256 */
-    look->quant_q=256;
-    break;
-  case 2: /* 1024 -> 128 */
-    look->quant_q=128;
-    break;
-  case 3: /* 1024 -> 86 */
-    look->quant_q=86;
-    break;
-  case 4: /* 1024 -> 64 */
-    look->quant_q=64;
-    break;
-  }
-
-  /* discover our neighbors for decode where we don't use fit flags
-     (that would push the neighbors outward) */
-  for(i=0;i<n-2;i++){
-    int lo=0;
-    int hi=1;
-    int lx=0;
-    int hx=look->n;
-    int currentx=info->postlist[i+2];
-    for(j=0;j<i+2;j++){
-      int x=info->postlist[j];
-      if(x>lx && x<currentx){
-	lo=j;
-	lx=x;
-      }
-      if(x<hx && x>currentx){
-	hi=j;
-	hx=x;
-      }
-    }
-    look->loneighbor[i]=lo;
-    look->hineighbor[i]=hi;
-  }
-
-  return(look);
-}
-
-static int render_point(int x0,int x1,int y0,int y1,int x){
-  y0&=0x7fff; /* mask off flag */
-  y1&=0x7fff;
-    
-  {
-    int dy=y1-y0;
-    int adx=x1-x0;
-    int ady=abs(dy);
-    int err=ady*(x-x0);
-    
-    int off=err/adx;
-    if(dy<0)return(y0-off);
-    return(y0+off);
-  }
-}
-
-#ifdef _LOW_ACCURACY_
-#  define XdB(n) ((((n)>>8)+1)>>1)
-#else
-#  define XdB(n) (n)
-#endif
-
-static const ogg_int32_t FLOOR_fromdB_LOOKUP[256]={
-  XdB(0x000000e5), XdB(0x000000f4), XdB(0x00000103), XdB(0x00000114),
-  XdB(0x00000126), XdB(0x00000139), XdB(0x0000014e), XdB(0x00000163),
-  XdB(0x0000017a), XdB(0x00000193), XdB(0x000001ad), XdB(0x000001c9),
-  XdB(0x000001e7), XdB(0x00000206), XdB(0x00000228), XdB(0x0000024c),
-  XdB(0x00000272), XdB(0x0000029b), XdB(0x000002c6), XdB(0x000002f4),
-  XdB(0x00000326), XdB(0x0000035a), XdB(0x00000392), XdB(0x000003cd),
-  XdB(0x0000040c), XdB(0x00000450), XdB(0x00000497), XdB(0x000004e4),
-  XdB(0x00000535), XdB(0x0000058c), XdB(0x000005e8), XdB(0x0000064a),
-  XdB(0x000006b3), XdB(0x00000722), XdB(0x00000799), XdB(0x00000818),
-  XdB(0x0000089e), XdB(0x0000092e), XdB(0x000009c6), XdB(0x00000a69),
-  XdB(0x00000b16), XdB(0x00000bcf), XdB(0x00000c93), XdB(0x00000d64),
-  XdB(0x00000e43), XdB(0x00000f30), XdB(0x0000102d), XdB(0x0000113a),
-  XdB(0x00001258), XdB(0x0000138a), XdB(0x000014cf), XdB(0x00001629),
-  XdB(0x0000179a), XdB(0x00001922), XdB(0x00001ac4), XdB(0x00001c82),
-  XdB(0x00001e5c), XdB(0x00002055), XdB(0x0000226f), XdB(0x000024ac),
-  XdB(0x0000270e), XdB(0x00002997), XdB(0x00002c4b), XdB(0x00002f2c),
-  XdB(0x0000323d), XdB(0x00003581), XdB(0x000038fb), XdB(0x00003caf),
-  XdB(0x000040a0), XdB(0x000044d3), XdB(0x0000494c), XdB(0x00004e10),
-  XdB(0x00005323), XdB(0x0000588a), XdB(0x00005e4b), XdB(0x0000646b),
-  XdB(0x00006af2), XdB(0x000071e5), XdB(0x0000794c), XdB(0x0000812e),
-  XdB(0x00008993), XdB(0x00009283), XdB(0x00009c09), XdB(0x0000a62d),
-  XdB(0x0000b0f9), XdB(0x0000bc79), XdB(0x0000c8b9), XdB(0x0000d5c4),
-  XdB(0x0000e3a9), XdB(0x0000f274), XdB(0x00010235), XdB(0x000112fd),
-  XdB(0x000124dc), XdB(0x000137e4), XdB(0x00014c29), XdB(0x000161bf),
-  XdB(0x000178bc), XdB(0x00019137), XdB(0x0001ab4a), XdB(0x0001c70e),
-  XdB(0x0001e4a1), XdB(0x0002041f), XdB(0x000225aa), XdB(0x00024962),
-  XdB(0x00026f6d), XdB(0x000297f0), XdB(0x0002c316), XdB(0x0002f109),
-  XdB(0x000321f9), XdB(0x00035616), XdB(0x00038d97), XdB(0x0003c8b4),
-  XdB(0x000407a7), XdB(0x00044ab2), XdB(0x00049218), XdB(0x0004de23),
-  XdB(0x00052f1e), XdB(0x0005855c), XdB(0x0005e135), XdB(0x00064306),
-  XdB(0x0006ab33), XdB(0x00071a24), XdB(0x0007904b), XdB(0x00080e20),
-  XdB(0x00089422), XdB(0x000922da), XdB(0x0009bad8), XdB(0x000a5cb6),
-  XdB(0x000b091a), XdB(0x000bc0b1), XdB(0x000c8436), XdB(0x000d5471),
-  XdB(0x000e3233), XdB(0x000f1e5f), XdB(0x001019e4), XdB(0x001125c1),
-  XdB(0x00124306), XdB(0x001372d5), XdB(0x0014b663), XdB(0x00160ef7),
-  XdB(0x00177df0), XdB(0x001904c1), XdB(0x001aa4f9), XdB(0x001c603d),
-  XdB(0x001e384f), XdB(0x00202f0f), XdB(0x0022467a), XdB(0x002480b1),
-  XdB(0x0026dff7), XdB(0x002966b3), XdB(0x002c1776), XdB(0x002ef4fc),
-  XdB(0x0032022d), XdB(0x00354222), XdB(0x0038b828), XdB(0x003c67c2),
-  XdB(0x004054ae), XdB(0x004482e8), XdB(0x0048f6af), XdB(0x004db488),
-  XdB(0x0052c142), XdB(0x005821ff), XdB(0x005ddc33), XdB(0x0063f5b0),
-  XdB(0x006a74a7), XdB(0x00715faf), XdB(0x0078bdce), XdB(0x0080967f),
-  XdB(0x0088f1ba), XdB(0x0091d7f9), XdB(0x009b5247), XdB(0x00a56a41),
-  XdB(0x00b02a27), XdB(0x00bb9ce2), XdB(0x00c7ce12), XdB(0x00d4ca17),
-  XdB(0x00e29e20), XdB(0x00f15835), XdB(0x0101074b), XdB(0x0111bb4e),
-  XdB(0x01238531), XdB(0x01367704), XdB(0x014aa402), XdB(0x016020a7),
-  XdB(0x017702c3), XdB(0x018f6190), XdB(0x01a955cb), XdB(0x01c4f9cf),
-  XdB(0x01e269a8), XdB(0x0201c33b), XdB(0x0223265a), XdB(0x0246b4ea),
-  XdB(0x026c9302), XdB(0x0294e716), XdB(0x02bfda13), XdB(0x02ed9793),
-  XdB(0x031e4e09), XdB(0x03522ee4), XdB(0x03896ed0), XdB(0x03c445e2),
-  XdB(0x0402efd6), XdB(0x0445ac4b), XdB(0x048cbefc), XdB(0x04d87013),
-  XdB(0x05290c67), XdB(0x057ee5ca), XdB(0x05da5364), XdB(0x063bb204),
-  XdB(0x06a36485), XdB(0x0711d42b), XdB(0x0787710e), XdB(0x0804b299),
-  XdB(0x088a17ef), XdB(0x0918287e), XdB(0x09af747c), XdB(0x0a50957e),
-  XdB(0x0afc2f19), XdB(0x0bb2ef7f), XdB(0x0c759034), XdB(0x0d44d6ca),
-  XdB(0x0e2195bc), XdB(0x0f0cad0d), XdB(0x10070b62), XdB(0x1111aeea),
-  XdB(0x122da66c), XdB(0x135c120f), XdB(0x149e24d9), XdB(0x15f525b1),
-  XdB(0x176270e3), XdB(0x18e7794b), XdB(0x1a85c9ae), XdB(0x1c3f06d1),
-  XdB(0x1e14f07d), XdB(0x200963d7), XdB(0x221e5ccd), XdB(0x2455f870),
-  XdB(0x26b2770b), XdB(0x29363e2b), XdB(0x2be3db5c), XdB(0x2ebe06b6),
-  XdB(0x31c7a55b), XdB(0x3503ccd4), XdB(0x3875c5aa), XdB(0x3c210f44),
-  XdB(0x4009632b), XdB(0x4432b8cf), XdB(0x48a149bc), XdB(0x4d59959e),
-  XdB(0x52606733), XdB(0x57bad899), XdB(0x5d6e593a), XdB(0x6380b298),
-  XdB(0x69f80e9a), XdB(0x70dafda8), XdB(0x78307d76), XdB(0x7fffffff),
-};
-  
-static void render_line(int n, int x0,int x1,int y0,int y1,ogg_int32_t *d){
-  int dy=y1-y0;
-  int adx=x1-x0;
-  int ady=abs(dy);
-  int base=dy/adx;
-  int sy=(dy<0?base-1:base+1);
-  int x=x0;
-  int y=y0;
-  int err=0;
-
-  if(n>x1)n=x1;
-  ady-=abs(base*adx);
-
-  if(x<n)
-    d[x]= MULT31_SHIFT15(d[x],FLOOR_fromdB_LOOKUP[y]);
-
-  while(++x<n){
-    err=err+ady;
-    if(err>=adx){
-      err-=adx;
-      y+=sy;
-    }else{
-      y+=base;
-    }
-    d[x]= MULT31_SHIFT15(d[x],FLOOR_fromdB_LOOKUP[y]);
-  }
-}
-
-static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){
-  vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
-  vorbis_info_floor1 *info=look->vi;
-  codec_setup_info   *ci=(codec_setup_info *)vb->vd->vi->codec_setup;
-  
-  int i,j,k;
-  codebook *books=ci->fullbooks;   
-  
-  /* unpack wrapped/predicted values from stream */
-  if(oggpack_read(&vb->opb,1)==1){
-    int *fit_value=(int *)_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value));
-    
-    fit_value[0]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
-    fit_value[1]=oggpack_read(&vb->opb,ilog(look->quant_q-1));
-    
-    /* partition by partition */
-    /* partition by partition */
-    for(i=0,j=2;i<info->partitions;i++){
-      int classv=info->partitionclass[i];
-      int cdim=info->class_dim[classv];
-      int csubbits=info->class_subs[classv];
-      int csub=1<<csubbits;
-      int cval=0;
-
-      /* decode the partition's first stage cascade value */
-      if(csubbits){
-	cval=vorbis_book_decode(books+info->class_book[classv],&vb->opb);
-
-	if(cval==-1)goto eop;
-      }
-
-      for(k=0;k<cdim;k++){
-	int book=info->class_subbook[classv][cval&(csub-1)];
-	cval>>=csubbits;
-	if(book>=0){
-	  if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1)
-	    goto eop;
-	}else{
-	  fit_value[j+k]=0;
-	}
-      }
-      j+=cdim;
-    }
-
-    /* unwrap positive values and reconsitute via linear interpolation */
-    for(i=2;i<look->posts;i++){
-      int predicted=render_point(info->postlist[look->loneighbor[i-2]],
-				 info->postlist[look->hineighbor[i-2]],
-				 fit_value[look->loneighbor[i-2]],
-				 fit_value[look->hineighbor[i-2]],
-				 info->postlist[i]);
-      int hiroom=look->quant_q-predicted;
-      int loroom=predicted;
-      int room=(hiroom<loroom?hiroom:loroom)<<1;
-      int val=fit_value[i];
-
-      if(val){
-	if(val>=room){
-	  if(hiroom>loroom){
-	    val = val-loroom;
-	  }else{
-	  val = -1-(val-hiroom);
-	  }
-	}else{
-	  if(val&1){
-	    val= -((val+1)>>1);
-	  }else{
-	    val>>=1;
-	  }
-	}
-
-	fit_value[i]=val+predicted;
-	fit_value[look->loneighbor[i-2]]&=0x7fff;
-	fit_value[look->hineighbor[i-2]]&=0x7fff;
-
-      }else{
-	fit_value[i]=predicted|0x8000;
-      }
-	
-    }
-
-    return(fit_value);
-  }
- eop:
-  return(NULL);
-}
-
-static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo,
-			  ogg_int32_t *out){
-  vorbis_look_floor1 *look=(vorbis_look_floor1 *)in;
-  vorbis_info_floor1 *info=look->vi;
-
-  codec_setup_info   *ci=(codec_setup_info *)vb->vd->vi->codec_setup;
-  int                  n=ci->blocksizes[vb->W]/2;
-  int j;
-
-  if(memo){
-    /* render the lines */
-    int *fit_value=(int *)memo;
-    int hx=0;
-    int lx=0;
-    int ly=fit_value[0]*info->mult;
-    for(j=1;j<look->posts;j++){
-      int current=look->forward_index[j];
-      int hy=fit_value[current]&0x7fff;
-      if(hy==fit_value[current]){
-	
-	hy*=info->mult;
-	hx=info->postlist[current];
-	
-	render_line(n,lx,hx,ly,hy,out);
-	
-	lx=hx;
-	ly=hy;
-      }
-    }
-    for(j=hx;j<n;j++)out[j]*=ly; /* be certain */    
-    return(1);
-  }
-  memset(out,0,sizeof(*out)*n);
-  return(0);
-}
-
-/* export hooks */
-vorbis_func_floor floor1_exportbundle={
-  &floor1_unpack,&floor1_look,&floor1_free_info,
-  &floor1_free_look,&floor1_inverse1,&floor1_inverse2
-};
-
--- a/misc/libtremor/framing.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1126 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: decode Ogg streams back into raw packets
-
- note: The CRC code is directly derived from public domain code by
- Ross Williams (ross@guest.adelaide.edu.au).  See docs/framing.html
- for details.
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <string.h>
-#include "ogg.h"
-#include "misc.h"
-
-
-/* A complete description of Ogg framing exists in docs/framing.html */
-
-/* basic, centralized Ogg memory management based on linked lists of
-   references to refcounted memory buffers.  References and buffers
-   are both recycled.  Buffers are passed around and consumed in
-   reference form. */
-
-static ogg_buffer_state *ogg_buffer_create(void){
-  ogg_buffer_state *bs=_ogg_calloc(1,sizeof(*bs));
-  return bs;
-}
-
-/* destruction is 'lazy'; there may be memory references outstanding,
-   and yanking the buffer state out from underneath would be
-   antisocial.  Dealloc what is currently unused and have
-   _release_one watch for the stragglers to come in.  When they do,
-   finish destruction. */
-
-/* call the helper while holding lock */
-static void _ogg_buffer_destroy(ogg_buffer_state *bs){
-  ogg_buffer *bt;
-  ogg_reference *rt;
-
-  if(bs->shutdown){
-
-    bt=bs->unused_buffers;
-    rt=bs->unused_references;
-
-    while(bt){
-      ogg_buffer *b=bt;
-      bt=b->ptr.next;
-      if(b->data)_ogg_free(b->data);
-      _ogg_free(b);
-    }
-    bs->unused_buffers=0;
-    while(rt){
-      ogg_reference *r=rt;
-      rt=r->next;
-      _ogg_free(r);
-    }
-    bs->unused_references=0;
-
-    if(!bs->outstanding)
-      _ogg_free(bs);
-
-  }
-}
-
-static void ogg_buffer_destroy(ogg_buffer_state *bs){
-  bs->shutdown=1;
-  _ogg_buffer_destroy(bs);
-}
-
-static ogg_buffer *_fetch_buffer(ogg_buffer_state *bs,long bytes){
-  ogg_buffer    *ob;
-  bs->outstanding++;
-
-  /* do we have an unused buffer sitting in the pool? */
-  if(bs->unused_buffers){
-    ob=bs->unused_buffers;
-    bs->unused_buffers=ob->ptr.next;
-
-    /* if the unused buffer is too small, grow it */
-    if(ob->size<bytes){
-      ob->data=_ogg_realloc(ob->data,bytes);
-      ob->size=bytes;
-    }
-  }else{
-    /* allocate a new buffer */
-    ob=_ogg_malloc(sizeof(*ob));
-    ob->data=_ogg_malloc(bytes<16?16:bytes);
-    ob->size=bytes;
-  }
-
-  ob->refcount=1;
-  ob->ptr.owner=bs;
-  return ob;
-}
-
-static ogg_reference *_fetch_ref(ogg_buffer_state *bs){
-  ogg_reference *or;
-  bs->outstanding++;
-
-  /* do we have an unused reference sitting in the pool? */
-  if(bs->unused_references){
-    or=bs->unused_references;
-    bs->unused_references=or->next;
-  }else{
-    /* allocate a new reference */
-    or=_ogg_malloc(sizeof(*or));
-  }
-
-  or->begin=0;
-  or->length=0;
-  or->next=0;
-  return or;
-}
-
-/* fetch a reference pointing to a fresh, initially continguous buffer
-   of at least [bytes] length */
-static ogg_reference *ogg_buffer_alloc(ogg_buffer_state *bs,long bytes){
-  ogg_buffer    *ob=_fetch_buffer(bs,bytes);
-  ogg_reference *or=_fetch_ref(bs);
-  or->buffer=ob;
-  return or;
-}
-
-/* enlarge the data buffer in the current link */
-static void ogg_buffer_realloc(ogg_reference *or,long bytes){
-  ogg_buffer    *ob=or->buffer;
-  
-  /* if the unused buffer is too small, grow it */
-  if(ob->size<bytes){
-    ob->data=_ogg_realloc(ob->data,bytes);
-    ob->size=bytes;
-  }
-}
-
-static void _ogg_buffer_mark_one(ogg_reference *or){
-  or->buffer->refcount++;
-}
-
-/* increase the refcount of the buffers to which the reference points */
-static void ogg_buffer_mark(ogg_reference *or){
-  while(or){
-    _ogg_buffer_mark_one(or);
-    or=or->next;
-  }
-}
-
-/* duplicate a reference (pointing to the same actual buffer memory)
-   and increment buffer refcount.  If the desired segment begins out
-   of range, NULL is returned; if the desired segment is simply zero
-   length, a zero length ref is returned.  Partial range overlap
-   returns the overlap of the ranges */
-static ogg_reference *ogg_buffer_sub(ogg_reference *or,long begin,long length){
-  ogg_reference *ret=0,*head=0;
-
-  /* walk past any preceeding fragments we don't want */
-  while(or && begin>=or->length){
-    begin-=or->length;
-    or=or->next;
-  }
-
-  /* duplicate the reference chain; increment refcounts */
-  while(or && length){
-    ogg_reference *temp=_fetch_ref(or->buffer->ptr.owner);
-    if(head)
-      head->next=temp;
-    else
-      ret=temp;
-    head=temp;
-    head->buffer=or->buffer;    
-    head->begin=or->begin+begin;
-    head->length=length;
-    if(head->length>or->length-begin)
-      head->length=or->length-begin;
-    
-    begin=0;
-    length-=head->length;
-    or=or->next;
-  }
-
-  ogg_buffer_mark(ret);
-  return ret;
-}
-
-ogg_reference *ogg_buffer_dup(ogg_reference *or){
-  ogg_reference *ret=0,*head=0;
-  /* duplicate the reference chain; increment refcounts */
-  while(or){
-    ogg_reference *temp=_fetch_ref(or->buffer->ptr.owner);
-    if(head)
-      head->next=temp;
-    else
-      ret=temp;
-    head=temp;
-    head->buffer=or->buffer;    
-    head->begin=or->begin;
-    head->length=or->length;
-    or=or->next;
-  }
-
-  ogg_buffer_mark(ret);
-  return ret;
-}
-
-/* split a reference into two references; 'return' is a reference to
-   the buffer preceeding pos and 'head'/'tail' are the buffer past the
-   split.  If pos is at or past the end of the passed in segment,
-   'head/tail' are NULL */
-static ogg_reference *ogg_buffer_split(ogg_reference **tail,
-                                ogg_reference **head,long pos){
-
-  /* walk past any preceeding fragments to one of:
-     a) the exact boundary that seps two fragments
-     b) the fragment that needs split somewhere in the middle */
-  ogg_reference *ret=*tail;
-  ogg_reference *or=*tail;
-
-  while(or && pos>or->length){
-    pos-=or->length;
-    or=or->next;
-  }
-
-  if(!or || pos==0){
-
-    return 0;
-    
-  }else{
-    
-    if(pos>=or->length){
-      /* exact split, or off the end? */
-      if(or->next){
-        
-        /* a split */
-        *tail=or->next;
-        or->next=0;
-        
-      }else{
-        
-        /* off or at the end */
-        *tail=*head=0;
-        
-      }
-    }else{
-      
-      /* split within a fragment */
-      long lengthA=pos;
-      long beginB=or->begin+pos;
-      long lengthB=or->length-pos;
-      
-      /* make a new reference to tail the second piece */
-      *tail=_fetch_ref(or->buffer->ptr.owner);
-      
-      (*tail)->buffer=or->buffer;
-      (*tail)->begin=beginB;
-      (*tail)->length=lengthB;
-      (*tail)->next=or->next;
-      _ogg_buffer_mark_one(*tail);
-      if(head && or==*head)*head=*tail;    
-      
-      /* update the first piece */
-      or->next=0;
-      or->length=lengthA;
-      
-    }
-  }
-  return ret;
-}
-
-static void ogg_buffer_release_one(ogg_reference *or){
-  ogg_buffer *ob=or->buffer;
-  ogg_buffer_state *bs=ob->ptr.owner;
-
-  ob->refcount--;
-  if(ob->refcount==0){
-    bs->outstanding--; /* for the returned buffer */
-    ob->ptr.next=bs->unused_buffers;
-    bs->unused_buffers=ob;
-  }
-  
-  bs->outstanding--; /* for the returned reference */
-  or->next=bs->unused_references;
-  bs->unused_references=or;
-
-  _ogg_buffer_destroy(bs); /* lazy cleanup (if needed) */
-
-}
-
-/* release the references, decrease the refcounts of buffers to which
-   they point, release any buffers with a refcount that drops to zero */
-static void ogg_buffer_release(ogg_reference *or){
-  while(or){
-    ogg_reference *next=or->next;
-    ogg_buffer_release_one(or);
-    or=next;
-  }
-}
-
-static ogg_reference *ogg_buffer_pretruncate(ogg_reference *or,long pos){
-  /* release preceeding fragments we don't want */
-  while(or && pos>=or->length){
-    ogg_reference *next=or->next;
-    pos-=or->length;
-    ogg_buffer_release_one(or);
-    or=next;
-  }
-  if (or) {
-    or->begin+=pos;
-    or->length-=pos;
-  }
-  return or;
-}
-
-static ogg_reference *ogg_buffer_walk(ogg_reference *or){
-  if(!or)return NULL;
-  while(or->next){
-    or=or->next;
-  }
-  return(or);
-}
-
-/* *head is appended to the front end (head) of *tail; both continue to
-   be valid pointers, with *tail at the tail and *head at the head */
-static ogg_reference *ogg_buffer_cat(ogg_reference *tail, ogg_reference *head){
-  if(!tail)return head;
-
-  while(tail->next){
-    tail=tail->next;
-  }
-  tail->next=head;
-  return ogg_buffer_walk(head);
-}
-
-static void _positionB(oggbyte_buffer *b,int pos){
-  if(pos<b->pos){
-    /* start at beginning, scan forward */
-    b->ref=b->baseref;
-    b->pos=0;
-    b->end=b->pos+b->ref->length;
-    b->ptr=b->ref->buffer->data+b->ref->begin;
-  }
-}
-
-static void _positionF(oggbyte_buffer *b,int pos){
-  /* scan forward for position */
-  while(pos>=b->end){
-    /* just seek forward */
-    b->pos+=b->ref->length;
-    b->ref=b->ref->next;
-    b->end=b->ref->length+b->pos;
-    b->ptr=b->ref->buffer->data+b->ref->begin;
-  }
-}
-
-static int oggbyte_init(oggbyte_buffer *b,ogg_reference *or){
-  memset(b,0,sizeof(*b));
-  if(or){
-    b->ref=b->baseref=or;
-    b->pos=0;
-    b->end=b->ref->length;
-    b->ptr=b->ref->buffer->data+b->ref->begin;  
-    return 0;
-  }else
-    return -1;
-}
-
-static void oggbyte_set4(oggbyte_buffer *b,ogg_uint32_t val,int pos){
-  int i;
-  _positionB(b,pos);
-  for(i=0;i<4;i++){
-    _positionF(b,pos);
-    b->ptr[pos-b->pos]=val;
-    val>>=8;
-    ++pos;
-  }
-}
- 
-static unsigned char oggbyte_read1(oggbyte_buffer *b,int pos){
-  _positionB(b,pos);
-  _positionF(b,pos);
-  return b->ptr[pos-b->pos];
-}
-
-static ogg_uint32_t oggbyte_read4(oggbyte_buffer *b,int pos){
-  ogg_uint32_t ret;
-  _positionB(b,pos);
-  _positionF(b,pos);
-  ret=b->ptr[pos-b->pos];
-  _positionF(b,++pos);
-  ret|=b->ptr[pos-b->pos]<<8;
-  _positionF(b,++pos);
-  ret|=b->ptr[pos-b->pos]<<16;
-  _positionF(b,++pos);
-  ret|=b->ptr[pos-b->pos]<<24;
-  return ret;
-}
-
-static ogg_int64_t oggbyte_read8(oggbyte_buffer *b,int pos){
-  ogg_int64_t ret;
-  unsigned char t[7];
-  int i;
-  _positionB(b,pos);
-  for(i=0;i<7;i++){
-    _positionF(b,pos);
-    t[i]=b->ptr[pos++ -b->pos];
-  }
-
-  _positionF(b,pos);
-  ret=b->ptr[pos-b->pos];
-
-  for(i=6;i>=0;--i)
-    ret= ret<<8 | t[i];
-
-  return ret;
-}
-
-/* Now we get to the actual framing code */
-
-int ogg_page_version(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read1(&ob,4);
-}
-
-int ogg_page_continued(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read1(&ob,5)&0x01;
-}
-
-int ogg_page_bos(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read1(&ob,5)&0x02;
-}
-
-int ogg_page_eos(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read1(&ob,5)&0x04;
-}
-
-ogg_int64_t ogg_page_granulepos(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read8(&ob,6);
-}
-
-ogg_uint32_t ogg_page_serialno(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read4(&ob,14);
-}
- 
-ogg_uint32_t ogg_page_pageno(ogg_page *og){
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-  return oggbyte_read4(&ob,18);
-}
-
-/* returns the number of packets that are completed on this page (if
-   the leading packet is begun on a previous page, but ends on this
-   page, it's counted */
-
-/* NOTE:
-If a page consists of a packet begun on a previous page, and a new
-packet begun (but not completed) on this page, the return will be:
-  ogg_page_packets(page)   ==1, 
-  ogg_page_continued(page) !=0
-
-If a page happens to be a single packet that was begun on a
-previous page, and spans to the next page (in the case of a three or
-more page packet), the return will be: 
-  ogg_page_packets(page)   ==0, 
-  ogg_page_continued(page) !=0
-*/
-
-int ogg_page_packets(ogg_page *og){
-  int i;
-  int n;
-  int count=0;
-  oggbyte_buffer ob;
-  oggbyte_init(&ob,og->header);
-
-  n=oggbyte_read1(&ob,26);
-  for(i=0;i<n;i++)
-    if(oggbyte_read1(&ob,27+i)<255)count++;
-  return(count);
-}
-
-/* Static CRC calculation table.  See older code in CVS for dead
-   run-time initialization code. */
-
-static ogg_uint32_t crc_lookup[256]={
-  0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9,
-  0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005,
-  0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61,
-  0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd,
-  0x4c11db70,0x48d0c6c7,0x4593e01e,0x4152fda9,
-  0x5f15adac,0x5bd4b01b,0x569796c2,0x52568b75,
-  0x6a1936c8,0x6ed82b7f,0x639b0da6,0x675a1011,
-  0x791d4014,0x7ddc5da3,0x709f7b7a,0x745e66cd,
-  0x9823b6e0,0x9ce2ab57,0x91a18d8e,0x95609039,
-  0x8b27c03c,0x8fe6dd8b,0x82a5fb52,0x8664e6e5,
-  0xbe2b5b58,0xbaea46ef,0xb7a96036,0xb3687d81,
-  0xad2f2d84,0xa9ee3033,0xa4ad16ea,0xa06c0b5d,
-  0xd4326d90,0xd0f37027,0xddb056fe,0xd9714b49,
-  0xc7361b4c,0xc3f706fb,0xceb42022,0xca753d95,
-  0xf23a8028,0xf6fb9d9f,0xfbb8bb46,0xff79a6f1,
-  0xe13ef6f4,0xe5ffeb43,0xe8bccd9a,0xec7dd02d,
-  0x34867077,0x30476dc0,0x3d044b19,0x39c556ae,
-  0x278206ab,0x23431b1c,0x2e003dc5,0x2ac12072,
-  0x128e9dcf,0x164f8078,0x1b0ca6a1,0x1fcdbb16,
-  0x018aeb13,0x054bf6a4,0x0808d07d,0x0cc9cdca,
-  0x7897ab07,0x7c56b6b0,0x71159069,0x75d48dde,
-  0x6b93dddb,0x6f52c06c,0x6211e6b5,0x66d0fb02,
-  0x5e9f46bf,0x5a5e5b08,0x571d7dd1,0x53dc6066,
-  0x4d9b3063,0x495a2dd4,0x44190b0d,0x40d816ba,
-  0xaca5c697,0xa864db20,0xa527fdf9,0xa1e6e04e,
-  0xbfa1b04b,0xbb60adfc,0xb6238b25,0xb2e29692,
-  0x8aad2b2f,0x8e6c3698,0x832f1041,0x87ee0df6,
-  0x99a95df3,0x9d684044,0x902b669d,0x94ea7b2a,
-  0xe0b41de7,0xe4750050,0xe9362689,0xedf73b3e,
-  0xf3b06b3b,0xf771768c,0xfa325055,0xfef34de2,
-  0xc6bcf05f,0xc27dede8,0xcf3ecb31,0xcbffd686,
-  0xd5b88683,0xd1799b34,0xdc3abded,0xd8fba05a,
-  0x690ce0ee,0x6dcdfd59,0x608edb80,0x644fc637,
-  0x7a089632,0x7ec98b85,0x738aad5c,0x774bb0eb,
-  0x4f040d56,0x4bc510e1,0x46863638,0x42472b8f,
-  0x5c007b8a,0x58c1663d,0x558240e4,0x51435d53,
-  0x251d3b9e,0x21dc2629,0x2c9f00f0,0x285e1d47,
-  0x36194d42,0x32d850f5,0x3f9b762c,0x3b5a6b9b,
-  0x0315d626,0x07d4cb91,0x0a97ed48,0x0e56f0ff,
-  0x1011a0fa,0x14d0bd4d,0x19939b94,0x1d528623,
-  0xf12f560e,0xf5ee4bb9,0xf8ad6d60,0xfc6c70d7,
-  0xe22b20d2,0xe6ea3d65,0xeba91bbc,0xef68060b,
-  0xd727bbb6,0xd3e6a601,0xdea580d8,0xda649d6f,
-  0xc423cd6a,0xc0e2d0dd,0xcda1f604,0xc960ebb3,
-  0xbd3e8d7e,0xb9ff90c9,0xb4bcb610,0xb07daba7,
-  0xae3afba2,0xaafbe615,0xa7b8c0cc,0xa379dd7b,
-  0x9b3660c6,0x9ff77d71,0x92b45ba8,0x9675461f,
-  0x8832161a,0x8cf30bad,0x81b02d74,0x857130c3,
-  0x5d8a9099,0x594b8d2e,0x5408abf7,0x50c9b640,
-  0x4e8ee645,0x4a4ffbf2,0x470cdd2b,0x43cdc09c,
-  0x7b827d21,0x7f436096,0x7200464f,0x76c15bf8,
-  0x68860bfd,0x6c47164a,0x61043093,0x65c52d24,
-  0x119b4be9,0x155a565e,0x18197087,0x1cd86d30,
-  0x029f3d35,0x065e2082,0x0b1d065b,0x0fdc1bec,
-  0x3793a651,0x3352bbe6,0x3e119d3f,0x3ad08088,
-  0x2497d08d,0x2056cd3a,0x2d15ebe3,0x29d4f654,
-  0xc5a92679,0xc1683bce,0xcc2b1d17,0xc8ea00a0,
-  0xd6ad50a5,0xd26c4d12,0xdf2f6bcb,0xdbee767c,
-  0xe3a1cbc1,0xe760d676,0xea23f0af,0xeee2ed18,
-  0xf0a5bd1d,0xf464a0aa,0xf9278673,0xfde69bc4,
-  0x89b8fd09,0x8d79e0be,0x803ac667,0x84fbdbd0,
-  0x9abc8bd5,0x9e7d9662,0x933eb0bb,0x97ffad0c,
-  0xafb010b1,0xab710d06,0xa6322bdf,0xa2f33668,
-  0xbcb4666d,0xb8757bda,0xb5365d03,0xb1f740b4};
-
-ogg_sync_state *ogg_sync_create(void){
-  ogg_sync_state *oy=_ogg_calloc(1,sizeof(*oy));
-  memset(oy,0,sizeof(*oy));
-  oy->bufferpool=ogg_buffer_create();
-  return oy;
-}
-
-int ogg_sync_destroy(ogg_sync_state *oy){
-  if(oy){
-    ogg_sync_reset(oy);
-    ogg_buffer_destroy(oy->bufferpool);
-    memset(oy,0,sizeof(*oy));
-    _ogg_free(oy);
-  }
-  return OGG_SUCCESS;
-}
-
-unsigned char *ogg_sync_bufferin(ogg_sync_state *oy, long bytes){
-
-  /* [allocate and] expose a buffer for data submission.
-
-     If there is no head fragment
-       allocate one and expose it
-     else
-       if the current head fragment has sufficient unused space
-         expose it
-       else
-         if the current head fragment is unused
-           resize and expose it
-         else
-           allocate new fragment and expose it
-  */
-
-  /* base case; fifo uninitialized */
-  if(!oy->fifo_head){
-    oy->fifo_head=oy->fifo_tail=ogg_buffer_alloc(oy->bufferpool,bytes);
-    return oy->fifo_head->buffer->data;
-  }
-  
-  /* space left in current fragment case */
-  if(oy->fifo_head->buffer->size-
-     oy->fifo_head->length-
-     oy->fifo_head->begin >= bytes)
-    return oy->fifo_head->buffer->data+
-      oy->fifo_head->length+oy->fifo_head->begin;
-
-  /* current fragment is unused, but too small */
-  if(!oy->fifo_head->length){
-    ogg_buffer_realloc(oy->fifo_head,bytes);
-    return oy->fifo_head->buffer->data+oy->fifo_head->begin;
-  }
-  
-  /* current fragment used/full; get new fragment */
-  {
-    ogg_reference *new=ogg_buffer_alloc(oy->bufferpool,bytes);
-    oy->fifo_head->next=new;
-    oy->fifo_head=new;
-  }
-  return oy->fifo_head->buffer->data;
-}
-
-int ogg_sync_wrote(ogg_sync_state *oy, long bytes){ 
-  if(!oy->fifo_head)return OGG_EINVAL;
-  if(oy->fifo_head->buffer->size-oy->fifo_head->length-oy->fifo_head->begin < 
-     bytes)return OGG_EINVAL;
-  oy->fifo_head->length+=bytes;
-  oy->fifo_fill+=bytes;
-  return OGG_SUCCESS;
-}
-
-static ogg_uint32_t _checksum(ogg_reference *or, int bytes){
-  ogg_uint32_t crc_reg=0;
-  int j,post;
-
-  while(or){
-    unsigned char *data=or->buffer->data+or->begin;
-    post=(bytes<or->length?bytes:or->length);
-    for(j=0;j<post;++j)
-      crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^data[j]];
-    bytes-=j;
-    or=or->next;
-  }
-
-  return crc_reg;
-}
-
-
-/* sync the stream.  This is meant to be useful for finding page
-   boundaries.
-
-   return values for this:
-  -n) skipped n bytes
-   0) page not ready; more data (no bytes skipped)
-   n) page synced at current location; page length n bytes
-   
-*/
-
-long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){
-  oggbyte_buffer page;
-  long           bytes,ret=0;
-
-  ogg_page_release(og);
-
-  bytes=oy->fifo_fill;
-  oggbyte_init(&page,oy->fifo_tail);
-
-  if(oy->headerbytes==0){
-    if(bytes<27)goto sync_out; /* not enough for even a minimal header */
-    
-    /* verify capture pattern */
-    if(oggbyte_read1(&page,0)!=(int)'O' ||
-       oggbyte_read1(&page,1)!=(int)'g' ||
-       oggbyte_read1(&page,2)!=(int)'g' ||
-       oggbyte_read1(&page,3)!=(int)'S'    ) goto sync_fail;
-
-    oy->headerbytes=oggbyte_read1(&page,26)+27;
-  }
-  if(bytes<oy->headerbytes)goto sync_out; /* not enough for header +
-                                             seg table */
-  if(oy->bodybytes==0){
-    int i;
-    /* count up body length in the segment table */
-    for(i=0;i<oy->headerbytes-27;i++)
-      oy->bodybytes+=oggbyte_read1(&page,27+i);
-  }
-  
-  if(oy->bodybytes+oy->headerbytes>bytes)goto sync_out;
-
-  /* we have what appears to be a complete page; last test: verify
-     checksum */
-  {
-    ogg_uint32_t chksum=oggbyte_read4(&page,22);
-    oggbyte_set4(&page,0,22);
-
-    /* Compare checksums; memory continues to be common access */
-    if(chksum!=_checksum(oy->fifo_tail,oy->bodybytes+oy->headerbytes)){
-      
-      /* D'oh.  Mismatch! Corrupt page (or miscapture and not a page
-         at all). replace the computed checksum with the one actually
-         read in; remember all the memory is common access */
-      
-      oggbyte_set4(&page,chksum,22);
-      goto sync_fail;
-    }
-    oggbyte_set4(&page,chksum,22);
-  }
-
-  /* We have a page.  Set up page return. */
-  if(og){
-    /* set up page output */
-    og->header=ogg_buffer_split(&oy->fifo_tail,&oy->fifo_head,oy->headerbytes);
-    og->header_len=oy->headerbytes;
-    og->body=ogg_buffer_split(&oy->fifo_tail,&oy->fifo_head,oy->bodybytes);
-    og->body_len=oy->bodybytes;
-  }else{
-    /* simply advance */
-    oy->fifo_tail=
-      ogg_buffer_pretruncate(oy->fifo_tail,oy->headerbytes+oy->bodybytes);
-    if(!oy->fifo_tail)oy->fifo_head=0;
-  }
-  
-  ret=oy->headerbytes+oy->bodybytes;
-  oy->unsynced=0;
-  oy->headerbytes=0;
-  oy->bodybytes=0;
-  oy->fifo_fill-=ret;
-
-  return ret;
-  
- sync_fail:
-
-  oy->headerbytes=0;
-  oy->bodybytes=0;
-  oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,1);
-  ret--;
-  
-  /* search forward through fragments for possible capture */
-  while(oy->fifo_tail){
-    /* invariant: fifo_cursor points to a position in fifo_tail */
-    unsigned char *now=oy->fifo_tail->buffer->data+oy->fifo_tail->begin;
-    unsigned char *next=memchr(now, 'O', oy->fifo_tail->length);
-      
-    if(next){
-      /* possible capture in this segment */
-      long bytes=next-now;
-      oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,bytes);
-      ret-=bytes;
-      break;
-    }else{
-      /* no capture.  advance to next segment */
-      long bytes=oy->fifo_tail->length;
-      ret-=bytes;
-      oy->fifo_tail=ogg_buffer_pretruncate(oy->fifo_tail,bytes);
-    }
-  }
-  if(!oy->fifo_tail)oy->fifo_head=0;
-  oy->fifo_fill+=ret;
-
- sync_out:
-  return ret;
-}
-
-/* sync the stream and get a page.  Keep trying until we find a page.
-   Supress 'sync errors' after reporting the first.
-
-   return values:
-   OGG_HOLE) recapture (hole in data)
-          0) need more data
-          1) page returned
-
-   Returns pointers into buffered data; invalidated by next call to
-   _stream, _clear, _init, or _buffer */
-
-int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){
-
-  /* all we need to do is verify a page at the head of the stream
-     buffer.  If it doesn't verify, we look for the next potential
-     frame */
-
-  while(1){
-    long ret=ogg_sync_pageseek(oy,og);
-    if(ret>0){
-      /* have a page */
-      return 1;
-    }
-    if(ret==0){
-      /* need more data */
-      return 0;
-    }
-    
-    /* head did not start a synced page... skipped some bytes */
-    if(!oy->unsynced){
-      oy->unsynced=1;
-      return OGG_HOLE;
-    }
-
-    /* loop. keep looking */
-
-  }
-}
-
-/* clear things to an initial state.  Good to call, eg, before seeking */
-int ogg_sync_reset(ogg_sync_state *oy){
-
-  ogg_buffer_release(oy->fifo_tail);
-  oy->fifo_tail=0;
-  oy->fifo_head=0;
-  oy->fifo_fill=0;
-
-  oy->unsynced=0;
-  oy->headerbytes=0;
-  oy->bodybytes=0;
-  return OGG_SUCCESS;
-}
-
-ogg_stream_state *ogg_stream_create(int serialno){
-  ogg_stream_state *os=_ogg_calloc(1,sizeof(*os));
-  os->serialno=serialno;
-  os->pageno=-1;
-  return os;
-} 
-
-int ogg_stream_destroy(ogg_stream_state *os){
-  if(os){
-    ogg_buffer_release(os->header_tail);
-    ogg_buffer_release(os->body_tail);
-    memset(os,0,sizeof(*os));    
-    _ogg_free(os);
-  }
-  return OGG_SUCCESS;
-} 
-
-
-#define FINFLAG 0x80000000UL
-#define FINMASK 0x7fffffffUL
-
-static void _next_lace(oggbyte_buffer *ob,ogg_stream_state *os){
-  /* search ahead one lace */
-  os->body_fill_next=0;
-  while(os->laceptr<os->lacing_fill){
-    int val=oggbyte_read1(ob,27+os->laceptr++);
-    os->body_fill_next+=val;
-    if(val<255){
-      os->body_fill_next|=FINFLAG;
-      os->clearflag=1;
-      break;
-    }
-  }
-}
-
-static void _span_queued_page(ogg_stream_state *os){ 
-  while( !(os->body_fill&FINFLAG) ){
-    
-    if(!os->header_tail)break;
-
-    /* first flush out preceeding page header (if any).  Body is
-       flushed as it's consumed, so that's not done here. */
-
-    if(os->lacing_fill>=0)
-      os->header_tail=ogg_buffer_pretruncate(os->header_tail,
-                                             os->lacing_fill+27);
-    os->lacing_fill=0;
-    os->laceptr=0;
-    os->clearflag=0;
-
-    if(!os->header_tail){
-      os->header_head=0;
-      break;
-    }else{
-      
-      /* process/prepare next page, if any */
-
-      long pageno;
-      oggbyte_buffer ob;
-      ogg_page og;               /* only for parsing header values */
-      og.header=os->header_tail; /* only for parsing header values */
-      pageno=ogg_page_pageno(&og);
-
-      oggbyte_init(&ob,os->header_tail);
-      os->lacing_fill=oggbyte_read1(&ob,26);
-      
-      /* are we in sequence? */
-      if(pageno!=os->pageno){
-        if(os->pageno==-1) /* indicates seek or reset */
-          os->holeflag=1;  /* set for internal use */
-        else
-          os->holeflag=2;  /* set for external reporting */
-
-        os->body_tail=ogg_buffer_pretruncate(os->body_tail,
-                                             os->body_fill);
-        if(os->body_tail==0)os->body_head=0;
-        os->body_fill=0;
-
-      }
-    
-      if(ogg_page_continued(&og)){
-        if(os->body_fill==0){
-          /* continued packet, but no preceeding data to continue */
-          /* dump the first partial packet on the page */
-          _next_lace(&ob,os);   
-          os->body_tail=
-            ogg_buffer_pretruncate(os->body_tail,os->body_fill_next&FINMASK);
-          if(os->body_tail==0)os->body_head=0;
-          /* set span flag */
-          if(!os->spanflag && !os->holeflag)os->spanflag=2;
-        }
-      }else{
-        if(os->body_fill>0){
-          /* preceeding data to continue, but not a continued page */
-          /* dump body_fill */
-          os->body_tail=ogg_buffer_pretruncate(os->body_tail,
-                                               os->body_fill);
-          if(os->body_tail==0)os->body_head=0;
-          os->body_fill=0;
-
-          /* set espan flag */
-          if(!os->spanflag && !os->holeflag)os->spanflag=2;
-        }
-      }
-
-      if(os->laceptr<os->lacing_fill){
-        os->granulepos=ogg_page_granulepos(&og);
-
-        /* get current packet size & flag */
-        _next_lace(&ob,os);
-        os->body_fill+=os->body_fill_next; /* addition handles the flag fine;
-                                             unsigned on purpose */
-        /* ...and next packet size & flag */
-        _next_lace(&ob,os);
-
-      }
-      
-      os->pageno=pageno+1;
-      os->e_o_s=ogg_page_eos(&og);
-      os->b_o_s=ogg_page_bos(&og);
-    
-    }
-  }
-}
-
-/* add the incoming page to the stream state; we decompose the page
-   into packet segments here as well. */
-
-int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){
-
-  int serialno=ogg_page_serialno(og);
-  int version=ogg_page_version(og);
-
-  /* check the serial number */
-  if(serialno!=os->serialno){
-    ogg_page_release(og);
-    return OGG_ESERIAL;
-  }
-  if(version>0){
-    ogg_page_release(og);
-    return OGG_EVERSION;
-  }
-
-  /* add to fifos */
-  if(!os->body_tail){
-    os->body_tail=og->body;
-    os->body_head=ogg_buffer_walk(og->body);
-  }else{
-    os->body_head=ogg_buffer_cat(os->body_head,og->body);
-  }
-  if(!os->header_tail){
-    os->header_tail=og->header;
-    os->header_head=ogg_buffer_walk(og->header);
-    os->lacing_fill=-27;
-  }else{
-    os->header_head=ogg_buffer_cat(os->header_head,og->header);
-  }
-
-  memset(og,0,sizeof(*og));
-  return OGG_SUCCESS;
-}
-
-int ogg_stream_reset(ogg_stream_state *os){
-
-  ogg_buffer_release(os->header_tail);
-  ogg_buffer_release(os->body_tail);
-  os->header_tail=os->header_head=0;
-  os->body_tail=os->body_head=0;
-
-  os->e_o_s=0;
-  os->b_o_s=0;
-  os->pageno=-1;
-  os->packetno=0;
-  os->granulepos=0;
-
-  os->body_fill=0;
-  os->lacing_fill=0;
-
-  os->holeflag=0;
-  os->spanflag=0;
-  os->clearflag=0;
-  os->laceptr=0;
-  os->body_fill_next=0;
-
-  return OGG_SUCCESS;
-}
-
-int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){
-  ogg_stream_reset(os);
-  os->serialno=serialno;
-  return OGG_SUCCESS;
-}
-
-static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){
-
-  ogg_packet_release(op);
-  _span_queued_page(os);
-
-  if(os->holeflag){
-    int temp=os->holeflag;
-    if(os->clearflag)
-      os->holeflag=0;
-    else
-      os->holeflag=1;
-    if(temp==2){
-      os->packetno++;
-      return OGG_HOLE;
-    }
-  }
-  if(os->spanflag){
-    int temp=os->spanflag;
-    if(os->clearflag)
-      os->spanflag=0;
-    else
-      os->spanflag=1;
-    if(temp==2){
-      os->packetno++;
-      return OGG_SPAN;
-    }
-  }
-
-  if(!(os->body_fill&FINFLAG)) return 0;
-  if(!op && !adv)return 1; /* just using peek as an inexpensive way
-                               to ask if there's a whole packet
-                               waiting */
-  if(op){
-    op->b_o_s=os->b_o_s;
-    if(os->e_o_s && os->body_fill_next==0)
-      op->e_o_s=os->e_o_s;
-    else
-      op->e_o_s=0;
-    if( (os->body_fill&FINFLAG) && !(os->body_fill_next&FINFLAG) )
-      op->granulepos=os->granulepos;
-    else
-      op->granulepos=-1;
-    op->packetno=os->packetno;
-  }
-
-  if(adv){
-    oggbyte_buffer ob;
-    oggbyte_init(&ob,os->header_tail);
-
-    /* split the body contents off */
-    if(op){
-      op->packet=ogg_buffer_split(&os->body_tail,&os->body_head,
-				  os->body_fill&FINMASK);
-      op->bytes=os->body_fill&FINMASK;
-    }else{
-      os->body_tail=ogg_buffer_pretruncate(os->body_tail,
-					   os->body_fill&FINMASK);
-      if(os->body_tail==0)os->body_head=0;
-    }
-
-    /* update lacing pointers */
-    os->body_fill=os->body_fill_next;
-    _next_lace(&ob,os);
-  }else{
-    if(op){
-      op->packet=ogg_buffer_sub(os->body_tail,0,os->body_fill&FINMASK);
-      op->bytes=os->body_fill&FINMASK;
-    }
-  }
-  
-  if(adv){
-    os->packetno++;
-    os->b_o_s=0;
-  }
-
-  return 1;
-}
-
-int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op){
-  return _packetout(os,op,1);
-}
-
-int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op){
-  return _packetout(os,op,0);
-}
-
-int ogg_packet_release(ogg_packet *op) {
-  if(op){
-    ogg_buffer_release(op->packet);
-    memset(op, 0, sizeof(*op));
-  }
-  return OGG_SUCCESS;
-}
-
-int ogg_page_release(ogg_page *og) {
-  if(og){
-    ogg_buffer_release(og->header);
-    ogg_buffer_release(og->body);
-    memset(og, 0, sizeof(*og));
-  }
-  return OGG_SUCCESS;
-}
-
-void ogg_page_dup(ogg_page *dup,ogg_page *orig){
-  dup->header_len=orig->header_len;
-  dup->body_len=orig->body_len;
-  dup->header=ogg_buffer_dup(orig->header);
-  dup->body=ogg_buffer_dup(orig->body);
-}
-
--- a/misc/libtremor/info.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: maintain the info structure, info <-> header packets
-
- ********************************************************************/
-
-/* general handling of the header and the vorbis_info structure (and
-   substructures) */
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include "ogg.h"
-#include "ivorbiscodec.h"
-#include "codec_internal.h"
-#include "codebook.h"
-#include "registry.h"
-#include "window.h"
-#include "misc.h"
-
-/* helpers */
-static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){
-  while(bytes--){
-    *buf++=oggpack_read(o,8);
-  }
-}
-
-void vorbis_comment_init(vorbis_comment *vc){
-  memset(vc,0,sizeof(*vc));
-}
-
-/* This is more or less the same as strncasecmp - but that doesn't exist
- * everywhere, and this is a fairly trivial function, so we include it */
-static int tagcompare(const char *s1, const char *s2, int n){
-  int c=0;
-  while(c < n){
-    if(toupper(s1[c]) != toupper(s2[c]))
-      return !0;
-    c++;
-  }
-  return 0;
-}
-
-char *vorbis_comment_query(vorbis_comment *vc, char *tag, int count){
-  long i;
-  int found = 0;
-  int taglen = strlen(tag)+1; /* +1 for the = we append */
-  char *fulltag = (char *)alloca(taglen+ 1);
-
-  strcpy(fulltag, tag);
-  strcat(fulltag, "=");
-  
-  for(i=0;i<vc->comments;i++){
-    if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
-      if(count == found)
-	/* We return a pointer to the data, not a copy */
-      	return vc->user_comments[i] + taglen;
-      else
-	found++;
-    }
-  }
-  return NULL; /* didn't find anything */
-}
-
-int vorbis_comment_query_count(vorbis_comment *vc, char *tag){
-  int i,count=0;
-  int taglen = strlen(tag)+1; /* +1 for the = we append */
-  char *fulltag = (char *)alloca(taglen+1);
-  strcpy(fulltag,tag);
-  strcat(fulltag, "=");
-
-  for(i=0;i<vc->comments;i++){
-    if(!tagcompare(vc->user_comments[i], fulltag, taglen))
-      count++;
-  }
-
-  return count;
-}
-
-void vorbis_comment_clear(vorbis_comment *vc){
-  if(vc){
-    long i;
-    for(i=0;i<vc->comments;i++)
-      if(vc->user_comments[i])_ogg_free(vc->user_comments[i]);
-    if(vc->user_comments)_ogg_free(vc->user_comments);
-	if(vc->comment_lengths)_ogg_free(vc->comment_lengths);
-    if(vc->vendor)_ogg_free(vc->vendor);
-    memset(vc,0,sizeof(*vc));
-  }
-}
-
-/* blocksize 0 is guaranteed to be short, 1 is guarantted to be long.
-   They may be equal, but short will never ge greater than long */
-int vorbis_info_blocksize(vorbis_info *vi,int zo){
-  codec_setup_info *ci = (codec_setup_info *)vi->codec_setup;
-  return ci ? ci->blocksizes[zo] : -1;
-}
-
-/* used by synthesis, which has a full, alloced vi */
-void vorbis_info_init(vorbis_info *vi){
-  memset(vi,0,sizeof(*vi));
-  vi->codec_setup=(codec_setup_info *)_ogg_calloc(1,sizeof(codec_setup_info));
-}
-
-void vorbis_info_clear(vorbis_info *vi){
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  int i;
-
-  if(ci){
-
-    for(i=0;i<ci->modes;i++)
-      if(ci->mode_param[i])_ogg_free(ci->mode_param[i]);
-
-    for(i=0;i<ci->maps;i++) /* unpack does the range checking */
-      if(ci->map_param[i])
-	_mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]);
-
-    for(i=0;i<ci->floors;i++) /* unpack does the range checking */
-      if(ci->floor_param[i])
-	_floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]);
-    
-    for(i=0;i<ci->residues;i++) /* unpack does the range checking */
-      if(ci->residue_param[i])
-	_residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]);
-
-    for(i=0;i<ci->books;i++){
-      if(ci->book_param[i]){
-	/* knows if the book was not alloced */
-	vorbis_staticbook_destroy(ci->book_param[i]);
-      }
-      if(ci->fullbooks)
-	vorbis_book_clear(ci->fullbooks+i);
-    }
-    if(ci->fullbooks)
-	_ogg_free(ci->fullbooks);
-    
-    _ogg_free(ci);
-  }
-
-  memset(vi,0,sizeof(*vi));
-}
-
-/* Header packing/unpacking ********************************************/
-
-static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  if(!ci)return(OV_EFAULT);
-
-  vi->version=oggpack_read(opb,32);
-  if(vi->version!=0)return(OV_EVERSION);
-
-  vi->channels=oggpack_read(opb,8);
-  vi->rate=oggpack_read(opb,32);
-
-  vi->bitrate_upper=oggpack_read(opb,32);
-  vi->bitrate_nominal=oggpack_read(opb,32);
-  vi->bitrate_lower=oggpack_read(opb,32);
-
-  ci->blocksizes[0]=1<<oggpack_read(opb,4);
-  ci->blocksizes[1]=1<<oggpack_read(opb,4);
-  
-  if(vi->rate<1)goto err_out;
-  if(vi->channels<1)goto err_out;
-  if(ci->blocksizes[0]<64)goto err_out; 
-  if(ci->blocksizes[1]<ci->blocksizes[0])goto err_out;
-  if(ci->blocksizes[1]>8192)goto err_out;
-  
-  if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */
-
-  return(0);
- err_out:
-  vorbis_info_clear(vi);
-  return(OV_EBADHEADER);
-}
-
-static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){
-  int i;
-  int vendorlen=oggpack_read(opb,32);
-  if(vendorlen<0)goto err_out;
-  vc->vendor=(char *)_ogg_calloc(vendorlen+1,1);
-  _v_readstring(opb,vc->vendor,vendorlen);
-  vc->comments=oggpack_read(opb,32);
-  if(vc->comments<0)goto err_out;
-  vc->user_comments=(char **)_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments));
-  vc->comment_lengths=(int *)_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths));
-	    
-  for(i=0;i<vc->comments;i++){
-    int len=oggpack_read(opb,32);
-    if(len<0)goto err_out;
-	vc->comment_lengths[i]=len;
-    vc->user_comments[i]=(char *)_ogg_calloc(len+1,1);
-    _v_readstring(opb,vc->user_comments[i],len);
-  }	  
-  if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */
-
-  return(0);
- err_out:
-  vorbis_comment_clear(vc);
-  return(OV_EBADHEADER);
-}
-
-/* all of the real encoding details are here.  The modes, books,
-   everything */
-static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  int i;
-  if(!ci)return(OV_EFAULT);
-
-  /* codebooks */
-  ci->books=oggpack_read(opb,8)+1;
-  /*ci->book_param=_ogg_calloc(ci->books,sizeof(*ci->book_param));*/
-  for(i=0;i<ci->books;i++){
-    ci->book_param[i]=(static_codebook *)_ogg_calloc(1,sizeof(*ci->book_param[i]));
-    if(vorbis_staticbook_unpack(opb,ci->book_param[i]))goto err_out;
-  }
-
-  /* time backend settings */
-  ci->times=oggpack_read(opb,6)+1;
-  /*ci->time_type=_ogg_malloc(ci->times*sizeof(*ci->time_type));*/
-  /*ci->time_param=_ogg_calloc(ci->times,sizeof(void *));*/
-  for(i=0;i<ci->times;i++){
-    ci->time_type[i]=oggpack_read(opb,16);
-    if(ci->time_type[i]<0 || ci->time_type[i]>=VI_TIMEB)goto err_out;
-    /* ci->time_param[i]=_time_P[ci->time_type[i]]->unpack(vi,opb);
-       Vorbis I has no time backend */
-    /*if(!ci->time_param[i])goto err_out;*/
-  }
-
-  /* floor backend settings */
-  ci->floors=oggpack_read(opb,6)+1;
-  /*ci->floor_type=_ogg_malloc(ci->floors*sizeof(*ci->floor_type));*/
-  /*ci->floor_param=_ogg_calloc(ci->floors,sizeof(void *));*/
-  for(i=0;i<ci->floors;i++){
-    ci->floor_type[i]=oggpack_read(opb,16);
-    if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out;
-    ci->floor_param[i]=_floor_P[ci->floor_type[i]]->unpack(vi,opb);
-    if(!ci->floor_param[i])goto err_out;
-  }
-
-  /* residue backend settings */
-  ci->residues=oggpack_read(opb,6)+1;
-  /*ci->residue_type=_ogg_malloc(ci->residues*sizeof(*ci->residue_type));*/
-  /*ci->residue_param=_ogg_calloc(ci->residues,sizeof(void *));*/
-  for(i=0;i<ci->residues;i++){
-    ci->residue_type[i]=oggpack_read(opb,16);
-    if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out;
-    ci->residue_param[i]=_residue_P[ci->residue_type[i]]->unpack(vi,opb);
-    if(!ci->residue_param[i])goto err_out;
-  }
-
-  /* map backend settings */
-  ci->maps=oggpack_read(opb,6)+1;
-  /*ci->map_type=_ogg_malloc(ci->maps*sizeof(*ci->map_type));*/
-  /*ci->map_param=_ogg_calloc(ci->maps,sizeof(void *));*/
-  for(i=0;i<ci->maps;i++){
-    ci->map_type[i]=oggpack_read(opb,16);
-    if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out;
-    ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb);
-    if(!ci->map_param[i])goto err_out;
-  }
-  
-  /* mode settings */
-  ci->modes=oggpack_read(opb,6)+1;
-  /*vi->mode_param=_ogg_calloc(vi->modes,sizeof(void *));*/
-  for(i=0;i<ci->modes;i++){
-    ci->mode_param[i]=(vorbis_info_mode *)_ogg_calloc(1,sizeof(*ci->mode_param[i]));
-    ci->mode_param[i]->blockflag=oggpack_read(opb,1);
-    ci->mode_param[i]->windowtype=oggpack_read(opb,16);
-    ci->mode_param[i]->transformtype=oggpack_read(opb,16);
-    ci->mode_param[i]->mapping=oggpack_read(opb,8);
-
-    if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out;
-    if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out;
-    if(ci->mode_param[i]->mapping>=ci->maps)goto err_out;
-  }
-  
-  if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */
-
-  return(0);
- err_out:
-  vorbis_info_clear(vi);
-  return(OV_EBADHEADER);
-}
-
-/* The Vorbis header is in three packets; the initial small packet in
-   the first page that identifies basic parameters, a second packet
-   with bitstream comments and a third packet that holds the
-   codebook. */
-
-int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){
-  oggpack_buffer opb;
-  
-  if(op){
-    oggpack_readinit(&opb,op->packet);
-
-    /* Which of the three types of header is this? */
-    /* Also verify header-ness, vorbis */
-    {
-      char buffer[6];
-      int packtype=oggpack_read(&opb,8);
-      memset(buffer,0,6);
-      _v_readstring(&opb,buffer,6);
-      if(memcmp(buffer,"vorbis",6)){
-	/* not a vorbis header */
-	return(OV_ENOTVORBIS);
-      }
-      switch(packtype){
-      case 0x01: /* least significant *bit* is read first */
-	if(!op->b_o_s){
-	  /* Not the initial packet */
-	  return(OV_EBADHEADER);
-	}
-	if(vi->rate!=0){
-	  /* previously initialized info header */
-	  return(OV_EBADHEADER);
-	}
-
-	return(_vorbis_unpack_info(vi,&opb));
-
-      case 0x03: /* least significant *bit* is read first */
-	if(vi->rate==0){
-	  /* um... we didn't get the initial header */
-	  return(OV_EBADHEADER);
-	}
-
-	return(_vorbis_unpack_comment(vc,&opb));
-
-      case 0x05: /* least significant *bit* is read first */
-	if(vi->rate==0 || vc->vendor==NULL){
-	  /* um... we didn;t get the initial header or comments yet */
-	  return(OV_EBADHEADER);
-	}
-
-	return(_vorbis_unpack_books(vi,&opb));
-
-      default:
-	/* Not a valid vorbis header type */
-	return(OV_EBADHEADER);
-	break;
-      }
-    }
-  }
-  return(OV_EBADHEADER);
-}
-
--- a/misc/libtremor/ivorbiscodec.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: libvorbis codec headers
-
- ********************************************************************/
-
-#ifndef _vorbis_codec_h_
-#define _vorbis_codec_h_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-#include "ogg.h"
-
-typedef struct vorbis_info{
-  int version;
-  int channels;
-  long rate;
-
-  /* The below bitrate declarations are *hints*.
-     Combinations of the three values carry the following implications:
-     
-     all three set to the same value: 
-       implies a fixed rate bitstream
-     only nominal set: 
-       implies a VBR stream that averages the nominal bitrate.  No hard 
-       upper/lower limit
-     upper and or lower set: 
-       implies a VBR bitstream that obeys the bitrate limits. nominal 
-       may also be set to give a nominal rate.
-     none set:
-       the coder does not care to speculate.
-  */
-
-  long bitrate_upper;
-  long bitrate_nominal;
-  long bitrate_lower;
-  long bitrate_window;
-
-  void *codec_setup;
-} vorbis_info;
-
-/* vorbis_dsp_state buffers the current vorbis audio
-   analysis/synthesis state.  The DSP state belongs to a specific
-   logical bitstream ****************************************************/
-typedef struct vorbis_dsp_state{
-  int analysisp;
-  vorbis_info *vi;
-
-  ogg_int32_t **pcm;
-  ogg_int32_t **pcmret;
-  int      pcm_storage;
-  int      pcm_current;
-  int      pcm_returned;
-
-  int  preextrapolate;
-  int  eofflag;
-
-  long lW;
-  long W;
-  long nW;
-  long centerW;
-
-  ogg_int64_t granulepos;
-  ogg_int64_t sequence;
-
-  void       *backend_state;
-} vorbis_dsp_state;
-
-typedef struct vorbis_block{
-  /* necessary stream state for linking to the framing abstraction */
-  ogg_int32_t  **pcm;       /* this is a pointer into local storage */ 
-  oggpack_buffer opb;
-  
-  long  lW;
-  long  W;
-  long  nW;
-  int   pcmend;
-  int   mode;
-
-  int         eofflag;
-  ogg_int64_t granulepos;
-  ogg_int64_t sequence;
-  vorbis_dsp_state *vd; /* For read-only access of configuration */
-
-  /* local storage to avoid remallocing; it's up to the mapping to
-     structure it */
-  void               *localstore;
-  long                localtop;
-  long                localalloc;
-  long                totaluse;
-  struct alloc_chain *reap;
-
-} vorbis_block;
-
-/* vorbis_block is a single block of data to be processed as part of
-the analysis/synthesis stream; it belongs to a specific logical
-bitstream, but is independant from other vorbis_blocks belonging to
-that logical bitstream. *************************************************/
-
-struct alloc_chain{
-  void *ptr;
-  struct alloc_chain *next;
-};
-
-/* vorbis_info contains all the setup information specific to the
-   specific compression/decompression mode in progress (eg,
-   psychoacoustic settings, channel setup, options, codebook
-   etc). vorbis_info and substructures are in backends.h.
-*********************************************************************/
-
-/* the comments are not part of vorbis_info so that vorbis_info can be
-   static storage */
-typedef struct vorbis_comment{
-  /* unlimited user comment fields.  libvorbis writes 'libvorbis'
-     whatever vendor is set to in encode */
-  char **user_comments;
-  int   *comment_lengths;
-  int    comments;
-  char  *vendor;
-
-} vorbis_comment;
-
-
-/* libvorbis encodes in two abstraction layers; first we perform DSP
-   and produce a packet (see docs/analysis.txt).  The packet is then
-   coded into a framed OggSquish bitstream by the second layer (see
-   docs/framing.txt).  Decode is the reverse process; we sync/frame
-   the bitstream and extract individual packets, then decode the
-   packet back into PCM audio.
-
-   The extra framing/packetizing is used in streaming formats, such as
-   files.  Over the net (such as with UDP), the framing and
-   packetization aren't necessary as they're provided by the transport
-   and the streaming layer is not used */
-
-/* Vorbis PRIMITIVES: general ***************************************/
-
-extern void     vorbis_info_init(vorbis_info *vi);
-extern void     vorbis_info_clear(vorbis_info *vi);
-extern int      vorbis_info_blocksize(vorbis_info *vi,int zo);
-extern void     vorbis_comment_init(vorbis_comment *vc);
-extern void     vorbis_comment_add(vorbis_comment *vc, char *comment); 
-extern void     vorbis_comment_add_tag(vorbis_comment *vc, 
-				       char *tag, char *contents);
-extern char    *vorbis_comment_query(vorbis_comment *vc, char *tag, int count);
-extern int      vorbis_comment_query_count(vorbis_comment *vc, char *tag);
-extern void     vorbis_comment_clear(vorbis_comment *vc);
-
-extern int      vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
-extern int      vorbis_block_clear(vorbis_block *vb);
-extern void     vorbis_dsp_clear(vorbis_dsp_state *v);
-
-/* Vorbis PRIMITIVES: synthesis layer *******************************/
-extern int      vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
-					  ogg_packet *op);
-
-extern int      vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
-extern int      vorbis_synthesis_restart(vorbis_dsp_state *v);
-extern int      vorbis_synthesis(vorbis_block *vb,ogg_packet *op,int decodep);
-extern int      vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
-extern int      vorbis_synthesis_pcmout(vorbis_dsp_state *v,ogg_int32_t ***pcm);
-extern int      vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
-extern long     vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
-
-/* Vorbis ERRORS and return codes ***********************************/
-
-#define OV_FALSE      -1  
-#define OV_EOF        -2
-#define OV_HOLE       -3
-
-#define OV_EREAD      -128
-#define OV_EFAULT     -129
-#define OV_EIMPL      -130
-#define OV_EINVAL     -131
-#define OV_ENOTVORBIS -132
-#define OV_EBADHEADER -133
-#define OV_EVERSION   -134
-#define OV_ENOTAUDIO  -135
-#define OV_EBADPACKET -136
-#define OV_EBADLINK   -137
-#define OV_ENOSEEK    -138
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-
--- a/misc/libtremor/ivorbisfile.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: stdio-based convenience library for opening/seeking/decoding
-
- ********************************************************************/
-
-#ifndef _OV_FILE_H_
-#define _OV_FILE_H_
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-#include <stdio.h>
-#include "ivorbiscodec.h"
-
-#define CHUNKSIZE 1024
-/* The function prototypes for the callbacks are basically the same as for
- * the stdio functions fread, fseek, fclose, ftell. 
- * The one difference is that the FILE * arguments have been replaced with
- * a void * - this is to be used as a pointer to whatever internal data these
- * functions might need. In the stdio case, it's just a FILE * cast to a void *
- * 
- * If you use other functions, check the docs for these functions and return
- * the right values. For seek_func(), you *MUST* return -1 if the stream is
- * unseekable
- */
-typedef struct {
-  size_t (*read_func)  (void *ptr, size_t size, size_t nmemb, void *datasource);
-  int    (*seek_func)  (void *datasource, ogg_int64_t offset, int whence);
-  int    (*close_func) (void *datasource);
-  long   (*tell_func)  (void *datasource);
-} ov_callbacks;
-
-#define  NOTOPEN   0
-#define  PARTOPEN  1
-#define  OPENED    2
-#define  STREAMSET 3
-#define  INITSET   4
-
-typedef struct OggVorbis_File {
-  void            *datasource; /* Pointer to a FILE *, etc. */
-  int              seekable;
-  ogg_int64_t      offset;
-  ogg_int64_t      end;
-  ogg_sync_state   *oy; 
-
-  /* If the FILE handle isn't seekable (eg, a pipe), only the current
-     stream appears */
-  int              links;
-  ogg_int64_t     *offsets;
-  ogg_int64_t     *dataoffsets;
-  ogg_uint32_t    *serialnos;
-  ogg_int64_t     *pcmlengths;
-  vorbis_info     *vi;
-  vorbis_comment  *vc;
-
-  /* Decoding working state local storage */
-  ogg_int64_t      pcm_offset;
-  int              ready_state;
-  ogg_uint32_t     current_serialno;
-  int              current_link;
-
-  ogg_int64_t      bittrack;
-  ogg_int64_t      samptrack;
-
-  ogg_stream_state *os; /* take physical pages, weld into a logical
-                          stream of packets */
-  vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
-  vorbis_block     vb; /* local working space for packet->PCM decode */
-
-  ov_callbacks callbacks;
-
-} OggVorbis_File;
-
-extern int ov_clear(OggVorbis_File *vf);
-extern int ov_open(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
-extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf,
-		char *initial, long ibytes, ov_callbacks callbacks);
-
-extern int ov_test(FILE *f,OggVorbis_File *vf,char *initial,long ibytes);
-extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf,
-		char *initial, long ibytes, ov_callbacks callbacks);
-extern int ov_test_open(OggVorbis_File *vf);
-
-extern long ov_bitrate(OggVorbis_File *vf,int i);
-extern long ov_bitrate_instant(OggVorbis_File *vf);
-extern long ov_streams(OggVorbis_File *vf);
-extern long ov_seekable(OggVorbis_File *vf);
-extern long ov_serialnumber(OggVorbis_File *vf,int i);
-
-extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
-extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
-extern ogg_int64_t ov_time_total(OggVorbis_File *vf,int i);
-
-extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos);
-extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
-extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
-extern int ov_time_seek(OggVorbis_File *vf,ogg_int64_t pos);
-extern int ov_time_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
-
-extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
-extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
-extern ogg_int64_t ov_time_tell(OggVorbis_File *vf);
-
-extern vorbis_info *ov_info(OggVorbis_File *vf,int link);
-extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
-
-extern long ov_read(OggVorbis_File *vf,char *buffer,int length,
-		    int *bitstream);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
-
-
--- a/misc/libtremor/ivorbisfile_example.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: simple example decoder using vorbisidec
-
- ********************************************************************/
-
-/* Takes a vorbis bitstream from stdin and writes raw stereo PCM to
-   stdout using vorbisfile. Using vorbisfile is much simpler than
-   dealing with libvorbis. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <vorbis/ivorbiscodec.h>
-#include <vorbis/ivorbisfile.h>
-
-#ifdef _WIN32 /* We need the following two to set stdin/stdout to binary */
-#include <io.h>
-#include <fcntl.h>
-#endif
-
-char pcmout[4096]; /* take 4k out of the data segment, not the stack */
-
-int main(){
-  OggVorbis_File vf;
-  int eof=0;
-  int current_section;
-
-#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
-  /* Beware the evil ifdef. We avoid these where we can, but this one we 
-     cannot. Don't add any more, you'll probably go to hell if you do. */
-  _setmode( _fileno( stdin ), _O_BINARY );
-  _setmode( _fileno( stdout ), _O_BINARY );
-#endif
-
-  if(ov_open(stdin, &vf, NULL, 0) < 0) {
-      fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
-      exit(1);
-  }
-
-  /* Throw the comments plus a few lines about the bitstream we're
-     decoding */
-  {
-    char **ptr=ov_comment(&vf,-1)->user_comments;
-    vorbis_info *vi=ov_info(&vf,-1);
-    while(*ptr){
-      fprintf(stderr,"%s\n",*ptr);
-      ++ptr;
-    }
-    fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate);
-    fprintf(stderr,"\nDecoded length: %ld samples\n",
-	    (long)ov_pcm_total(&vf,-1));
-    fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
-  }
-  
-  while(!eof){
-    long ret=ov_read(&vf,pcmout,sizeof(pcmout),&current_section);
-    if (ret == 0) {
-      /* EOF */
-      eof=1;
-    } else if (ret < 0) {
-      /* error in the stream.  Not a problem, just reporting it in
-	 case we (the app) cares.  In this case, we don't. */
-    } else {
-      /* we don't bother dealing with sample rate changes, etc, but
-	 you'll have to*/
-      fwrite(pcmout,1,ret,stdout);
-    }
-  }
-
-  /* cleanup */
-  ov_clear(&vf);
-    
-  fprintf(stderr,"Done.\n");
-  return(0);
-}
--- a/misc/libtremor/lsp_lookup.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
-  function: lookup data
-
- ********************************************************************/
-
-#ifndef _V_LOOKUP_DATA_H_
-#define _V_LOOKUP_DATA_H_
-
-#include "os_types.h"
-
-#define FROMdB_LOOKUP_SZ 35
-#define FROMdB2_LOOKUP_SZ 32
-#define FROMdB_SHIFT 5
-#define FROMdB2_SHIFT 3
-#define FROMdB2_MASK 31
-
-static const ogg_int32_t FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={
-  0x003fffff, 0x0028619b, 0x00197a96, 0x0010137a,
-  0x000a24b0, 0x00066666, 0x000409c3, 0x00028c42,
-  0x00019b8c, 0x000103ab, 0x0000a3d7, 0x00006760,
-  0x0000413a, 0x00002928, 0x000019f8, 0x00001062,
-  0x00000a56, 0x00000686, 0x0000041e, 0x00000299,
-  0x000001a3, 0x00000109, 0x000000a7, 0x00000069,
-  0x00000042, 0x0000002a, 0x0000001a, 0x00000011,
-  0x0000000b, 0x00000007, 0x00000004, 0x00000003,
-  0x00000002, 0x00000001, 0x00000001};
-
-static const ogg_int32_t FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={
-  0x000001fc, 0x000001f5, 0x000001ee, 0x000001e7,
-  0x000001e0, 0x000001d9, 0x000001d2, 0x000001cc,
-  0x000001c5, 0x000001bf, 0x000001b8, 0x000001b2,
-  0x000001ac, 0x000001a6, 0x000001a0, 0x0000019a,
-  0x00000194, 0x0000018e, 0x00000188, 0x00000183,
-  0x0000017d, 0x00000178, 0x00000172, 0x0000016d,
-  0x00000168, 0x00000163, 0x0000015e, 0x00000159,
-  0x00000154, 0x0000014f, 0x0000014a, 0x00000145,
-};
-
-#define INVSQ_LOOKUP_I_SHIFT 10
-#define INVSQ_LOOKUP_I_MASK 1023
-static const long INVSQ_LOOKUP_I[64+1]={
-	   92682,   91966,   91267,   90583,
-	   89915,   89261,   88621,   87995,
-	   87381,   86781,   86192,   85616,
-	   85051,   84497,   83953,   83420,
-	   82897,   82384,   81880,   81385,
-	   80899,   80422,   79953,   79492,
-	   79039,   78594,   78156,   77726,
-	   77302,   76885,   76475,   76072,
-	   75674,   75283,   74898,   74519,
-	   74146,   73778,   73415,   73058,
-	   72706,   72359,   72016,   71679,
-	   71347,   71019,   70695,   70376,
-	   70061,   69750,   69444,   69141,
-	   68842,   68548,   68256,   67969,
-	   67685,   67405,   67128,   66855,
-	   66585,   66318,   66054,   65794,
-	   65536,
-};
-
-static const long INVSQ_LOOKUP_IDel[64]={
-             716,     699,     684,     668,
-             654,     640,     626,     614,
-             600,     589,     576,     565,
-             554,     544,     533,     523,
-             513,     504,     495,     486,
-             477,     469,     461,     453,
-             445,     438,     430,     424,
-             417,     410,     403,     398,
-             391,     385,     379,     373,
-             368,     363,     357,     352,
-             347,     343,     337,     332,
-             328,     324,     319,     315,
-             311,     306,     303,     299,
-             294,     292,     287,     284,
-             280,     277,     273,     270,
-             267,     264,     260,     258,
-};
-
-#define COS_LOOKUP_I_SHIFT 9
-#define COS_LOOKUP_I_MASK 511
-#define COS_LOOKUP_I_SZ 128
-static const ogg_int32_t COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={
-	   16384,   16379,   16364,   16340,
-	   16305,   16261,   16207,   16143,
-	   16069,   15986,   15893,   15791,
-	   15679,   15557,   15426,   15286,
-	   15137,   14978,   14811,   14635,
-	   14449,   14256,   14053,   13842,
-	   13623,   13395,   13160,   12916,
-	   12665,   12406,   12140,   11866,
-	   11585,   11297,   11003,   10702,
-	   10394,   10080,    9760,    9434,
-	    9102,    8765,    8423,    8076,
-	    7723,    7366,    7005,    6639,
-	    6270,    5897,    5520,    5139,
-	    4756,    4370,    3981,    3590,
-	    3196,    2801,    2404,    2006,
-	    1606,    1205,     804,     402,
-	       0,    -401,    -803,   -1204,
-	   -1605,   -2005,   -2403,   -2800,
-	   -3195,   -3589,   -3980,   -4369,
-	   -4755,   -5138,   -5519,   -5896,
-	   -6269,   -6638,   -7004,   -7365,
-	   -7722,   -8075,   -8422,   -8764,
-	   -9101,   -9433,   -9759,  -10079,
-	  -10393,  -10701,  -11002,  -11296,
-	  -11584,  -11865,  -12139,  -12405,
-	  -12664,  -12915,  -13159,  -13394,
-	  -13622,  -13841,  -14052,  -14255,
-	  -14448,  -14634,  -14810,  -14977,
-	  -15136,  -15285,  -15425,  -15556,
-	  -15678,  -15790,  -15892,  -15985,
-	  -16068,  -16142,  -16206,  -16260,
-	  -16304,  -16339,  -16363,  -16378,
-	  -16383,
-};
-
-#endif
-
-
-
-
-
--- a/misc/libtremor/mapping0.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: channel mapping 0 implementation
-
- ********************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include "ogg.h"
-#include "ivorbiscodec.h"
-#include "mdct.h"
-#include "codec_internal.h"
-#include "codebook.h"
-#include "window.h"
-#include "registry.h"
-#include "misc.h"
-
-/* simplistic, wasteful way of doing this (unique lookup for each
-   mode/submapping); there should be a central repository for
-   identical lookups.  That will require minor work, so I'm putting it
-   off as low priority.
-
-   Why a lookup for each backend in a given mode?  Because the
-   blocksize is set by the mode, and low backend lookups may require
-   parameters from other areas of the mode/mapping */
-
-typedef struct {
-  vorbis_info_mode *mode;
-  vorbis_info_mapping0 *map;
-
-  vorbis_look_floor **floor_look;
-
-  vorbis_look_residue **residue_look;
-
-  vorbis_func_floor **floor_func;
-  vorbis_func_residue **residue_func;
-
-  int ch;
-  long lastframe; /* if a different mode is called, we need to 
-		     invalidate decay */
-} vorbis_look_mapping0;
-
-static void mapping0_free_info(vorbis_info_mapping *i){
-  vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i;
-  if(info){
-    memset(info,0,sizeof(*info));
-    _ogg_free(info);
-  }
-}
-
-static void mapping0_free_look(vorbis_look_mapping *look){
-  int i;
-  vorbis_look_mapping0 *l=(vorbis_look_mapping0 *)look;
-  if(l){
-
-    for(i=0;i<l->map->submaps;i++){
-      l->floor_func[i]->free_look(l->floor_look[i]);
-      l->residue_func[i]->free_look(l->residue_look[i]);
-    }
-
-    _ogg_free(l->floor_func);
-    _ogg_free(l->residue_func);
-    _ogg_free(l->floor_look);
-    _ogg_free(l->residue_look);
-    memset(l,0,sizeof(*l));
-    _ogg_free(l);
-  }
-}
-
-static vorbis_look_mapping *mapping0_look(vorbis_dsp_state *vd,vorbis_info_mode *vm,
-			  vorbis_info_mapping *m){
-  int i;
-  vorbis_info          *vi=vd->vi;
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)_ogg_calloc(1,sizeof(*look));
-  vorbis_info_mapping0 *info=look->map=(vorbis_info_mapping0 *)m;
-  look->mode=vm;
-  
-  look->floor_look=(vorbis_look_floor **)_ogg_calloc(info->submaps,sizeof(*look->floor_look));
-
-  look->residue_look=(vorbis_look_residue **)_ogg_calloc(info->submaps,sizeof(*look->residue_look));
-
-  look->floor_func=(vorbis_func_floor **)_ogg_calloc(info->submaps,sizeof(*look->floor_func));
-  look->residue_func=(vorbis_func_residue **)_ogg_calloc(info->submaps,sizeof(*look->residue_func));
-  
-  for(i=0;i<info->submaps;i++){
-    int floornum=info->floorsubmap[i];
-    int resnum=info->residuesubmap[i];
-
-    look->floor_func[i]=_floor_P[ci->floor_type[floornum]];
-    look->floor_look[i]=look->floor_func[i]->
-      look(vd,vm,ci->floor_param[floornum]);
-    look->residue_func[i]=_residue_P[ci->residue_type[resnum]];
-    look->residue_look[i]=look->residue_func[i]->
-      look(vd,vm,ci->residue_param[resnum]);
-    
-  }
-
-  look->ch=vi->channels;
-
-  return(look);
-}
-
-static int ilog(unsigned int v){
-  int ret=0;
-  if(v)--v;
-  while(v){
-    ret++;
-    v>>=1;
-  }
-  return(ret);
-}
-
-/* also responsible for range checking */
-static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){
-  int i;
-  vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)_ogg_calloc(1,sizeof(*info));
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  memset(info,0,sizeof(*info));
-
-  if(oggpack_read(opb,1))
-    info->submaps=oggpack_read(opb,4)+1;
-  else
-    info->submaps=1;
-
-  if(oggpack_read(opb,1)){
-    info->coupling_steps=oggpack_read(opb,8)+1;
-
-    for(i=0;i<info->coupling_steps;i++){
-      int testM=info->coupling_mag[i]=oggpack_read(opb,ilog(vi->channels));
-      int testA=info->coupling_ang[i]=oggpack_read(opb,ilog(vi->channels));
-
-      if(testM<0 || 
-	 testA<0 || 
-	 testM==testA || 
-	 testM>=vi->channels ||
-	 testA>=vi->channels) goto err_out;
-    }
-
-  }
-
-  if(oggpack_read(opb,2)>0)goto err_out; /* 2,3:reserved */
-    
-  if(info->submaps>1){
-    for(i=0;i<vi->channels;i++){
-      info->chmuxlist[i]=oggpack_read(opb,4);
-      if(info->chmuxlist[i]>=info->submaps)goto err_out;
-    }
-  }
-  for(i=0;i<info->submaps;i++){
-    int temp=oggpack_read(opb,8);
-    if(temp>=ci->times)goto err_out;
-    info->floorsubmap[i]=oggpack_read(opb,8);
-    if(info->floorsubmap[i]>=ci->floors)goto err_out;
-    info->residuesubmap[i]=oggpack_read(opb,8);
-    if(info->residuesubmap[i]>=ci->residues)goto err_out;
-  }
-
-  return info;
-
- err_out:
-  mapping0_free_info(info);
-  return(NULL);
-}
-
-static int seq=0;
-static int mapping0_inverse(vorbis_block *vb,vorbis_look_mapping *l){
-  vorbis_dsp_state     *vd=vb->vd;
-  vorbis_info          *vi=vd->vi;
-  codec_setup_info     *ci=(codec_setup_info *)vi->codec_setup;
-  private_state        *b=(private_state *)vd->backend_state;
-  vorbis_look_mapping0 *look=(vorbis_look_mapping0 *)l;
-  vorbis_info_mapping0 *info=look->map;
-
-  int                   i,j;
-  long                  n=vb->pcmend=ci->blocksizes[vb->W];
-
-  ogg_int32_t **pcmbundle=(ogg_int32_t **)alloca(sizeof(*pcmbundle)*vi->channels);
-  int    *zerobundle=(int *)alloca(sizeof(*zerobundle)*vi->channels);
-  
-  int   *nonzero  =(int *)alloca(sizeof(*nonzero)*vi->channels);
-  void **floormemo=(void **)alloca(sizeof(*floormemo)*vi->channels);
-  
-  /* time domain information decode (note that applying the
-     information would have to happen later; we'll probably add a
-     function entry to the harness for that later */
-  /* NOT IMPLEMENTED */
-
-  /* recover the spectral envelope; store it in the PCM vector for now */
-  for(i=0;i<vi->channels;i++){
-    int submap=info->chmuxlist[i];
-    floormemo[i]=look->floor_func[submap]->
-      inverse1(vb,look->floor_look[submap]);
-    if(floormemo[i])
-      nonzero[i]=1;
-    else
-      nonzero[i]=0;      
-    memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2);
-  }
-
-  /* channel coupling can 'dirty' the nonzero listing */
-  for(i=0;i<info->coupling_steps;i++){
-    if(nonzero[info->coupling_mag[i]] ||
-       nonzero[info->coupling_ang[i]]){
-      nonzero[info->coupling_mag[i]]=1; 
-      nonzero[info->coupling_ang[i]]=1; 
-    }
-  }
-
-  /* recover the residue into our working vectors */
-  for(i=0;i<info->submaps;i++){
-    int ch_in_bundle=0;
-    for(j=0;j<vi->channels;j++){
-      if(info->chmuxlist[j]==i){
-	if(nonzero[j])
-	  zerobundle[ch_in_bundle]=1;
-	else
-	  zerobundle[ch_in_bundle]=0;
-	pcmbundle[ch_in_bundle++]=vb->pcm[j];
-      }
-    }
-    
-    look->residue_func[i]->inverse(vb,look->residue_look[i],
-				   pcmbundle,zerobundle,ch_in_bundle);
-  }
-
-  //for(j=0;j<vi->channels;j++)
-  //_analysis_output("coupled",seq+j,vb->pcm[j],-8,n/2,0,0);
-
-
-  /* channel coupling */
-  for(i=info->coupling_steps-1;i>=0;i--){
-    ogg_int32_t *pcmM=vb->pcm[info->coupling_mag[i]];
-    ogg_int32_t *pcmA=vb->pcm[info->coupling_ang[i]];
-    
-    for(j=0;j<n/2;j++){
-      ogg_int32_t mag=pcmM[j];
-      ogg_int32_t ang=pcmA[j];
-      
-      if(mag>0)
-	if(ang>0){
-	  pcmM[j]=mag;
-	  pcmA[j]=mag-ang;
-	}else{
-	  pcmA[j]=mag;
-	  pcmM[j]=mag+ang;
-	}
-      else
-	if(ang>0){
-	  pcmM[j]=mag;
-	  pcmA[j]=mag+ang;
-	}else{
-	  pcmA[j]=mag;
-	  pcmM[j]=mag-ang;
-	}
-    }
-  }
-
-  //for(j=0;j<vi->channels;j++)
-  //_analysis_output("residue",seq+j,vb->pcm[j],-8,n/2,0,0);
-
-  /* compute and apply spectral envelope */
-  for(i=0;i<vi->channels;i++){
-    ogg_int32_t *pcm=vb->pcm[i];
-    int submap=info->chmuxlist[i];
-    look->floor_func[submap]->
-      inverse2(vb,look->floor_look[submap],floormemo[i],pcm);
-  }
-
-  //for(j=0;j<vi->channels;j++)
-  //_analysis_output("mdct",seq+j,vb->pcm[j],-24,n/2,0,1);
-
-  /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */
-  /* only MDCT right now.... */
-  for(i=0;i<vi->channels;i++){
-    ogg_int32_t *pcm=vb->pcm[i];
-    mdct_backward(n,pcm,pcm);
-  }
-
-  //for(j=0;j<vi->channels;j++)
-  //_analysis_output("imdct",seq+j,vb->pcm[j],-24,n,0,0);
-
-  /* window the data */
-  for(i=0;i<vi->channels;i++){
-    ogg_int32_t *pcm=vb->pcm[i];
-    if(nonzero[i])
-      _vorbis_apply_window(pcm,b->window,ci->blocksizes,vb->lW,vb->W,vb->nW);
-    else
-      for(j=0;j<n;j++)
-	pcm[j]=0;
-    
-  }
-
-  //for(j=0;j<vi->channels;j++)
-  //_analysis_output("window",seq+j,vb->pcm[j],-24,n,0,0);
-
-  seq+=vi->channels;
-  /* all done! */
-  return(0);
-}
-
-/* export hooks */
-vorbis_func_mapping mapping0_exportbundle={
-  &mapping0_unpack,
-  &mapping0_look,
-  &mapping0_free_info,
-  &mapping0_free_look,
-  &mapping0_inverse
-};
--- a/misc/libtremor/mdct.c	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,510 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: normalized modified discrete cosine transform
-           power of two length transform only [64 <= n ]
- last mod: $Id: mdct.c,v 1.9 2002/10/16 09:17:39 xiphmont Exp $
-
- Original algorithm adapted long ago from _The use of multirate filter
- banks for coding of high quality digital audio_, by T. Sporer,
- K. Brandenburg and B. Edler, collection of the European Signal
- Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp
- 211-214
-
- The below code implements an algorithm that no longer looks much like
- that presented in the paper, but the basic structure remains if you
- dig deep enough to see it.
-
- This module DOES NOT INCLUDE code to generate/apply the window
- function.  Everybody has their own weird favorite including me... I
- happen to like the properties of y=sin(.5PI*sin^2(x)), but others may
- vehemently disagree.
-
- ********************************************************************/
-
-#include "ivorbiscodec.h"
-#include "codebook.h"
-#include "misc.h"
-#include "mdct.h"
-#include "mdct_lookup.h"
-
-
-/* 8 point butterfly (in place) */
-STIN void mdct_butterfly_8(DATA_TYPE *x){
-
-  REG_TYPE r0   = x[4] + x[0];
-  REG_TYPE r1   = x[4] - x[0];
-  REG_TYPE r2   = x[5] + x[1];
-  REG_TYPE r3   = x[5] - x[1];
-  REG_TYPE r4   = x[6] + x[2];
-  REG_TYPE r5   = x[6] - x[2];
-  REG_TYPE r6   = x[7] + x[3];
-  REG_TYPE r7   = x[7] - x[3];
-
-	   x[0] = r5   + r3;
-	   x[1] = r7   - r1;
-	   x[2] = r5   - r3;
-	   x[3] = r7   + r1;
-           x[4] = r4   - r0;
-	   x[5] = r6   - r2;
-           x[6] = r4   + r0;
-	   x[7] = r6   + r2;
-	   MB();
-}
-
-/* 16 point butterfly (in place, 4 register) */
-STIN void mdct_butterfly_16(DATA_TYPE *x){
-
-  REG_TYPE r0, r1;
-
-	   r0 = x[ 0] - x[ 8]; x[ 8] += x[ 0];
-	   r1 = x[ 1] - x[ 9]; x[ 9] += x[ 1];
-	   x[ 0] = MULT31((r0 + r1) , cPI2_8);
-	   x[ 1] = MULT31((r1 - r0) , cPI2_8);
-	   MB();
-
-	   r0 = x[10] - x[ 2]; x[10] += x[ 2];
-	   r1 = x[ 3] - x[11]; x[11] += x[ 3];
-	   x[ 2] = r1; x[ 3] = r0;
-	   MB();
-
-	   r0 = x[12] - x[ 4]; x[12] += x[ 4];
-	   r1 = x[13] - x[ 5]; x[13] += x[ 5];
-	   x[ 4] = MULT31((r0 - r1) , cPI2_8);
-	   x[ 5] = MULT31((r0 + r1) , cPI2_8);
-	   MB();
-
-	   r0 = x[14] - x[ 6]; x[14] += x[ 6];
-	   r1 = x[15] - x[ 7]; x[15] += x[ 7];
-	   x[ 6] = r0; x[ 7] = r1;
-	   MB();
-
-	   mdct_butterfly_8(x);
-	   mdct_butterfly_8(x+8);
-}
-
-/* 32 point butterfly (in place, 4 register) */
-STIN void mdct_butterfly_32(DATA_TYPE *x){
-
-  REG_TYPE r0, r1;
-
-	   r0 = x[30] - x[14]; x[30] += x[14];           
-	   r1 = x[31] - x[15]; x[31] += x[15];
-	   x[14] = r0; x[15] = r1;
-	   MB();
-
-	   r0 = x[28] - x[12]; x[28] += x[12];           
-	   r1 = x[29] - x[13]; x[29] += x[13];
-	   XNPROD31( r0, r1, cPI1_8, cPI3_8, &x[12], &x[13] );
-	   MB();
-
-	   r0 = x[26] - x[10]; x[26] += x[10];
-	   r1 = x[27] - x[11]; x[27] += x[11];
-	   x[10] = MULT31((r0 - r1) , cPI2_8);
-	   x[11] = MULT31((r0 + r1) , cPI2_8);
-	   MB();
-
-	   r0 = x[24] - x[ 8]; x[24] += x[ 8];
-	   r1 = x[25] - x[ 9]; x[25] += x[ 9];
-	   XNPROD31( r0, r1, cPI3_8, cPI1_8, &x[ 8], &x[ 9] );
-	   MB();
-
-	   r0 = x[22] - x[ 6]; x[22] += x[ 6];
-	   r1 = x[ 7] - x[23]; x[23] += x[ 7];
-	   x[ 6] = r1; x[ 7] = r0;
-	   MB();
-
-	   r0 = x[ 4] - x[20]; x[20] += x[ 4];
-	   r1 = x[ 5] - x[21]; x[21] += x[ 5];
-	   XPROD31 ( r0, r1, cPI3_8, cPI1_8, &x[ 4], &x[ 5] );
-	   MB();
-
-	   r0 = x[ 2] - x[18]; x[18] += x[ 2];
-	   r1 = x[ 3] - x[19]; x[19] += x[ 3];
-	   x[ 2] = MULT31((r1 + r0) , cPI2_8);
-	   x[ 3] = MULT31((r1 - r0) , cPI2_8);
-	   MB();
-
-	   r0 = x[ 0] - x[16]; x[16] += x[ 0];
-	   r1 = x[ 1] - x[17]; x[17] += x[ 1];
-	   XPROD31 ( r0, r1, cPI1_8, cPI3_8, &x[ 0], &x[ 1] );
-	   MB();
-
-	   mdct_butterfly_16(x);
-	   mdct_butterfly_16(x+16);
-}
-
-/* N/stage point generic N stage butterfly (in place, 2 register) */
-STIN void mdct_butterfly_generic(DATA_TYPE *x,int points,int step){
-
-  LOOKUP_T *T   = sincos_lookup0;
-  DATA_TYPE *x1        = x + points      - 8;
-  DATA_TYPE *x2        = x + (points>>1) - 8;
-  REG_TYPE   r0;
-  REG_TYPE   r1;
-
-  do{
-    r0 = x1[6] - x2[6]; x1[6] += x2[6];
-    r1 = x2[7] - x1[7]; x1[7] += x2[7];
-    XPROD31( r1, r0, T[0], T[1], &x2[6], &x2[7] ); T+=step;
-
-    r0 = x1[4] - x2[4]; x1[4] += x2[4];
-    r1 = x2[5] - x1[5]; x1[5] += x2[5];
-    XPROD31( r1, r0, T[0], T[1], &x2[4], &x2[5] ); T+=step;
-
-    r0 = x1[2] - x2[2]; x1[2] += x2[2];
-    r1 = x2[3] - x1[3]; x1[3] += x2[3];
-    XPROD31( r1, r0, T[0], T[1], &x2[2], &x2[3] ); T+=step;
-
-    r0 = x1[0] - x2[0]; x1[0] += x2[0];
-    r1 = x2[1] - x1[1]; x1[1] += x2[1];
-    XPROD31( r1, r0, T[0], T[1], &x2[0], &x2[1] ); T+=step;
-
-    x1-=8; x2-=8;
-  }while(T<sincos_lookup0+1024);
-  do{
-    r0 = x1[6] - x2[6]; x1[6] += x2[6];
-    r1 = x1[7] - x2[7]; x1[7] += x2[7];
-    XNPROD31( r0, r1, T[0], T[1], &x2[6], &x2[7] ); T-=step;
-
-    r0 = x1[4] - x2[4]; x1[4] += x2[4];
-    r1 = x1[5] - x2[5]; x1[5] += x2[5];
-    XNPROD31( r0, r1, T[0], T[1], &x2[4], &x2[5] ); T-=step;
-
-    r0 = x1[2] - x2[2]; x1[2] += x2[2];
-    r1 = x1[3] - x2[3]; x1[3] += x2[3];
-    XNPROD31( r0, r1, T[0], T[1], &x2[2], &x2[3] ); T-=step;
-
-    r0 = x1[0] - x2[0]; x1[0] += x2[0];
-    r1 = x1[1] - x2[1]; x1[1] += x2[1];
-    XNPROD31( r0, r1, T[0], T[1], &x2[0], &x2[1] ); T-=step;
-
-    x1-=8; x2-=8;
-  }while(T>sincos_lookup0);
-  do{
-    r0 = x2[6] - x1[6]; x1[6] += x2[6];
-    r1 = x2[7] - x1[7]; x1[7] += x2[7];
-    XPROD31( r0, r1, T[0], T[1], &x2[6], &x2[7] ); T+=step;
-
-    r0 = x2[4] - x1[4]; x1[4] += x2[4];
-    r1 = x2[5] - x1[5]; x1[5] += x2[5];
-    XPROD31( r0, r1, T[0], T[1], &x2[4], &x2[5] ); T+=step;
-
-    r0 = x2[2] - x1[2]; x1[2] += x2[2];
-    r1 = x2[3] - x1[3]; x1[3] += x2[3];
-    XPROD31( r0, r1, T[0], T[1], &x2[2], &x2[3] ); T+=step;
-
-    r0 = x2[0] - x1[0]; x1[0] += x2[0];
-    r1 = x2[1] - x1[1]; x1[1] += x2[1];
-    XPROD31( r0, r1, T[0], T[1], &x2[0], &x2[1] ); T+=step;
-
-    x1-=8; x2-=8;
-  }while(T<sincos_lookup0+1024);
-  do{
-    r0 = x1[6] - x2[6]; x1[6] += x2[6];
-    r1 = x2[7] - x1[7]; x1[7] += x2[7];
-    XNPROD31( r1, r0, T[0], T[1], &x2[6], &x2[7] ); T-=step;
-
-    r0 = x1[4] - x2[4]; x1[4] += x2[4];
-    r1 = x2[5] - x1[5]; x1[5] += x2[5];
-    XNPROD31( r1, r0, T[0], T[1], &x2[4], &x2[5] ); T-=step;
-
-    r0 = x1[2] - x2[2]; x1[2] += x2[2];
-    r1 = x2[3] - x1[3]; x1[3] += x2[3];
-    XNPROD31( r1, r0, T[0], T[1], &x2[2], &x2[3] ); T-=step;
-
-    r0 = x1[0] - x2[0]; x1[0] += x2[0];
-    r1 = x2[1] - x1[1]; x1[1] += x2[1];
-    XNPROD31( r1, r0, T[0], T[1], &x2[0], &x2[1] ); T-=step;
-
-    x1-=8; x2-=8;
-  }while(T>sincos_lookup0);
-}
-
-STIN void mdct_butterflies(DATA_TYPE *x,int points,int shift){
-
-  int stages=8-shift;
-  int i,j;
-  
-  for(i=0;--stages>0;i++){
-    for(j=0;j<(1<<i);j++)
-      mdct_butterfly_generic(x+(points>>i)*j,points>>i,4<<(i+shift));
-  }
-
-  for(j=0;j<points;j+=32)
-    mdct_butterfly_32(x+j);
-
-}
-
-static unsigned char bitrev[16]={0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15};
-
-STIN int bitrev12(int x){
-  return bitrev[x>>8]|(bitrev[(x&0x0f0)>>4]<<4)|(((int)bitrev[x&0x00f])<<8);
-}
-
-STIN void mdct_bitreverse(DATA_TYPE *x,int n,int step,int shift){
-
-  int          bit   = 0;
-  DATA_TYPE   *w0    = x;
-  DATA_TYPE   *w1    = x = w0+(n>>1);
-  LOOKUP_T    *T = (step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1;
-  LOOKUP_T    *Ttop  = T+1024;
-  DATA_TYPE    r2;
-
-  do{
-    DATA_TYPE r3     = bitrev12(bit++);
-    DATA_TYPE *x0    = x + ((r3 ^ 0xfff)>>shift) -1;
-    DATA_TYPE *x1    = x + (r3>>shift);
-
-    REG_TYPE  r0     = x0[0]  + x1[0];
-    REG_TYPE  r1     = x1[1]  - x0[1];
-
-	      XPROD32( r0, r1, T[1], T[0], &r2, &r3 ); T+=step;
-
-	      w1    -= 4;
-
-	      r0     = (x0[1] + x1[1])>>1;
-              r1     = (x0[0] - x1[0])>>1;
-	      w0[0]  = r0     + r2;
-	      w0[1]  = r1     + r3;
-	      w1[2]  = r0     - r2;
-	      w1[3]  = r3     - r1;
-
-	      r3     = bitrev12(bit++);
-              x0     = x + ((r3 ^ 0xfff)>>shift) -1;
-              x1     = x + (r3>>shift);
-
-              r0     = x0[0]  + x1[0];
-              r1     = x1[1]  - x0[1];
-
-	      XPROD32( r0, r1, T[1], T[0], &r2, &r3 ); T+=step;
-
-              r0     = (x0[1] + x1[1])>>1;
-              r1     = (x0[0] - x1[0])>>1;
-	      w0[2]  = r0     + r2;
-	      w0[3]  = r1     + r3;
-	      w1[0]  = r0     - r2;
-	      w1[1]  = r3     - r1;
-
-	      w0    += 4;
-  }while(T<Ttop);
-  do{
-    DATA_TYPE r3     = bitrev12(bit++);
-    DATA_TYPE *x0    = x + ((r3 ^ 0xfff)>>shift) -1;
-    DATA_TYPE *x1    = x + (r3>>shift);
-
-    REG_TYPE  r0     = x0[0]  + x1[0];
-    REG_TYPE  r1     = x1[1]  - x0[1];
-
-	      T-=step; XPROD32( r0, r1, T[0], T[1], &r2, &r3 );
-
-	      w1    -= 4;
-
-	      r0     = (x0[1] + x1[1])>>1;
-              r1     = (x0[0] - x1[0])>>1;
-	      w0[0]  = r0     + r2;
-	      w0[1]  = r1     + r3;
-	      w1[2]  = r0     - r2;
-	      w1[3]  = r3     - r1;
-
-	      r3     = bitrev12(bit++);
-              x0     = x + ((r3 ^ 0xfff)>>shift) -1;
-              x1     = x + (r3>>shift);
-
-              r0     = x0[0]  + x1[0];
-              r1     = x1[1]  - x0[1];
-
-	      T-=step; XPROD32( r0, r1, T[0], T[1], &r2, &r3 );
-
-              r0     = (x0[1] + x1[1])>>1;
-              r1     = (x0[0] - x1[0])>>1;
-	      w0[2]  = r0     + r2;
-	      w0[3]  = r1     + r3;
-	      w1[0]  = r0     - r2;
-	      w1[1]  = r3     - r1;
-
-	      w0    += 4;
-  }while(w0<w1);
-}
-
-void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out){
-  int n2=n>>1;
-  int n4=n>>2;
-  DATA_TYPE *iX;
-  DATA_TYPE *oX;
-  LOOKUP_T *T;
-  LOOKUP_T *V;
-  int shift;
-  int step;
-
-  for (shift=6;!(n&(1<<shift));shift++);
-  shift=13-shift;
-  step=2<<shift;
-   
-  /* rotate */
-
-  iX            = in+n2-7;
-  oX            = out+n2+n4;
-  T             = sincos_lookup0;
-
-  do{
-    oX-=4;
-    XPROD31( iX[4], iX[6], T[0], T[1], &oX[2], &oX[3] ); T+=step;
-    XPROD31( iX[0], iX[2], T[0], T[1], &oX[0], &oX[1] ); T+=step;
-    iX-=8;
-  }while(iX>=in+n4);
-  do{
-    oX-=4;
-    XPROD31( iX[4], iX[6], T[1], T[0], &oX[2], &oX[3] ); T-=step;
-    XPROD31( iX[0], iX[2], T[1], T[0], &oX[0], &oX[1] ); T-=step;
-    iX-=8;
-  }while(iX>=in);
-
-  iX            = in+n2-8;
-  oX            = out+n2+n4;
-  T             = sincos_lookup0;
-
-  do{
-    T+=step; XNPROD31( iX[6], iX[4], T[0], T[1], &oX[0], &oX[1] );
-    T+=step; XNPROD31( iX[2], iX[0], T[0], T[1], &oX[2], &oX[3] );
-    iX-=8;
-    oX+=4;
-  }while(iX>=in+n4);
-  do{
-    T-=step; XNPROD31( iX[6], iX[4], T[1], T[0], &oX[0], &oX[1] );
-    T-=step; XNPROD31( iX[2], iX[0], T[1], T[0], &oX[2], &oX[3] );
-    iX-=8;
-    oX+=4;
-  }while(iX>=in);
-
-  mdct_butterflies(out+n2,n2,shift);
-  mdct_bitreverse(out,n,step,shift);
-
-  /* rotate + window */
-
-  step>>=2;
-  {
-    DATA_TYPE *oX1=out+n2+n4;
-    DATA_TYPE *oX2=out+n2+n4;
-    DATA_TYPE *iX =out;
-
-    switch(step) {
-      default: {
-        T=(step>=4)?(sincos_lookup0+(step>>1)):sincos_lookup1;
-        do{
-          oX1-=4;
-	  XPROD31( iX[0], -iX[1], T[0], T[1], &oX1[3], &oX2[0] ); T+=step;
-	  XPROD31( iX[2], -iX[3], T[0], T[1], &oX1[2], &oX2[1] ); T+=step;
-	  XPROD31( iX[4], -iX[5], T[0], T[1], &oX1[1], &oX2[2] ); T+=step;
-	  XPROD31( iX[6], -iX[7], T[0], T[1], &oX1[0], &oX2[3] ); T+=step;
-	  oX2+=4;
-	  iX+=8;
-	}while(iX<oX1);
-	break;
-      }
-
-      case 1: {
-        /* linear interpolation between table values: offset=0.5, step=1 */
-	REG_TYPE  t0,t1,v0,v1;
-        T         = sincos_lookup0;
-        V         = sincos_lookup1;
-	t0        = (*T++)>>1;
-	t1        = (*T++)>>1;
-        do{
-          oX1-=4;
-
-	  t0 += (v0 = (*V++)>>1);
-	  t1 += (v1 = (*V++)>>1);
-	  XPROD31( iX[0], -iX[1], t0, t1, &oX1[3], &oX2[0] );
-	  v0 += (t0 = (*T++)>>1);
-	  v1 += (t1 = (*T++)>>1);
-	  XPROD31( iX[2], -iX[3], v0, v1, &oX1[2], &oX2[1] );
-	  t0 += (v0 = (*V++)>>1);
-	  t1 += (v1 = (*V++)>>1);
-	  XPROD31( iX[4], -iX[5], t0, t1, &oX1[1], &oX2[2] );
-	  v0 += (t0 = (*T++)>>1);
-	  v1 += (t1 = (*T++)>>1);
-	  XPROD31( iX[6], -iX[7], v0, v1, &oX1[0], &oX2[3] );
-
-	  oX2+=4;
-	  iX+=8;
-	}while(iX<oX1);
-	break;
-      }
-
-      case 0: {
-        /* linear interpolation between table values: offset=0.25, step=0.5 */
-	REG_TYPE  t0,t1,v0,v1,q0,q1;
-        T         = sincos_lookup0;
-        V         = sincos_lookup1;
-	t0        = *T++;
-	t1        = *T++;
-        do{
-          oX1-=4;
-
-	  v0  = *V++;
-	  v1  = *V++;
-	  t0 +=  (q0 = (v0-t0)>>2);
-	  t1 +=  (q1 = (v1-t1)>>2);
-	  XPROD31( iX[0], -iX[1], t0, t1, &oX1[3], &oX2[0] );
-	  t0  = v0-q0;
-	  t1  = v1-q1;
-	  XPROD31( iX[2], -iX[3], t0, t1, &oX1[2], &oX2[1] );
-
-	  t0  = *T++;
-	  t1  = *T++;
-	  v0 += (q0 = (t0-v0)>>2);
-	  v1 += (q1 = (t1-v1)>>2);
-	  XPROD31( iX[4], -iX[5], v0, v1, &oX1[1], &oX2[2] );
-	  v0  = t0-q0;
-	  v1  = t1-q1;
-	  XPROD31( iX[6], -iX[7], v0, v1, &oX1[0], &oX2[3] );
-
-	  oX2+=4;
-	  iX+=8;
-	}while(iX<oX1);
-	break;
-      }
-    }
-
-    iX=out+n2+n4;
-    oX1=out+n4;
-    oX2=oX1;
-
-    do{
-      oX1-=4;
-      iX-=4;
-
-      oX2[0] = -(oX1[3] = iX[3]);
-      oX2[1] = -(oX1[2] = iX[2]);
-      oX2[2] = -(oX1[1] = iX[1]);
-      oX2[3] = -(oX1[0] = iX[0]);
-
-      oX2+=4;
-    }while(oX2<iX);
-
-    iX=out+n2+n4;
-    oX1=out+n2+n4;
-    oX2=out+n2;
-
-    do{
-      oX1-=4;
-      oX1[0]= iX[3];
-      oX1[1]= iX[2];
-      oX1[2]= iX[1];
-      oX1[3]= iX[0];
-      iX+=4;
-    }while(oX1>oX2);
-  }
-}
-
--- a/misc/libtremor/mdct.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: modified discrete cosine transform prototypes
-
- ********************************************************************/
-
-#ifndef _OGG_mdct_H_
-#define _OGG_mdct_H_
-
-#include "ivorbiscodec.h"
-#include "misc.h"
-
-#define DATA_TYPE ogg_int32_t
-#define REG_TYPE  register ogg_int32_t
-
-#ifdef _LOW_ACCURACY_
-#define cPI3_8 (0x0062)
-#define cPI2_8 (0x00b5)
-#define cPI1_8 (0x00ed)
-#else
-#define cPI3_8 (0x30fbc54d)
-#define cPI2_8 (0x5a82799a)
-#define cPI1_8 (0x7641af3d)
-#endif
-
-extern void mdct_forward(int n, DATA_TYPE *in, DATA_TYPE *out);
-extern void mdct_backward(int n, DATA_TYPE *in, DATA_TYPE *out);
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
--- a/misc/libtremor/mdct_lookup.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,540 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: sin,cos lookup tables
-
- ********************************************************************/
-  
-#include "os_types.h"
-
-/* {sin(2*i*PI/4096), cos(2*i*PI/4096)}, with i = 0 to 512 */
-static LOOKUP_T sincos_lookup0[1026] = {
-  X(0x00000000), X(0x7fffffff), X(0x003243f5), X(0x7ffff621),
-  X(0x006487e3), X(0x7fffd886), X(0x0096cbc1), X(0x7fffa72c),
-  X(0x00c90f88), X(0x7fff6216), X(0x00fb5330), X(0x7fff0943),
-  X(0x012d96b1), X(0x7ffe9cb2), X(0x015fda03), X(0x7ffe1c65),
-  X(0x01921d20), X(0x7ffd885a), X(0x01c45ffe), X(0x7ffce093),
-  X(0x01f6a297), X(0x7ffc250f), X(0x0228e4e2), X(0x7ffb55ce),
-  X(0x025b26d7), X(0x7ffa72d1), X(0x028d6870), X(0x7ff97c18),
-  X(0x02bfa9a4), X(0x7ff871a2), X(0x02f1ea6c), X(0x7ff75370),
-  X(0x03242abf), X(0x7ff62182), X(0x03566a96), X(0x7ff4dbd9),
-  X(0x0388a9ea), X(0x7ff38274), X(0x03bae8b2), X(0x7ff21553),
-  X(0x03ed26e6), X(0x7ff09478), X(0x041f6480), X(0x7feeffe1),
-  X(0x0451a177), X(0x7fed5791), X(0x0483ddc3), X(0x7feb9b85),
-  X(0x04b6195d), X(0x7fe9cbc0), X(0x04e8543e), X(0x7fe7e841),
-  X(0x051a8e5c), X(0x7fe5f108), X(0x054cc7b1), X(0x7fe3e616),
-  X(0x057f0035), X(0x7fe1c76b), X(0x05b137df), X(0x7fdf9508),
-  X(0x05e36ea9), X(0x7fdd4eec), X(0x0615a48b), X(0x7fdaf519),
-  X(0x0647d97c), X(0x7fd8878e), X(0x067a0d76), X(0x7fd6064c),
-  X(0x06ac406f), X(0x7fd37153), X(0x06de7262), X(0x7fd0c8a3),
-  X(0x0710a345), X(0x7fce0c3e), X(0x0742d311), X(0x7fcb3c23),
-  X(0x077501be), X(0x7fc85854), X(0x07a72f45), X(0x7fc560cf),
-  X(0x07d95b9e), X(0x7fc25596), X(0x080b86c2), X(0x7fbf36aa),
-  X(0x083db0a7), X(0x7fbc040a), X(0x086fd947), X(0x7fb8bdb8),
-  X(0x08a2009a), X(0x7fb563b3), X(0x08d42699), X(0x7fb1f5fc),
-  X(0x09064b3a), X(0x7fae7495), X(0x09386e78), X(0x7faadf7c),
-  X(0x096a9049), X(0x7fa736b4), X(0x099cb0a7), X(0x7fa37a3c),
-  X(0x09cecf89), X(0x7f9faa15), X(0x0a00ece8), X(0x7f9bc640),
-  X(0x0a3308bd), X(0x7f97cebd), X(0x0a6522fe), X(0x7f93c38c),
-  X(0x0a973ba5), X(0x7f8fa4b0), X(0x0ac952aa), X(0x7f8b7227),
-  X(0x0afb6805), X(0x7f872bf3), X(0x0b2d7baf), X(0x7f82d214),
-  X(0x0b5f8d9f), X(0x7f7e648c), X(0x0b919dcf), X(0x7f79e35a),
-  X(0x0bc3ac35), X(0x7f754e80), X(0x0bf5b8cb), X(0x7f70a5fe),
-  X(0x0c27c389), X(0x7f6be9d4), X(0x0c59cc68), X(0x7f671a05),
-  X(0x0c8bd35e), X(0x7f62368f), X(0x0cbdd865), X(0x7f5d3f75),
-  X(0x0cefdb76), X(0x7f5834b7), X(0x0d21dc87), X(0x7f531655),
-  X(0x0d53db92), X(0x7f4de451), X(0x0d85d88f), X(0x7f489eaa),
-  X(0x0db7d376), X(0x7f434563), X(0x0de9cc40), X(0x7f3dd87c),
-  X(0x0e1bc2e4), X(0x7f3857f6), X(0x0e4db75b), X(0x7f32c3d1),
-  X(0x0e7fa99e), X(0x7f2d1c0e), X(0x0eb199a4), X(0x7f2760af),
-  X(0x0ee38766), X(0x7f2191b4), X(0x0f1572dc), X(0x7f1baf1e),
-  X(0x0f475bff), X(0x7f15b8ee), X(0x0f7942c7), X(0x7f0faf25),
-  X(0x0fab272b), X(0x7f0991c4), X(0x0fdd0926), X(0x7f0360cb),
-  X(0x100ee8ad), X(0x7efd1c3c), X(0x1040c5bb), X(0x7ef6c418),
-  X(0x1072a048), X(0x7ef05860), X(0x10a4784b), X(0x7ee9d914),
-  X(0x10d64dbd), X(0x7ee34636), X(0x11082096), X(0x7edc9fc6),
-  X(0x1139f0cf), X(0x7ed5e5c6), X(0x116bbe60), X(0x7ecf1837),
-  X(0x119d8941), X(0x7ec8371a), X(0x11cf516a), X(0x7ec14270),
-  X(0x120116d5), X(0x7eba3a39), X(0x1232d979), X(0x7eb31e78),
-  X(0x1264994e), X(0x7eabef2c), X(0x1296564d), X(0x7ea4ac58),
-  X(0x12c8106f), X(0x7e9d55fc), X(0x12f9c7aa), X(0x7e95ec1a),
-  X(0x132b7bf9), X(0x7e8e6eb2), X(0x135d2d53), X(0x7e86ddc6),
-  X(0x138edbb1), X(0x7e7f3957), X(0x13c0870a), X(0x7e778166),
-  X(0x13f22f58), X(0x7e6fb5f4), X(0x1423d492), X(0x7e67d703),
-  X(0x145576b1), X(0x7e5fe493), X(0x148715ae), X(0x7e57dea7),
-  X(0x14b8b17f), X(0x7e4fc53e), X(0x14ea4a1f), X(0x7e47985b),
-  X(0x151bdf86), X(0x7e3f57ff), X(0x154d71aa), X(0x7e37042a),
-  X(0x157f0086), X(0x7e2e9cdf), X(0x15b08c12), X(0x7e26221f),
-  X(0x15e21445), X(0x7e1d93ea), X(0x16139918), X(0x7e14f242),
-  X(0x16451a83), X(0x7e0c3d29), X(0x1676987f), X(0x7e0374a0),
-  X(0x16a81305), X(0x7dfa98a8), X(0x16d98a0c), X(0x7df1a942),
-  X(0x170afd8d), X(0x7de8a670), X(0x173c6d80), X(0x7ddf9034),
-  X(0x176dd9de), X(0x7dd6668f), X(0x179f429f), X(0x7dcd2981),
-  X(0x17d0a7bc), X(0x7dc3d90d), X(0x1802092c), X(0x7dba7534),
-  X(0x183366e9), X(0x7db0fdf8), X(0x1864c0ea), X(0x7da77359),
-  X(0x18961728), X(0x7d9dd55a), X(0x18c7699b), X(0x7d9423fc),
-  X(0x18f8b83c), X(0x7d8a5f40), X(0x192a0304), X(0x7d808728),
-  X(0x195b49ea), X(0x7d769bb5), X(0x198c8ce7), X(0x7d6c9ce9),
-  X(0x19bdcbf3), X(0x7d628ac6), X(0x19ef0707), X(0x7d58654d),
-  X(0x1a203e1b), X(0x7d4e2c7f), X(0x1a517128), X(0x7d43e05e),
-  X(0x1a82a026), X(0x7d3980ec), X(0x1ab3cb0d), X(0x7d2f0e2b),
-  X(0x1ae4f1d6), X(0x7d24881b), X(0x1b161479), X(0x7d19eebf),
-  X(0x1b4732ef), X(0x7d0f4218), X(0x1b784d30), X(0x7d048228),
-  X(0x1ba96335), X(0x7cf9aef0), X(0x1bda74f6), X(0x7ceec873),
-  X(0x1c0b826a), X(0x7ce3ceb2), X(0x1c3c8b8c), X(0x7cd8c1ae),
-  X(0x1c6d9053), X(0x7ccda169), X(0x1c9e90b8), X(0x7cc26de5),
-  X(0x1ccf8cb3), X(0x7cb72724), X(0x1d00843d), X(0x7cabcd28),
-  X(0x1d31774d), X(0x7ca05ff1), X(0x1d6265dd), X(0x7c94df83),
-  X(0x1d934fe5), X(0x7c894bde), X(0x1dc4355e), X(0x7c7da505),
-  X(0x1df5163f), X(0x7c71eaf9), X(0x1e25f282), X(0x7c661dbc),
-  X(0x1e56ca1e), X(0x7c5a3d50), X(0x1e879d0d), X(0x7c4e49b7),
-  X(0x1eb86b46), X(0x7c4242f2), X(0x1ee934c3), X(0x7c362904),
-  X(0x1f19f97b), X(0x7c29fbee), X(0x1f4ab968), X(0x7c1dbbb3),
-  X(0x1f7b7481), X(0x7c116853), X(0x1fac2abf), X(0x7c0501d2),
-  X(0x1fdcdc1b), X(0x7bf88830), X(0x200d888d), X(0x7bebfb70),
-  X(0x203e300d), X(0x7bdf5b94), X(0x206ed295), X(0x7bd2a89e),
-  X(0x209f701c), X(0x7bc5e290), X(0x20d0089c), X(0x7bb9096b),
-  X(0x21009c0c), X(0x7bac1d31), X(0x21312a65), X(0x7b9f1de6),
-  X(0x2161b3a0), X(0x7b920b89), X(0x219237b5), X(0x7b84e61f),
-  X(0x21c2b69c), X(0x7b77ada8), X(0x21f3304f), X(0x7b6a6227),
-  X(0x2223a4c5), X(0x7b5d039e), X(0x225413f8), X(0x7b4f920e),
-  X(0x22847de0), X(0x7b420d7a), X(0x22b4e274), X(0x7b3475e5),
-  X(0x22e541af), X(0x7b26cb4f), X(0x23159b88), X(0x7b190dbc),
-  X(0x2345eff8), X(0x7b0b3d2c), X(0x23763ef7), X(0x7afd59a4),
-  X(0x23a6887f), X(0x7aef6323), X(0x23d6cc87), X(0x7ae159ae),
-  X(0x24070b08), X(0x7ad33d45), X(0x243743fa), X(0x7ac50dec),
-  X(0x24677758), X(0x7ab6cba4), X(0x2497a517), X(0x7aa8766f),
-  X(0x24c7cd33), X(0x7a9a0e50), X(0x24f7efa2), X(0x7a8b9348),
-  X(0x25280c5e), X(0x7a7d055b), X(0x2558235f), X(0x7a6e648a),
-  X(0x2588349d), X(0x7a5fb0d8), X(0x25b84012), X(0x7a50ea47),
-  X(0x25e845b6), X(0x7a4210d8), X(0x26184581), X(0x7a332490),
-  X(0x26483f6c), X(0x7a24256f), X(0x26783370), X(0x7a151378),
-  X(0x26a82186), X(0x7a05eead), X(0x26d809a5), X(0x79f6b711),
-  X(0x2707ebc7), X(0x79e76ca7), X(0x2737c7e3), X(0x79d80f6f),
-  X(0x27679df4), X(0x79c89f6e), X(0x27976df1), X(0x79b91ca4),
-  X(0x27c737d3), X(0x79a98715), X(0x27f6fb92), X(0x7999dec4),
-  X(0x2826b928), X(0x798a23b1), X(0x2856708d), X(0x797a55e0),
-  X(0x288621b9), X(0x796a7554), X(0x28b5cca5), X(0x795a820e),
-  X(0x28e5714b), X(0x794a7c12), X(0x29150fa1), X(0x793a6361),
-  X(0x2944a7a2), X(0x792a37fe), X(0x29743946), X(0x7919f9ec),
-  X(0x29a3c485), X(0x7909a92d), X(0x29d34958), X(0x78f945c3),
-  X(0x2a02c7b8), X(0x78e8cfb2), X(0x2a323f9e), X(0x78d846fb),
-  X(0x2a61b101), X(0x78c7aba2), X(0x2a911bdc), X(0x78b6fda8),
-  X(0x2ac08026), X(0x78a63d11), X(0x2aefddd8), X(0x789569df),
-  X(0x2b1f34eb), X(0x78848414), X(0x2b4e8558), X(0x78738bb3),
-  X(0x2b7dcf17), X(0x786280bf), X(0x2bad1221), X(0x7851633b),
-  X(0x2bdc4e6f), X(0x78403329), X(0x2c0b83fa), X(0x782ef08b),
-  X(0x2c3ab2b9), X(0x781d9b65), X(0x2c69daa6), X(0x780c33b8),
-  X(0x2c98fbba), X(0x77fab989), X(0x2cc815ee), X(0x77e92cd9),
-  X(0x2cf72939), X(0x77d78daa), X(0x2d263596), X(0x77c5dc01),
-  X(0x2d553afc), X(0x77b417df), X(0x2d843964), X(0x77a24148),
-  X(0x2db330c7), X(0x7790583e), X(0x2de2211e), X(0x777e5cc3),
-  X(0x2e110a62), X(0x776c4edb), X(0x2e3fec8b), X(0x775a2e89),
-  X(0x2e6ec792), X(0x7747fbce), X(0x2e9d9b70), X(0x7735b6af),
-  X(0x2ecc681e), X(0x77235f2d), X(0x2efb2d95), X(0x7710f54c),
-  X(0x2f29ebcc), X(0x76fe790e), X(0x2f58a2be), X(0x76ebea77),
-  X(0x2f875262), X(0x76d94989), X(0x2fb5fab2), X(0x76c69647),
-  X(0x2fe49ba7), X(0x76b3d0b4), X(0x30133539), X(0x76a0f8d2),
-  X(0x3041c761), X(0x768e0ea6), X(0x30705217), X(0x767b1231),
-  X(0x309ed556), X(0x76680376), X(0x30cd5115), X(0x7654e279),
-  X(0x30fbc54d), X(0x7641af3d), X(0x312a31f8), X(0x762e69c4),
-  X(0x3158970e), X(0x761b1211), X(0x3186f487), X(0x7607a828),
-  X(0x31b54a5e), X(0x75f42c0b), X(0x31e39889), X(0x75e09dbd),
-  X(0x3211df04), X(0x75ccfd42), X(0x32401dc6), X(0x75b94a9c),
-  X(0x326e54c7), X(0x75a585cf), X(0x329c8402), X(0x7591aedd),
-  X(0x32caab6f), X(0x757dc5ca), X(0x32f8cb07), X(0x7569ca99),
-  X(0x3326e2c3), X(0x7555bd4c), X(0x3354f29b), X(0x75419de7),
-  X(0x3382fa88), X(0x752d6c6c), X(0x33b0fa84), X(0x751928e0),
-  X(0x33def287), X(0x7504d345), X(0x340ce28b), X(0x74f06b9e),
-  X(0x343aca87), X(0x74dbf1ef), X(0x3468aa76), X(0x74c7663a),
-  X(0x34968250), X(0x74b2c884), X(0x34c4520d), X(0x749e18cd),
-  X(0x34f219a8), X(0x7489571c), X(0x351fd918), X(0x74748371),
-  X(0x354d9057), X(0x745f9dd1), X(0x357b3f5d), X(0x744aa63f),
-  X(0x35a8e625), X(0x74359cbd), X(0x35d684a6), X(0x74208150),
-  X(0x36041ad9), X(0x740b53fb), X(0x3631a8b8), X(0x73f614c0),
-  X(0x365f2e3b), X(0x73e0c3a3), X(0x368cab5c), X(0x73cb60a8),
-  X(0x36ba2014), X(0x73b5ebd1), X(0x36e78c5b), X(0x73a06522),
-  X(0x3714f02a), X(0x738acc9e), X(0x37424b7b), X(0x73752249),
-  X(0x376f9e46), X(0x735f6626), X(0x379ce885), X(0x73499838),
-  X(0x37ca2a30), X(0x7333b883), X(0x37f76341), X(0x731dc70a),
-  X(0x382493b0), X(0x7307c3d0), X(0x3851bb77), X(0x72f1aed9),
-  X(0x387eda8e), X(0x72db8828), X(0x38abf0ef), X(0x72c54fc1),
-  X(0x38d8fe93), X(0x72af05a7), X(0x39060373), X(0x7298a9dd),
-  X(0x3932ff87), X(0x72823c67), X(0x395ff2c9), X(0x726bbd48),
-  X(0x398cdd32), X(0x72552c85), X(0x39b9bebc), X(0x723e8a20),
-  X(0x39e6975e), X(0x7227d61c), X(0x3a136712), X(0x7211107e),
-  X(0x3a402dd2), X(0x71fa3949), X(0x3a6ceb96), X(0x71e35080),
-  X(0x3a99a057), X(0x71cc5626), X(0x3ac64c0f), X(0x71b54a41),
-  X(0x3af2eeb7), X(0x719e2cd2), X(0x3b1f8848), X(0x7186fdde),
-  X(0x3b4c18ba), X(0x716fbd68), X(0x3b78a007), X(0x71586b74),
-  X(0x3ba51e29), X(0x71410805), X(0x3bd19318), X(0x7129931f),
-  X(0x3bfdfecd), X(0x71120cc5), X(0x3c2a6142), X(0x70fa74fc),
-  X(0x3c56ba70), X(0x70e2cbc6), X(0x3c830a50), X(0x70cb1128),
-  X(0x3caf50da), X(0x70b34525), X(0x3cdb8e09), X(0x709b67c0),
-  X(0x3d07c1d6), X(0x708378ff), X(0x3d33ec39), X(0x706b78e3),
-  X(0x3d600d2c), X(0x70536771), X(0x3d8c24a8), X(0x703b44ad),
-  X(0x3db832a6), X(0x7023109a), X(0x3de4371f), X(0x700acb3c),
-  X(0x3e10320d), X(0x6ff27497), X(0x3e3c2369), X(0x6fda0cae),
-  X(0x3e680b2c), X(0x6fc19385), X(0x3e93e950), X(0x6fa90921),
-  X(0x3ebfbdcd), X(0x6f906d84), X(0x3eeb889c), X(0x6f77c0b3),
-  X(0x3f1749b8), X(0x6f5f02b2), X(0x3f430119), X(0x6f463383),
-  X(0x3f6eaeb8), X(0x6f2d532c), X(0x3f9a5290), X(0x6f1461b0),
-  X(0x3fc5ec98), X(0x6efb5f12), X(0x3ff17cca), X(0x6ee24b57),
-  X(0x401d0321), X(0x6ec92683), X(0x40487f94), X(0x6eaff099),
-  X(0x4073f21d), X(0x6e96a99d), X(0x409f5ab6), X(0x6e7d5193),
-  X(0x40cab958), X(0x6e63e87f), X(0x40f60dfb), X(0x6e4a6e66),
-  X(0x4121589b), X(0x6e30e34a), X(0x414c992f), X(0x6e174730),
-  X(0x4177cfb1), X(0x6dfd9a1c), X(0x41a2fc1a), X(0x6de3dc11),
-  X(0x41ce1e65), X(0x6dca0d14), X(0x41f93689), X(0x6db02d29),
-  X(0x42244481), X(0x6d963c54), X(0x424f4845), X(0x6d7c3a98),
-  X(0x427a41d0), X(0x6d6227fa), X(0x42a5311b), X(0x6d48047e),
-  X(0x42d0161e), X(0x6d2dd027), X(0x42faf0d4), X(0x6d138afb),
-  X(0x4325c135), X(0x6cf934fc), X(0x4350873c), X(0x6cdece2f),
-  X(0x437b42e1), X(0x6cc45698), X(0x43a5f41e), X(0x6ca9ce3b),
-  X(0x43d09aed), X(0x6c8f351c), X(0x43fb3746), X(0x6c748b3f),
-  X(0x4425c923), X(0x6c59d0a9), X(0x4450507e), X(0x6c3f055d),
-  X(0x447acd50), X(0x6c242960), X(0x44a53f93), X(0x6c093cb6),
-  X(0x44cfa740), X(0x6bee3f62), X(0x44fa0450), X(0x6bd3316a),
-  X(0x452456bd), X(0x6bb812d1), X(0x454e9e80), X(0x6b9ce39b),
-  X(0x4578db93), X(0x6b81a3cd), X(0x45a30df0), X(0x6b66536b),
-  X(0x45cd358f), X(0x6b4af279), X(0x45f7526b), X(0x6b2f80fb),
-  X(0x4621647d), X(0x6b13fef5), X(0x464b6bbe), X(0x6af86c6c),
-  X(0x46756828), X(0x6adcc964), X(0x469f59b4), X(0x6ac115e2),
-  X(0x46c9405c), X(0x6aa551e9), X(0x46f31c1a), X(0x6a897d7d),
-  X(0x471cece7), X(0x6a6d98a4), X(0x4746b2bc), X(0x6a51a361),
-  X(0x47706d93), X(0x6a359db9), X(0x479a1d67), X(0x6a1987b0),
-  X(0x47c3c22f), X(0x69fd614a), X(0x47ed5be6), X(0x69e12a8c),
-  X(0x4816ea86), X(0x69c4e37a), X(0x48406e08), X(0x69a88c19),
-  X(0x4869e665), X(0x698c246c), X(0x48935397), X(0x696fac78),
-  X(0x48bcb599), X(0x69532442), X(0x48e60c62), X(0x69368bce),
-  X(0x490f57ee), X(0x6919e320), X(0x49389836), X(0x68fd2a3d),
-  X(0x4961cd33), X(0x68e06129), X(0x498af6df), X(0x68c387e9),
-  X(0x49b41533), X(0x68a69e81), X(0x49dd282a), X(0x6889a4f6),
-  X(0x4a062fbd), X(0x686c9b4b), X(0x4a2f2be6), X(0x684f8186),
-  X(0x4a581c9e), X(0x683257ab), X(0x4a8101de), X(0x68151dbe),
-  X(0x4aa9dba2), X(0x67f7d3c5), X(0x4ad2a9e2), X(0x67da79c3),
-  X(0x4afb6c98), X(0x67bd0fbd), X(0x4b2423be), X(0x679f95b7),
-  X(0x4b4ccf4d), X(0x67820bb7), X(0x4b756f40), X(0x676471c0),
-  X(0x4b9e0390), X(0x6746c7d8), X(0x4bc68c36), X(0x67290e02),
-  X(0x4bef092d), X(0x670b4444), X(0x4c177a6e), X(0x66ed6aa1),
-  X(0x4c3fdff4), X(0x66cf8120), X(0x4c6839b7), X(0x66b187c3),
-  X(0x4c9087b1), X(0x66937e91), X(0x4cb8c9dd), X(0x6675658c),
-  X(0x4ce10034), X(0x66573cbb), X(0x4d092ab0), X(0x66390422),
-  X(0x4d31494b), X(0x661abbc5), X(0x4d595bfe), X(0x65fc63a9),
-  X(0x4d8162c4), X(0x65ddfbd3), X(0x4da95d96), X(0x65bf8447),
-  X(0x4dd14c6e), X(0x65a0fd0b), X(0x4df92f46), X(0x65826622),
-  X(0x4e210617), X(0x6563bf92), X(0x4e48d0dd), X(0x6545095f),
-  X(0x4e708f8f), X(0x6526438f), X(0x4e984229), X(0x65076e25),
-  X(0x4ebfe8a5), X(0x64e88926), X(0x4ee782fb), X(0x64c99498),
-  X(0x4f0f1126), X(0x64aa907f), X(0x4f369320), X(0x648b7ce0),
-  X(0x4f5e08e3), X(0x646c59bf), X(0x4f857269), X(0x644d2722),
-  X(0x4faccfab), X(0x642de50d), X(0x4fd420a4), X(0x640e9386),
-  X(0x4ffb654d), X(0x63ef3290), X(0x50229da1), X(0x63cfc231),
-  X(0x5049c999), X(0x63b0426d), X(0x5070e92f), X(0x6390b34a),
-  X(0x5097fc5e), X(0x637114cc), X(0x50bf031f), X(0x635166f9),
-  X(0x50e5fd6d), X(0x6331a9d4), X(0x510ceb40), X(0x6311dd64),
-  X(0x5133cc94), X(0x62f201ac), X(0x515aa162), X(0x62d216b3),
-  X(0x518169a5), X(0x62b21c7b), X(0x51a82555), X(0x6292130c),
-  X(0x51ced46e), X(0x6271fa69), X(0x51f576ea), X(0x6251d298),
-  X(0x521c0cc2), X(0x62319b9d), X(0x524295f0), X(0x6211557e),
-  X(0x5269126e), X(0x61f1003f), X(0x528f8238), X(0x61d09be5),
-  X(0x52b5e546), X(0x61b02876), X(0x52dc3b92), X(0x618fa5f7),
-  X(0x53028518), X(0x616f146c), X(0x5328c1d0), X(0x614e73da),
-  X(0x534ef1b5), X(0x612dc447), X(0x537514c2), X(0x610d05b7),
-  X(0x539b2af0), X(0x60ec3830), X(0x53c13439), X(0x60cb5bb7),
-  X(0x53e73097), X(0x60aa7050), X(0x540d2005), X(0x60897601),
-  X(0x5433027d), X(0x60686ccf), X(0x5458d7f9), X(0x604754bf),
-  X(0x547ea073), X(0x60262dd6), X(0x54a45be6), X(0x6004f819),
-  X(0x54ca0a4b), X(0x5fe3b38d), X(0x54efab9c), X(0x5fc26038),
-  X(0x55153fd4), X(0x5fa0fe1f), X(0x553ac6ee), X(0x5f7f8d46),
-  X(0x556040e2), X(0x5f5e0db3), X(0x5585adad), X(0x5f3c7f6b),
-  X(0x55ab0d46), X(0x5f1ae274), X(0x55d05faa), X(0x5ef936d1),
-  X(0x55f5a4d2), X(0x5ed77c8a), X(0x561adcb9), X(0x5eb5b3a2),
-  X(0x56400758), X(0x5e93dc1f), X(0x566524aa), X(0x5e71f606),
-  X(0x568a34a9), X(0x5e50015d), X(0x56af3750), X(0x5e2dfe29),
-  X(0x56d42c99), X(0x5e0bec6e), X(0x56f9147e), X(0x5de9cc33),
-  X(0x571deefa), X(0x5dc79d7c), X(0x5742bc06), X(0x5da5604f),
-  X(0x57677b9d), X(0x5d8314b1), X(0x578c2dba), X(0x5d60baa7),
-  X(0x57b0d256), X(0x5d3e5237), X(0x57d5696d), X(0x5d1bdb65),
-  X(0x57f9f2f8), X(0x5cf95638), X(0x581e6ef1), X(0x5cd6c2b5),
-  X(0x5842dd54), X(0x5cb420e0), X(0x58673e1b), X(0x5c9170bf),
-  X(0x588b9140), X(0x5c6eb258), X(0x58afd6bd), X(0x5c4be5b0),
-  X(0x58d40e8c), X(0x5c290acc), X(0x58f838a9), X(0x5c0621b2),
-  X(0x591c550e), X(0x5be32a67), X(0x594063b5), X(0x5bc024f0),
-  X(0x59646498), X(0x5b9d1154), X(0x598857b2), X(0x5b79ef96),
-  X(0x59ac3cfd), X(0x5b56bfbd), X(0x59d01475), X(0x5b3381ce),
-  X(0x59f3de12), X(0x5b1035cf), X(0x5a1799d1), X(0x5aecdbc5),
-  X(0x5a3b47ab), X(0x5ac973b5), X(0x5a5ee79a), X(0x5aa5fda5),
-  X(0x5a82799a), X(0x5a82799a)
-  };
-  
-  /* {sin((2*i+1)*PI/4096), cos((2*i+1)*PI/4096)}, with i = 0 to 511 */
-static LOOKUP_T sincos_lookup1[1024] = {
-  X(0x001921fb), X(0x7ffffd88), X(0x004b65ee), X(0x7fffe9cb),
-  X(0x007da9d4), X(0x7fffc251), X(0x00afeda8), X(0x7fff8719),
-  X(0x00e23160), X(0x7fff3824), X(0x011474f6), X(0x7ffed572),
-  X(0x0146b860), X(0x7ffe5f03), X(0x0178fb99), X(0x7ffdd4d7),
-  X(0x01ab3e97), X(0x7ffd36ee), X(0x01dd8154), X(0x7ffc8549),
-  X(0x020fc3c6), X(0x7ffbbfe6), X(0x024205e8), X(0x7ffae6c7),
-  X(0x027447b0), X(0x7ff9f9ec), X(0x02a68917), X(0x7ff8f954),
-  X(0x02d8ca16), X(0x7ff7e500), X(0x030b0aa4), X(0x7ff6bcf0),
-  X(0x033d4abb), X(0x7ff58125), X(0x036f8a51), X(0x7ff4319d),
-  X(0x03a1c960), X(0x7ff2ce5b), X(0x03d407df), X(0x7ff1575d),
-  X(0x040645c7), X(0x7fefcca4), X(0x04388310), X(0x7fee2e30),
-  X(0x046abfb3), X(0x7fec7c02), X(0x049cfba7), X(0x7feab61a),
-  X(0x04cf36e5), X(0x7fe8dc78), X(0x05017165), X(0x7fe6ef1c),
-  X(0x0533ab20), X(0x7fe4ee06), X(0x0565e40d), X(0x7fe2d938),
-  X(0x05981c26), X(0x7fe0b0b1), X(0x05ca5361), X(0x7fde7471),
-  X(0x05fc89b8), X(0x7fdc247a), X(0x062ebf22), X(0x7fd9c0ca),
-  X(0x0660f398), X(0x7fd74964), X(0x06932713), X(0x7fd4be46),
-  X(0x06c5598a), X(0x7fd21f72), X(0x06f78af6), X(0x7fcf6ce8),
-  X(0x0729bb4e), X(0x7fcca6a7), X(0x075bea8c), X(0x7fc9ccb2),
-  X(0x078e18a7), X(0x7fc6df08), X(0x07c04598), X(0x7fc3dda9),
-  X(0x07f27157), X(0x7fc0c896), X(0x08249bdd), X(0x7fbd9fd0),
-  X(0x0856c520), X(0x7fba6357), X(0x0888ed1b), X(0x7fb7132b),
-  X(0x08bb13c5), X(0x7fb3af4e), X(0x08ed3916), X(0x7fb037bf),
-  X(0x091f5d06), X(0x7facac7f), X(0x09517f8f), X(0x7fa90d8e),
-  X(0x0983a0a7), X(0x7fa55aee), X(0x09b5c048), X(0x7fa1949e),
-  X(0x09e7de6a), X(0x7f9dbaa0), X(0x0a19fb04), X(0x7f99ccf4),
-  X(0x0a4c1610), X(0x7f95cb9a), X(0x0a7e2f85), X(0x7f91b694),
-  X(0x0ab0475c), X(0x7f8d8de1), X(0x0ae25d8d), X(0x7f895182),
-  X(0x0b147211), X(0x7f850179), X(0x0b4684df), X(0x7f809dc5),
-  X(0x0b7895f0), X(0x7f7c2668), X(0x0baaa53b), X(0x7f779b62),
-  X(0x0bdcb2bb), X(0x7f72fcb4), X(0x0c0ebe66), X(0x7f6e4a5e),
-  X(0x0c40c835), X(0x7f698461), X(0x0c72d020), X(0x7f64aabf),
-  X(0x0ca4d620), X(0x7f5fbd77), X(0x0cd6da2d), X(0x7f5abc8a),
-  X(0x0d08dc3f), X(0x7f55a7fa), X(0x0d3adc4e), X(0x7f507fc7),
-  X(0x0d6cda53), X(0x7f4b43f2), X(0x0d9ed646), X(0x7f45f47b),
-  X(0x0dd0d01f), X(0x7f409164), X(0x0e02c7d7), X(0x7f3b1aad),
-  X(0x0e34bd66), X(0x7f359057), X(0x0e66b0c3), X(0x7f2ff263),
-  X(0x0e98a1e9), X(0x7f2a40d2), X(0x0eca90ce), X(0x7f247ba5),
-  X(0x0efc7d6b), X(0x7f1ea2dc), X(0x0f2e67b8), X(0x7f18b679),
-  X(0x0f604faf), X(0x7f12b67c), X(0x0f923546), X(0x7f0ca2e7),
-  X(0x0fc41876), X(0x7f067bba), X(0x0ff5f938), X(0x7f0040f6),
-  X(0x1027d784), X(0x7ef9f29d), X(0x1059b352), X(0x7ef390ae),
-  X(0x108b8c9b), X(0x7eed1b2c), X(0x10bd6356), X(0x7ee69217),
-  X(0x10ef377d), X(0x7edff570), X(0x11210907), X(0x7ed94538),
-  X(0x1152d7ed), X(0x7ed28171), X(0x1184a427), X(0x7ecbaa1a),
-  X(0x11b66dad), X(0x7ec4bf36), X(0x11e83478), X(0x7ebdc0c6),
-  X(0x1219f880), X(0x7eb6aeca), X(0x124bb9be), X(0x7eaf8943),
-  X(0x127d7829), X(0x7ea85033), X(0x12af33ba), X(0x7ea1039b),
-  X(0x12e0ec6a), X(0x7e99a37c), X(0x1312a230), X(0x7e922fd6),
-  X(0x13445505), X(0x7e8aa8ac), X(0x137604e2), X(0x7e830dff),
-  X(0x13a7b1bf), X(0x7e7b5fce), X(0x13d95b93), X(0x7e739e1d),
-  X(0x140b0258), X(0x7e6bc8eb), X(0x143ca605), X(0x7e63e03b),
-  X(0x146e4694), X(0x7e5be40c), X(0x149fe3fc), X(0x7e53d462),
-  X(0x14d17e36), X(0x7e4bb13c), X(0x1503153a), X(0x7e437a9c),
-  X(0x1534a901), X(0x7e3b3083), X(0x15663982), X(0x7e32d2f4),
-  X(0x1597c6b7), X(0x7e2a61ed), X(0x15c95097), X(0x7e21dd73),
-  X(0x15fad71b), X(0x7e194584), X(0x162c5a3b), X(0x7e109a24),
-  X(0x165dd9f0), X(0x7e07db52), X(0x168f5632), X(0x7dff0911),
-  X(0x16c0cef9), X(0x7df62362), X(0x16f2443e), X(0x7ded2a47),
-  X(0x1723b5f9), X(0x7de41dc0), X(0x17552422), X(0x7ddafdce),
-  X(0x17868eb3), X(0x7dd1ca75), X(0x17b7f5a3), X(0x7dc883b4),
-  X(0x17e958ea), X(0x7dbf298d), X(0x181ab881), X(0x7db5bc02),
-  X(0x184c1461), X(0x7dac3b15), X(0x187d6c82), X(0x7da2a6c6),
-  X(0x18aec0db), X(0x7d98ff17), X(0x18e01167), X(0x7d8f4409),
-  X(0x19115e1c), X(0x7d85759f), X(0x1942a6f3), X(0x7d7b93da),
-  X(0x1973ebe6), X(0x7d719eba), X(0x19a52ceb), X(0x7d679642),
-  X(0x19d669fc), X(0x7d5d7a74), X(0x1a07a311), X(0x7d534b50),
-  X(0x1a38d823), X(0x7d4908d9), X(0x1a6a0929), X(0x7d3eb30f),
-  X(0x1a9b361d), X(0x7d3449f5), X(0x1acc5ef6), X(0x7d29cd8c),
-  X(0x1afd83ad), X(0x7d1f3dd6), X(0x1b2ea43a), X(0x7d149ad5),
-  X(0x1b5fc097), X(0x7d09e489), X(0x1b90d8bb), X(0x7cff1af5),
-  X(0x1bc1ec9e), X(0x7cf43e1a), X(0x1bf2fc3a), X(0x7ce94dfb),
-  X(0x1c240786), X(0x7cde4a98), X(0x1c550e7c), X(0x7cd333f3),
-  X(0x1c861113), X(0x7cc80a0f), X(0x1cb70f43), X(0x7cbcccec),
-  X(0x1ce80906), X(0x7cb17c8d), X(0x1d18fe54), X(0x7ca618f3),
-  X(0x1d49ef26), X(0x7c9aa221), X(0x1d7adb73), X(0x7c8f1817),
-  X(0x1dabc334), X(0x7c837ad8), X(0x1ddca662), X(0x7c77ca65),
-  X(0x1e0d84f5), X(0x7c6c06c0), X(0x1e3e5ee5), X(0x7c602fec),
-  X(0x1e6f342c), X(0x7c5445e9), X(0x1ea004c1), X(0x7c4848ba),
-  X(0x1ed0d09d), X(0x7c3c3860), X(0x1f0197b8), X(0x7c3014de),
-  X(0x1f325a0b), X(0x7c23de35), X(0x1f63178f), X(0x7c179467),
-  X(0x1f93d03c), X(0x7c0b3777), X(0x1fc4840a), X(0x7bfec765),
-  X(0x1ff532f2), X(0x7bf24434), X(0x2025dcec), X(0x7be5ade6),
-  X(0x205681f1), X(0x7bd9047c), X(0x208721f9), X(0x7bcc47fa),
-  X(0x20b7bcfe), X(0x7bbf7860), X(0x20e852f6), X(0x7bb295b0),
-  X(0x2118e3dc), X(0x7ba59fee), X(0x21496fa7), X(0x7b989719),
-  X(0x2179f64f), X(0x7b8b7b36), X(0x21aa77cf), X(0x7b7e4c45),
-  X(0x21daf41d), X(0x7b710a49), X(0x220b6b32), X(0x7b63b543),
-  X(0x223bdd08), X(0x7b564d36), X(0x226c4996), X(0x7b48d225),
-  X(0x229cb0d5), X(0x7b3b4410), X(0x22cd12bd), X(0x7b2da2fa),
-  X(0x22fd6f48), X(0x7b1feee5), X(0x232dc66d), X(0x7b1227d3),
-  X(0x235e1826), X(0x7b044dc7), X(0x238e646a), X(0x7af660c2),
-  X(0x23beab33), X(0x7ae860c7), X(0x23eeec78), X(0x7ada4dd8),
-  X(0x241f2833), X(0x7acc27f7), X(0x244f5e5c), X(0x7abdef25),
-  X(0x247f8eec), X(0x7aafa367), X(0x24afb9da), X(0x7aa144bc),
-  X(0x24dfdf20), X(0x7a92d329), X(0x250ffeb7), X(0x7a844eae),
-  X(0x25401896), X(0x7a75b74f), X(0x25702cb7), X(0x7a670d0d),
-  X(0x25a03b11), X(0x7a584feb), X(0x25d0439f), X(0x7a497feb),
-  X(0x26004657), X(0x7a3a9d0f), X(0x26304333), X(0x7a2ba75a),
-  X(0x26603a2c), X(0x7a1c9ece), X(0x26902b39), X(0x7a0d836d),
-  X(0x26c01655), X(0x79fe5539), X(0x26effb76), X(0x79ef1436),
-  X(0x271fda96), X(0x79dfc064), X(0x274fb3ae), X(0x79d059c8),
-  X(0x277f86b5), X(0x79c0e062), X(0x27af53a6), X(0x79b15435),
-  X(0x27df1a77), X(0x79a1b545), X(0x280edb23), X(0x79920392),
-  X(0x283e95a1), X(0x79823f20), X(0x286e49ea), X(0x797267f2),
-  X(0x289df7f8), X(0x79627e08), X(0x28cd9fc1), X(0x79528167),
-  X(0x28fd4140), X(0x79427210), X(0x292cdc6d), X(0x79325006),
-  X(0x295c7140), X(0x79221b4b), X(0x298bffb2), X(0x7911d3e2),
-  X(0x29bb87bc), X(0x790179cd), X(0x29eb0957), X(0x78f10d0f),
-  X(0x2a1a847b), X(0x78e08dab), X(0x2a49f920), X(0x78cffba3),
-  X(0x2a796740), X(0x78bf56f9), X(0x2aa8ced3), X(0x78ae9fb0),
-  X(0x2ad82fd2), X(0x789dd5cb), X(0x2b078a36), X(0x788cf94c),
-  X(0x2b36ddf7), X(0x787c0a36), X(0x2b662b0e), X(0x786b088c),
-  X(0x2b957173), X(0x7859f44f), X(0x2bc4b120), X(0x7848cd83),
-  X(0x2bf3ea0d), X(0x7837942b), X(0x2c231c33), X(0x78264849),
-  X(0x2c52478a), X(0x7814e9df), X(0x2c816c0c), X(0x780378f1),
-  X(0x2cb089b1), X(0x77f1f581), X(0x2cdfa071), X(0x77e05f91),
-  X(0x2d0eb046), X(0x77ceb725), X(0x2d3db928), X(0x77bcfc3f),
-  X(0x2d6cbb10), X(0x77ab2ee2), X(0x2d9bb5f6), X(0x77994f11),
-  X(0x2dcaa9d5), X(0x77875cce), X(0x2df996a3), X(0x7775581d),
-  X(0x2e287c5a), X(0x776340ff), X(0x2e575af3), X(0x77511778),
-  X(0x2e863267), X(0x773edb8b), X(0x2eb502ae), X(0x772c8d3a),
-  X(0x2ee3cbc1), X(0x771a2c88), X(0x2f128d99), X(0x7707b979),
-  X(0x2f41482e), X(0x76f5340e), X(0x2f6ffb7a), X(0x76e29c4b),
-  X(0x2f9ea775), X(0x76cff232), X(0x2fcd4c19), X(0x76bd35c7),
-  X(0x2ffbe95d), X(0x76aa670d), X(0x302a7f3a), X(0x76978605),
-  X(0x30590dab), X(0x768492b4), X(0x308794a6), X(0x76718d1c),
-  X(0x30b61426), X(0x765e7540), X(0x30e48c22), X(0x764b4b23),
-  X(0x3112fc95), X(0x76380ec8), X(0x31416576), X(0x7624c031),
-  X(0x316fc6be), X(0x76115f63), X(0x319e2067), X(0x75fdec60),
-  X(0x31cc7269), X(0x75ea672a), X(0x31fabcbd), X(0x75d6cfc5),
-  X(0x3228ff5c), X(0x75c32634), X(0x32573a3f), X(0x75af6a7b),
-  X(0x32856d5e), X(0x759b9c9b), X(0x32b398b3), X(0x7587bc98),
-  X(0x32e1bc36), X(0x7573ca75), X(0x330fd7e1), X(0x755fc635),
-  X(0x333debab), X(0x754bafdc), X(0x336bf78f), X(0x7537876c),
-  X(0x3399fb85), X(0x75234ce8), X(0x33c7f785), X(0x750f0054),
-  X(0x33f5eb89), X(0x74faa1b3), X(0x3423d78a), X(0x74e63108),
-  X(0x3451bb81), X(0x74d1ae55), X(0x347f9766), X(0x74bd199f),
-  X(0x34ad6b32), X(0x74a872e8), X(0x34db36df), X(0x7493ba34),
-  X(0x3508fa66), X(0x747eef85), X(0x3536b5be), X(0x746a12df),
-  X(0x356468e2), X(0x74552446), X(0x359213c9), X(0x744023bc),
-  X(0x35bfb66e), X(0x742b1144), X(0x35ed50c9), X(0x7415ece2),
-  X(0x361ae2d3), X(0x7400b69a), X(0x36486c86), X(0x73eb6e6e),
-  X(0x3675edd9), X(0x73d61461), X(0x36a366c6), X(0x73c0a878),
-  X(0x36d0d746), X(0x73ab2ab4), X(0x36fe3f52), X(0x73959b1b),
-  X(0x372b9ee3), X(0x737ff9ae), X(0x3758f5f2), X(0x736a4671),
-  X(0x37864477), X(0x73548168), X(0x37b38a6d), X(0x733eaa96),
-  X(0x37e0c7cc), X(0x7328c1ff), X(0x380dfc8d), X(0x7312c7a5),
-  X(0x383b28a9), X(0x72fcbb8c), X(0x38684c19), X(0x72e69db7),
-  X(0x389566d6), X(0x72d06e2b), X(0x38c278d9), X(0x72ba2cea),
-  X(0x38ef821c), X(0x72a3d9f7), X(0x391c8297), X(0x728d7557),
-  X(0x39497a43), X(0x7276ff0d), X(0x39766919), X(0x7260771b),
-  X(0x39a34f13), X(0x7249dd86), X(0x39d02c2a), X(0x72333251),
-  X(0x39fd0056), X(0x721c7580), X(0x3a29cb91), X(0x7205a716),
-  X(0x3a568dd4), X(0x71eec716), X(0x3a834717), X(0x71d7d585),
-  X(0x3aaff755), X(0x71c0d265), X(0x3adc9e86), X(0x71a9bdba),
-  X(0x3b093ca3), X(0x71929789), X(0x3b35d1a5), X(0x717b5fd3),
-  X(0x3b625d86), X(0x7164169d), X(0x3b8ee03e), X(0x714cbbeb),
-  X(0x3bbb59c7), X(0x71354fc0), X(0x3be7ca1a), X(0x711dd220),
-  X(0x3c143130), X(0x7106430e), X(0x3c408f03), X(0x70eea28e),
-  X(0x3c6ce38a), X(0x70d6f0a4), X(0x3c992ec0), X(0x70bf2d53),
-  X(0x3cc5709e), X(0x70a7589f), X(0x3cf1a91c), X(0x708f728b),
-  X(0x3d1dd835), X(0x70777b1c), X(0x3d49fde1), X(0x705f7255),
-  X(0x3d761a19), X(0x70475839), X(0x3da22cd7), X(0x702f2ccd),
-  X(0x3dce3614), X(0x7016f014), X(0x3dfa35c8), X(0x6ffea212),
-  X(0x3e262bee), X(0x6fe642ca), X(0x3e52187f), X(0x6fcdd241),
-  X(0x3e7dfb73), X(0x6fb5507a), X(0x3ea9d4c3), X(0x6f9cbd79),
-  X(0x3ed5a46b), X(0x6f841942), X(0x3f016a61), X(0x6f6b63d8),
-  X(0x3f2d26a0), X(0x6f529d40), X(0x3f58d921), X(0x6f39c57d),
-  X(0x3f8481dd), X(0x6f20dc92), X(0x3fb020ce), X(0x6f07e285),
-  X(0x3fdbb5ec), X(0x6eeed758), X(0x40074132), X(0x6ed5bb10),
-  X(0x4032c297), X(0x6ebc8db0), X(0x405e3a16), X(0x6ea34f3d),
-  X(0x4089a7a8), X(0x6e89ffb9), X(0x40b50b46), X(0x6e709f2a),
-  X(0x40e064ea), X(0x6e572d93), X(0x410bb48c), X(0x6e3daaf8),
-  X(0x4136fa27), X(0x6e24175c), X(0x416235b2), X(0x6e0a72c5),
-  X(0x418d6729), X(0x6df0bd35), X(0x41b88e84), X(0x6dd6f6b1),
-  X(0x41e3abbc), X(0x6dbd1f3c), X(0x420ebecb), X(0x6da336dc),
-  X(0x4239c7aa), X(0x6d893d93), X(0x4264c653), X(0x6d6f3365),
-  X(0x428fbabe), X(0x6d551858), X(0x42baa4e6), X(0x6d3aec6e),
-  X(0x42e584c3), X(0x6d20afac), X(0x43105a50), X(0x6d066215),
-  X(0x433b2585), X(0x6cec03af), X(0x4365e65b), X(0x6cd1947c),
-  X(0x43909ccd), X(0x6cb71482), X(0x43bb48d4), X(0x6c9c83c3),
-  X(0x43e5ea68), X(0x6c81e245), X(0x44108184), X(0x6c67300b),
-  X(0x443b0e21), X(0x6c4c6d1a), X(0x44659039), X(0x6c319975),
-  X(0x449007c4), X(0x6c16b521), X(0x44ba74bd), X(0x6bfbc021),
-  X(0x44e4d71c), X(0x6be0ba7b), X(0x450f2edb), X(0x6bc5a431),
-  X(0x45397bf4), X(0x6baa7d49), X(0x4563be60), X(0x6b8f45c7),
-  X(0x458df619), X(0x6b73fdae), X(0x45b82318), X(0x6b58a503),
-  X(0x45e24556), X(0x6b3d3bcb), X(0x460c5cce), X(0x6b21c208),
-  X(0x46366978), X(0x6b0637c1), X(0x46606b4e), X(0x6aea9cf8),
-  X(0x468a624a), X(0x6acef1b2), X(0x46b44e65), X(0x6ab335f4),
-  X(0x46de2f99), X(0x6a9769c1), X(0x470805df), X(0x6a7b8d1e),
-  X(0x4731d131), X(0x6a5fa010), X(0x475b9188), X(0x6a43a29a),
-  X(0x478546de), X(0x6a2794c1), X(0x47aef12c), X(0x6a0b7689),
-  X(0x47d8906d), X(0x69ef47f6), X(0x48022499), X(0x69d3090e),
-  X(0x482badab), X(0x69b6b9d3), X(0x48552b9b), X(0x699a5a4c),
-  X(0x487e9e64), X(0x697dea7b), X(0x48a805ff), X(0x69616a65),
-  X(0x48d16265), X(0x6944da10), X(0x48fab391), X(0x6928397e),
-  X(0x4923f97b), X(0x690b88b5), X(0x494d341e), X(0x68eec7b9),
-  X(0x49766373), X(0x68d1f68f), X(0x499f8774), X(0x68b5153a),
-  X(0x49c8a01b), X(0x689823bf), X(0x49f1ad61), X(0x687b2224),
-  X(0x4a1aaf3f), X(0x685e106c), X(0x4a43a5b0), X(0x6840ee9b),
-  X(0x4a6c90ad), X(0x6823bcb7), X(0x4a957030), X(0x68067ac3),
-  X(0x4abe4433), X(0x67e928c5), X(0x4ae70caf), X(0x67cbc6c0),
-  X(0x4b0fc99d), X(0x67ae54ba), X(0x4b387af9), X(0x6790d2b6),
-  X(0x4b6120bb), X(0x677340ba), X(0x4b89badd), X(0x67559eca),
-  X(0x4bb24958), X(0x6737ecea), X(0x4bdacc28), X(0x671a2b20),
-  X(0x4c034345), X(0x66fc596f), X(0x4c2baea9), X(0x66de77dc),
-  X(0x4c540e4e), X(0x66c0866d), X(0x4c7c622d), X(0x66a28524),
-  X(0x4ca4aa41), X(0x66847408), X(0x4ccce684), X(0x6666531d),
-  X(0x4cf516ee), X(0x66482267), X(0x4d1d3b7a), X(0x6629e1ec),
-  X(0x4d455422), X(0x660b91af), X(0x4d6d60df), X(0x65ed31b5),
-  X(0x4d9561ac), X(0x65cec204), X(0x4dbd5682), X(0x65b0429f),
-  X(0x4de53f5a), X(0x6591b38c), X(0x4e0d1c30), X(0x657314cf),
-  X(0x4e34ecfc), X(0x6554666d), X(0x4e5cb1b9), X(0x6535a86b),
-  X(0x4e846a60), X(0x6516dacd), X(0x4eac16eb), X(0x64f7fd98),
-  X(0x4ed3b755), X(0x64d910d1), X(0x4efb4b96), X(0x64ba147d),
-  X(0x4f22d3aa), X(0x649b08a0), X(0x4f4a4f89), X(0x647bed3f),
-  X(0x4f71bf2e), X(0x645cc260), X(0x4f992293), X(0x643d8806),
-  X(0x4fc079b1), X(0x641e3e38), X(0x4fe7c483), X(0x63fee4f8),
-  X(0x500f0302), X(0x63df7c4d), X(0x50363529), X(0x63c0043b),
-  X(0x505d5af1), X(0x63a07cc7), X(0x50847454), X(0x6380e5f6),
-  X(0x50ab814d), X(0x63613fcd), X(0x50d281d5), X(0x63418a50),
-  X(0x50f975e6), X(0x6321c585), X(0x51205d7b), X(0x6301f171),
-  X(0x5147388c), X(0x62e20e17), X(0x516e0715), X(0x62c21b7e),
-  X(0x5194c910), X(0x62a219aa), X(0x51bb7e75), X(0x628208a1),
-  X(0x51e22740), X(0x6261e866), X(0x5208c36a), X(0x6241b8ff),
-  X(0x522f52ee), X(0x62217a72), X(0x5255d5c5), X(0x62012cc2),
-  X(0x527c4bea), X(0x61e0cff5), X(0x52a2b556), X(0x61c06410),
-  X(0x52c91204), X(0x619fe918), X(0x52ef61ee), X(0x617f5f12),
-  X(0x5315a50e), X(0x615ec603), X(0x533bdb5d), X(0x613e1df0),
-  X(0x536204d7), X(0x611d66de), X(0x53882175), X(0x60fca0d2),
-  X(0x53ae3131), X(0x60dbcbd1), X(0x53d43406), X(0x60bae7e1),
-  X(0x53fa29ed), X(0x6099f505), X(0x542012e1), X(0x6078f344),
-  X(0x5445eedb), X(0x6057e2a2), X(0x546bbdd7), X(0x6036c325),
-  X(0x54917fce), X(0x601594d1), X(0x54b734ba), X(0x5ff457ad),
-  X(0x54dcdc96), X(0x5fd30bbc), X(0x5502775c), X(0x5fb1b104),
-  X(0x55280505), X(0x5f90478a), X(0x554d858d), X(0x5f6ecf53),
-  X(0x5572f8ed), X(0x5f4d4865), X(0x55985f20), X(0x5f2bb2c5),
-  X(0x55bdb81f), X(0x5f0a0e77), X(0x55e303e6), X(0x5ee85b82),
-  X(0x5608426e), X(0x5ec699e9), X(0x562d73b2), X(0x5ea4c9b3),
-  X(0x565297ab), X(0x5e82eae5), X(0x5677ae54), X(0x5e60fd84),
-  X(0x569cb7a8), X(0x5e3f0194), X(0x56c1b3a1), X(0x5e1cf71c),
-  X(0x56e6a239), X(0x5dfade20), X(0x570b8369), X(0x5dd8b6a7),
-  X(0x5730572e), X(0x5db680b4), X(0x57551d80), X(0x5d943c4e),
-  X(0x5779d65b), X(0x5d71e979), X(0x579e81b8), X(0x5d4f883b),
-  X(0x57c31f92), X(0x5d2d189a), X(0x57e7afe4), X(0x5d0a9a9a),
-  X(0x580c32a7), X(0x5ce80e41), X(0x5830a7d6), X(0x5cc57394),
-  X(0x58550f6c), X(0x5ca2ca99), X(0x58796962), X(0x5c801354),
-  X(0x589db5b3), X(0x5c5d4dcc), X(0x58c1f45b), X(0x5c3a7a05),
-  X(0x58e62552), X(0x5c179806), X(0x590a4893), X(0x5bf4a7d2),
-  X(0x592e5e19), X(0x5bd1a971), X(0x595265df), X(0x5bae9ce7),
-  X(0x59765fde), X(0x5b8b8239), X(0x599a4c12), X(0x5b68596d),
-  X(0x59be2a74), X(0x5b452288), X(0x59e1faff), X(0x5b21dd90),
-  X(0x5a05bdae), X(0x5afe8a8b), X(0x5a29727b), X(0x5adb297d),
-  X(0x5a4d1960), X(0x5ab7ba6c), X(0x5a70b258), X(0x5a943d5e),
-};
-  
--- a/misc/libtremor/misc.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: miscellaneous math and prototypes
-
- ********************************************************************/
-
-#ifndef _V_RANDOM_H_
-#define _V_RANDOM_H_
-#include "ivorbiscodec.h"
-#include "os.h"
-
-#include "asm_arm.h"
-#include <stdlib.h> /* for abs() */
-  
-#ifndef _V_WIDE_MATH
-#define _V_WIDE_MATH
-  
-#ifndef  _LOW_ACCURACY_
-/* 64 bit multiply */
-
-#if !(defined WIN32 && defined WINCE)
-#include <sys/types.h>
-#endif
-
-#if BYTE_ORDER==LITTLE_ENDIAN
-union magic {
-  struct {
-    ogg_int32_t lo;
-    ogg_int32_t hi;
-  } halves;
-  ogg_int64_t whole;
-};
-#endif 
-
-#if BYTE_ORDER==BIG_ENDIAN
-union magic {
-  struct {
-    ogg_int32_t hi;
-    ogg_int32_t lo;
-  } halves;
-  ogg_int64_t whole;
-};
-#endif
-
-STIN ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) {
-  union magic magic;
-  magic.whole = (ogg_int64_t)x * y;
-  return magic.halves.hi;
-}
-
-STIN ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) {
-  return MULT32(x,y)<<1;
-}
-
-STIN ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) {
-  union magic magic;
-  magic.whole  = (ogg_int64_t)x * y;
-  return ((ogg_uint32_t)(magic.halves.lo)>>15) | ((magic.halves.hi)<<17);
-}
-
-#else
-/* 32 bit multiply, more portable but less accurate */
-
-/*
- * Note: Precision is biased towards the first argument therefore ordering
- * is important.  Shift values were chosen for the best sound quality after
- * many listening tests.
- */
-
-/*
- * For MULT32 and MULT31: The second argument is always a lookup table
- * value already preshifted from 31 to 8 bits.  We therefore take the 
- * opportunity to save on text space and use unsigned char for those
- * tables in this case.
- */
-
-STIN ogg_int32_t MULT32(ogg_int32_t x, ogg_int32_t y) {
-  return (x >> 9) * y;  /* y preshifted >>23 */
-}
-
-STIN ogg_int32_t MULT31(ogg_int32_t x, ogg_int32_t y) {
-  return (x >> 8) * y;  /* y preshifted >>23 */
-}
-
-STIN ogg_int32_t MULT31_SHIFT15(ogg_int32_t x, ogg_int32_t y) {
-  return (x >> 6) * y;  /* y preshifted >>9 */
-}
-
-#endif
-
-/*
- * This should be used as a memory barrier, forcing all cached values in
- * registers to wr writen back to memory.  Might or might not be beneficial
- * depending on the architecture and compiler.
- */
-#define MB()
-
-/*
- * The XPROD functions are meant to optimize the cross products found all
- * over the place in mdct.c by forcing memory operation ordering to avoid
- * unnecessary register reloads as soon as memory is being written to.
- * However this is only beneficial on CPUs with a sane number of general
- * purpose registers which exclude the Intel x86.  On Intel, better let the
- * compiler actually reload registers directly from original memory by using
- * macros.
- */
-
-#ifdef __i386__
-
-#define XPROD32(_a, _b, _t, _v, _x, _y)		\
-  { *(_x)=MULT32(_a,_t)+MULT32(_b,_v);		\
-    *(_y)=MULT32(_b,_t)-MULT32(_a,_v); }
-#define XPROD31(_a, _b, _t, _v, _x, _y)		\
-  { *(_x)=MULT31(_a,_t)+MULT31(_b,_v);		\
-    *(_y)=MULT31(_b,_t)-MULT31(_a,_v); }
-#define XNPROD31(_a, _b, _t, _v, _x, _y)	\
-  { *(_x)=MULT31(_a,_t)-MULT31(_b,_v);		\
-    *(_y)=MULT31(_b,_t)+MULT31(_a,_v); }
-
-#else
-
-STIN void XPROD32(ogg_int32_t  a, ogg_int32_t  b,
-			   ogg_int32_t  t, ogg_int32_t  v,
-			   ogg_int32_t *x, ogg_int32_t *y)
-{
-  *x = MULT32(a, t) + MULT32(b, v);
-  *y = MULT32(b, t) - MULT32(a, v);
-}
-
-STIN void XPROD31(ogg_int32_t  a, ogg_int32_t  b,
-			   ogg_int32_t  t, ogg_int32_t  v,
-			   ogg_int32_t *x, ogg_int32_t *y)
-{
-  *x = MULT31(a, t) + MULT31(b, v);
-  *y = MULT31(b, t) - MULT31(a, v);
-}
-
-STIN void XNPROD31(ogg_int32_t  a, ogg_int32_t  b,
-			    ogg_int32_t  t, ogg_int32_t  v,
-			    ogg_int32_t *x, ogg_int32_t *y)
-{
-  *x = MULT31(a, t) - MULT31(b, v);
-  *y = MULT31(b, t) + MULT31(a, v);
-}
-
-#endif
-
-#endif
-
-#ifndef _V_CLIP_MATH
-#define _V_CLIP_MATH
-
-STIN ogg_int32_t CLIP_TO_15(ogg_int32_t x) {
-  int ret=x;
-  ret-= ((x<=32767)-1)&(x-32767);
-  ret-= ((x>=-32768)-1)&(x+32768);
-  return(ret);
-}
-
-#endif
-
-STIN ogg_int32_t VFLOAT_MULT(ogg_int32_t a,ogg_int32_t ap,
-				      ogg_int32_t b,ogg_int32_t bp,
-				      ogg_int32_t *p){
-  if(a && b){
-#ifndef _LOW_ACCURACY_
-    *p=ap+bp+32;
-    return MULT32(a,b);
-#else
-    *p=ap+bp+31;
-    return (a>>15)*(b>>16); 
-#endif
-  }else
-    return 0;
-}
-
-int _ilog(unsigned int);
-
-STIN ogg_int32_t VFLOAT_MULTI(ogg_int32_t a,ogg_int32_t ap,
-				      ogg_int32_t i,
-				      ogg_int32_t *p){
-
-  int ip=_ilog(abs(i))-31;
-  return VFLOAT_MULT(a,ap,i<<-ip,ip,p);
-}
-
-STIN ogg_int32_t VFLOAT_ADD(ogg_int32_t a,ogg_int32_t ap,
-				      ogg_int32_t b,ogg_int32_t bp,
-				      ogg_int32_t *p){
-
-  if(!a){
-    *p=bp;
-    return b;
-  }else if(!b){
-    *p=ap;
-    return a;
-  }
-
-  /* yes, this can leak a bit. */
-  if(ap>bp){
-    int shift=ap-bp+1;
-    *p=ap+1;
-    a>>=1;
-    if(shift<32){
-      b=(b+(1<<(shift-1)))>>shift;
-    }else{
-      b=0;
-    }
-  }else{
-    int shift=bp-ap+1;
-    *p=bp+1;
-    b>>=1;
-    if(shift<32){
-      a=(a+(1<<(shift-1)))>>shift;
-    }else{
-      a=0;
-    }
-  }
-
-  a+=b;
-  if((a&0xc0000000)==0xc0000000 || 
-     (a&0xc0000000)==0){
-    a<<=1;
-    (*p)--;
-  }
-  return(a);
-}
-
-#endif
-
-
-
-
--- a/misc/libtremor/ogg.h	Sun Oct 09 15:15:45 2011 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
- *                                                                  *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003    *
- * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
- function: subsumed libogg includes
-
- ********************************************************************/
-#ifndef _OGG_H
-#define _OGG_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "os_types.h"
-
-typedef struct ogg_buffer_state{
-  struct ogg_buffer    *unused_buffers;
-  struct ogg_reference *unused_references;
-  int                   outstanding;
-  int                   shutdown;
-} ogg_buffer_state;
-
-typedef struct ogg_buffer {
-  unsigned char      *data;
-  long                size;
-  int                 refcount;
-  
-  union {
-    ogg_buffer_state  *owner;
-    struct ogg_buffer *next;
-  } ptr;
-} ogg_buffer;
-
-typedef struct ogg_reference {
-  ogg_buffer    *buffer;
-  long           begin;
-  long           length;
-
-  struct ogg_reference *next;
-} ogg_reference;
-
-typedef struct oggpack_buffer {
-  int            headbit;
-  unsigned char *headptr;
-  long           headend;
-
-  /* memory management */
-  ogg_reference *head;
-  ogg_reference *tail;
-
-  /* render the byte/bit counter API constant time */
-  long              count; /* doesn't count the tail */
-} oggpack_buffer;
-
-typedef struct oggbyte_buffer {
-  ogg_reference *baseref;
-
-  ogg_reference *ref;
-  unsigned char *ptr;
-  long           pos;
-  long           end;
-} oggbyte_buffer;
-
-typedef struct ogg_sync_state {
-  /* decode memory management pool */
-  ogg_buffer_state *bufferpool;
-
-  /* stream buffers */
-  ogg_reference    *fifo_head;
-  ogg_reference    *fifo_tail;
-  long              fifo_fill;
-
-  /* stream sync management */
-  int               unsynced;
-  int               headerbytes;
-  int               bodybytes;
-
-} ogg_sync_state;
-
-typedef struct ogg_stream_state {
-  ogg_reference *header_head;
-  ogg_reference *header_tail;
-  ogg_reference *body_head;
-  ogg_reference *body_tail;
-
-  int            e_o_s;    /* set when we have buffered the last
-                              packet in the logical bitstream */
-  int            b_o_s;    /* set after we've written the initial page
-                              of a logical bitstream */
-  long           serialno;
-  long           pageno;
-  ogg_int64_t    packetno; /* sequence number for decode; the framing
-                              knows where there's a hole in the data,
-                              but we need coupling so that the codec
-                              (which is in a seperate abstraction
-                              layer) also knows about the gap */
-  ogg_int64_t    granulepos;
-
-  int            lacing_fill;
-  ogg_uint32_t   body_fill;
-
-  /* decode-side state data */
-  int            holeflag;
-  int            spanflag;
-  int            clearflag;
-  int            laceptr;
-  ogg_uint32_t   body_fill_next;
-  
-} ogg_stream_state;
-
-typedef struct {
-  ogg_reference *packet;
-  long           bytes;
-  long           b_o_s;
-  long           e_o_s;
-  ogg_int64_t    granulepos;
-  ogg_int64_t    packetno;     /* sequence number for decode; the framing
-                                  knows where there's a hole in the data,
-                                  but we need coupling so that the codec
-                                  (which is in a seperate abstraction
-                                  layer) also knows about the gap */
-} ogg_packet;
-
-typedef struct {
-  ogg_reference *header;
-  int            header_len;
-  ogg_reference *body;
-  long           body_len;
-} ogg_page;
-
-/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/
-
-extern void  oggpack_readinit(oggpack_buffer *b,ogg_reference *r);
-extern long  oggpack_look(oggpack_buffer *b,int bits);
-extern void  oggpack_adv(oggpack_buffer *b,int bits);
-extern long  oggpack_read(oggpack_buffer *b,int bits);
-extern long  oggpack_bytes(oggpack_buffer *b);
-extern long  oggpack_bits(oggpack_buffer *b);
-extern int   oggpack_eop(oggpack_buffer *b);
-
-/* Ogg BITSTREAM PRIMITIVES: decoding **************************/
-
-extern ogg_sync_state *ogg_sync_create(void);
-extern int      ogg_sync_destroy(ogg_sync_state *oy);
-extern int      ogg_sync_reset(ogg_sync_state *oy);
-
-extern unsigned char *ogg_sync_bufferin(ogg_sync_state *oy, long size);
-extern int      ogg_sync_wrote(ogg_sync_state *oy, long bytes);
-extern long     ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og);
-extern int      ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
-extern int      ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
-extern int      ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
-extern int      ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op);
-
-/* Ogg BITSTREAM PRIMITIVES: general ***************************/
-
-extern ogg_stream_state *ogg_stream_create(int serialno);
-extern int      ogg_stream_destroy(ogg_stream_state *os);
-extern int      ogg_stream_reset(ogg_stream_state *os);
-extern int      ogg_stream_reset_serialno(ogg_stream_state *os,int serialno);
-extern int      ogg_stream_eos(ogg_stream_state *os);
-
-extern int      ogg_page_checksum_set(ogg_page *og);
-
-extern int      ogg_page_version(ogg_page *og);
-extern int      ogg_page_continued(ogg_page *og);
-extern int      ogg_page_bos(ogg_page *og);
-extern int      ogg_page_eos(ogg_page *og);
-extern ogg_int64_t  ogg_page_granulepos(ogg_page *og);
-extern ogg_uint32_t ogg_page_serialno(ogg_page *og);
-extern ogg_uint32_t ogg_page_pageno(ogg_page *og);
-extern int      ogg_page_packets(ogg_page *og);
-extern int      ogg_page_getbuffer(ogg_page *og, unsigned char **buffer);
-
-extern int      ogg_packet_release(ogg_packet *op);
-extern int      ogg_page_release(ogg_page *og);
-
-extern void     ogg_page_dup(ogg_page *d, ogg_page *s);
-
-/* Ogg BITSTREAM PRIMITIVES: return codes ***************************/
-
-#define  OGG_SUCCESS   0
-
-#define  OGG_HOLE     -10