gosu 0.7.15 → 0.7.16
Sign up to get free protection for your applications and to get access to all the features.
- data/Gosu/Audio.hpp +18 -29
- data/Gosu/Bitmap.hpp +1 -1
- data/Gosu/Color.hpp +16 -1
- data/Gosu/Font.hpp +3 -3
- data/Gosu/Graphics.hpp +7 -1
- data/Gosu/Image.hpp +4 -4
- data/Gosu/TextInput.hpp +10 -2
- data/Gosu/Version.hpp +2 -2
- data/Gosu/Window.hpp +4 -3
- data/GosuImpl/Audio/AudioOpenAL.mm +46 -29
- data/GosuImpl/AudioFmod.cpp +58 -61
- data/GosuImpl/AudioSDL.cpp +47 -32
- data/GosuImpl/Graphics/BitmapColorKey.cpp +1 -1
- data/GosuImpl/Graphics/BitmapUtils.cpp +2 -2
- data/GosuImpl/Graphics/Color.cpp +12 -0
- data/GosuImpl/Graphics/Font.cpp +1 -1
- data/GosuImpl/Graphics/Text.cpp +2 -2
- data/GosuImpl/Graphics/Texture.cpp +3 -0
- data/GosuImpl/ObjGosu/ObjGosu.mm +36 -0
- data/GosuImpl/ObjGosu/ObjGosuColor.mm +84 -0
- data/GosuImpl/ObjGosu/ObjGosuFont.mm +42 -0
- data/GosuImpl/ObjGosu/ObjGosuImage.h +7 -0
- data/GosuImpl/ObjGosu/ObjGosuImage.mm +65 -0
- data/GosuImpl/ObjGosu/ObjGosuSample.mm +32 -0
- data/GosuImpl/ObjGosu/ObjGosuSong.mm +43 -0
- data/GosuImpl/ObjGosu/ObjGosuWindow.h +32 -0
- data/GosuImpl/ObjGosu/ObjGosuWindow.mm +155 -0
- data/GosuImpl/RubyGosu.swg +48 -21
- data/GosuImpl/RubyGosuStub.mm +6 -0
- data/GosuImpl/RubyGosu_wrap.cxx +358 -195
- data/GosuImpl/RubyGosu_wrap.h +9 -0
- data/GosuImpl/TextInputMac.mm +10 -4
- data/GosuImpl/TextInputWin.cpp +4 -2
- data/GosuImpl/TextInputX.cpp +16 -14
- data/GosuImpl/WindowMac.mm +33 -23
- data/GosuImpl/WindowWin.cpp +22 -16
- data/GosuImpl/WindowX.cpp +17 -16
- data/Rakefile +38 -12
- data/dependencies/libogg/AUTHORS +4 -0
- data/dependencies/libogg/CHANGES +33 -0
- data/dependencies/libogg/COPYING +28 -0
- data/dependencies/libogg/Makefile.am +32 -0
- data/dependencies/libogg/Makefile.in +713 -0
- data/dependencies/libogg/README +103 -0
- data/dependencies/libogg/aclocal.m4 +6807 -0
- data/dependencies/libogg/compile +142 -0
- data/dependencies/libogg/config.guess +1465 -0
- data/dependencies/libogg/config.h.in +70 -0
- data/dependencies/libogg/config.sub +1569 -0
- data/dependencies/libogg/configure +23018 -0
- data/dependencies/libogg/configure.in +301 -0
- data/dependencies/libogg/debian/changelog +68 -0
- data/dependencies/libogg/debian/control +22 -0
- data/dependencies/libogg/debian/copyright +37 -0
- data/dependencies/libogg/debian/libogg-dev.docs +1 -0
- data/dependencies/libogg/debian/libogg-dev.install +8 -0
- data/dependencies/libogg/debian/libogg0.README.Debian +6 -0
- data/dependencies/libogg/debian/libogg0.install +1 -0
- data/dependencies/libogg/debian/rules +154 -0
- data/dependencies/libogg/debian/watch +3 -0
- data/dependencies/libogg/depcomp +529 -0
- data/dependencies/libogg/doc/Makefile.am +11 -0
- data/dependencies/libogg/doc/Makefile.in +518 -0
- data/dependencies/libogg/doc/framing.html +431 -0
- data/dependencies/libogg/doc/index.html +104 -0
- data/dependencies/libogg/doc/libogg/Makefile.am +28 -0
- data/dependencies/libogg/doc/libogg/Makefile.in +378 -0
- data/dependencies/libogg/doc/libogg/bitpacking.html +99 -0
- data/dependencies/libogg/doc/libogg/datastructures.html +59 -0
- data/dependencies/libogg/doc/libogg/decoding.html +100 -0
- data/dependencies/libogg/doc/libogg/encoding.html +64 -0
- data/dependencies/libogg/doc/libogg/general.html +105 -0
- data/dependencies/libogg/doc/libogg/index.html +39 -0
- data/dependencies/libogg/doc/libogg/ogg_packet.html +75 -0
- data/dependencies/libogg/doc/libogg/ogg_packet_clear.html +62 -0
- data/dependencies/libogg/doc/libogg/ogg_page.html +74 -0
- data/dependencies/libogg/doc/libogg/ogg_page_bos.html +65 -0
- data/dependencies/libogg/doc/libogg/ogg_page_checksum_set.html +62 -0
- data/dependencies/libogg/doc/libogg/ogg_page_continued.html +64 -0
- data/dependencies/libogg/doc/libogg/ogg_page_eos.html +65 -0
- data/dependencies/libogg/doc/libogg/ogg_page_granulepos.html +65 -0
- data/dependencies/libogg/doc/libogg/ogg_page_packets.html +75 -0
- data/dependencies/libogg/doc/libogg/ogg_page_pageno.html +63 -0
- data/dependencies/libogg/doc/libogg/ogg_page_serialno.html +63 -0
- data/dependencies/libogg/doc/libogg/ogg_page_version.html +63 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_clear.html +61 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_destroy.html +62 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_eos.html +62 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_flush.html +67 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_init.html +66 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_packetin.html +65 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_packetout.html +71 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_packetpeek.html +85 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_pagein.html +67 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_pageout.html +66 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_reset.html +61 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_reset_serialno.html +67 -0
- data/dependencies/libogg/doc/libogg/ogg_stream_state.html +121 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_buffer.html +67 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_clear.html +62 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_destroy.html +62 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_init.html +63 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_pageout.html +79 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_pageseek.html +68 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_reset.html +63 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_state.html +67 -0
- data/dependencies/libogg/doc/libogg/ogg_sync_wrote.html +73 -0
- data/dependencies/libogg/doc/libogg/oggpack_adv.html +64 -0
- data/dependencies/libogg/doc/libogg/oggpack_adv1.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_bits.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_buffer.html +66 -0
- data/dependencies/libogg/doc/libogg/oggpack_bytes.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_get_buffer.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_look.html +66 -0
- data/dependencies/libogg/doc/libogg/oggpack_look1.html +63 -0
- data/dependencies/libogg/doc/libogg/oggpack_read.html +65 -0
- data/dependencies/libogg/doc/libogg/oggpack_read1.html +63 -0
- data/dependencies/libogg/doc/libogg/oggpack_readinit.html +64 -0
- data/dependencies/libogg/doc/libogg/oggpack_reset.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_write.html +68 -0
- data/dependencies/libogg/doc/libogg/oggpack_writealign.html +65 -0
- data/dependencies/libogg/doc/libogg/oggpack_writeclear.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_writecopy.html +69 -0
- data/dependencies/libogg/doc/libogg/oggpack_writeinit.html +62 -0
- data/dependencies/libogg/doc/libogg/oggpack_writetrunc.html +65 -0
- data/dependencies/libogg/doc/libogg/overview.html +44 -0
- data/dependencies/libogg/doc/libogg/reference.html +93 -0
- data/dependencies/libogg/doc/libogg/style.css +7 -0
- data/dependencies/libogg/doc/libogg/vorbis_comment.html +70 -0
- data/dependencies/libogg/doc/libogg/vorbis_info.html +80 -0
- data/dependencies/libogg/doc/ogg-multiplex.html +445 -0
- data/dependencies/libogg/doc/oggstream.html +234 -0
- data/dependencies/libogg/doc/rfc3533.txt +843 -0
- data/dependencies/libogg/doc/rfc3534.txt +339 -0
- data/dependencies/libogg/doc/stream.png +0 -0
- data/dependencies/libogg/doc/vorbisword2.png +0 -0
- data/dependencies/libogg/doc/white-ogg.png +0 -0
- data/dependencies/libogg/doc/white-xifish.png +0 -0
- data/dependencies/libogg/include/Makefile.am +3 -0
- data/dependencies/libogg/include/Makefile.in +481 -0
- data/dependencies/libogg/include/ogg/Makefile.am +6 -0
- data/dependencies/libogg/include/ogg/Makefile.in +428 -0
- data/dependencies/libogg/include/ogg/config_types.h.in +11 -0
- data/dependencies/libogg/include/ogg/ogg.h +202 -0
- data/dependencies/libogg/include/ogg/os_types.h +127 -0
- data/dependencies/libogg/install-sh +323 -0
- data/dependencies/libogg/libogg.spec +106 -0
- data/dependencies/libogg/libogg.spec.in +106 -0
- data/dependencies/libogg/ltmain.sh +6426 -0
- data/dependencies/libogg/macos/compat/strdup.c +21 -0
- data/dependencies/libogg/macos/compat/sys/types.h +1 -0
- data/dependencies/libogg/macos/libogg.mcp +0 -0
- data/dependencies/libogg/macos/libogg.mcp.exp +64 -0
- data/dependencies/libogg/macosx/English.lproj/InfoPlist.strings +0 -0
- data/dependencies/libogg/macosx/Info.plist +30 -0
- data/dependencies/libogg/macosx/Ogg.xcodeproj/project.pbxproj +303 -0
- data/dependencies/libogg/macosx/Ogg_Prefix.pch +5 -0
- data/dependencies/libogg/missing +357 -0
- data/dependencies/libogg/ogg-uninstalled.pc.in +14 -0
- data/dependencies/libogg/ogg.m4 +102 -0
- data/dependencies/libogg/ogg.pc.in +14 -0
- data/dependencies/libogg/src/Makefile.am +28 -0
- data/dependencies/libogg/src/Makefile.in +536 -0
- data/dependencies/libogg/src/bitwise.c +784 -0
- data/dependencies/libogg/src/framing.c +1800 -0
- data/dependencies/libogg/win32/Makefile.am +5 -0
- data/dependencies/libogg/win32/Makefile.in +327 -0
- data/dependencies/libogg/win32/build_ogg_dynamic.bat +18 -0
- data/dependencies/libogg/win32/build_ogg_dynamic_debug.bat +18 -0
- data/dependencies/libogg/win32/build_ogg_static.bat +18 -0
- data/dependencies/libogg/win32/build_ogg_static_debug.bat +18 -0
- data/dependencies/libogg/win32/ogg.def +78 -0
- data/dependencies/libogg/win32/ogg.dsw +41 -0
- data/dependencies/libogg/win32/ogg_dynamic.dsp +128 -0
- data/dependencies/libogg/win32/ogg_static.dsp +108 -0
- data/dependencies/libpng/ANNOUNCE +61 -0
- data/dependencies/libpng/CHANGES +2173 -0
- data/dependencies/libpng/INSTALL +199 -0
- data/dependencies/libpng/KNOWNBUG +22 -0
- data/dependencies/libpng/LICENSE +109 -0
- data/dependencies/libpng/README +264 -0
- data/dependencies/libpng/TODO +24 -0
- data/dependencies/libpng/Y2KINFO +55 -0
- data/dependencies/libpng/configure +13 -0
- data/dependencies/libpng/contrib/gregbook/COPYING +340 -0
- data/dependencies/libpng/contrib/gregbook/LICENSE +50 -0
- data/dependencies/libpng/contrib/gregbook/Makefile.mingw32 +130 -0
- data/dependencies/libpng/contrib/gregbook/Makefile.sgi +104 -0
- data/dependencies/libpng/contrib/gregbook/Makefile.unx +132 -0
- data/dependencies/libpng/contrib/gregbook/Makefile.w32 +113 -0
- data/dependencies/libpng/contrib/gregbook/README +186 -0
- data/dependencies/libpng/contrib/gregbook/makevms.com +132 -0
- data/dependencies/libpng/contrib/gregbook/readpng.c +304 -0
- data/dependencies/libpng/contrib/gregbook/readpng.h +88 -0
- data/dependencies/libpng/contrib/gregbook/readpng2.c +645 -0
- data/dependencies/libpng/contrib/gregbook/readpng2.h +121 -0
- data/dependencies/libpng/contrib/gregbook/readppm.c +179 -0
- data/dependencies/libpng/contrib/gregbook/rpng-win.c +684 -0
- data/dependencies/libpng/contrib/gregbook/rpng-x.c +904 -0
- data/dependencies/libpng/contrib/gregbook/rpng2-win.c +1225 -0
- data/dependencies/libpng/contrib/gregbook/rpng2-x.c +2127 -0
- data/dependencies/libpng/contrib/gregbook/toucan.png +0 -0
- data/dependencies/libpng/contrib/gregbook/wpng.c +853 -0
- data/dependencies/libpng/contrib/gregbook/writepng.c +392 -0
- data/dependencies/libpng/contrib/gregbook/writepng.h +133 -0
- data/dependencies/libpng/contrib/pngminim/decoder/README +6 -0
- data/dependencies/libpng/contrib/pngminim/decoder/gather.sh +8 -0
- data/dependencies/libpng/contrib/pngminim/decoder/makefile.std +44 -0
- data/dependencies/libpng/contrib/pngminim/decoder/pngusr.h +67 -0
- data/dependencies/libpng/contrib/pngminim/encoder/README +6 -0
- data/dependencies/libpng/contrib/pngminim/encoder/dummy_inflate.c +27 -0
- data/dependencies/libpng/contrib/pngminim/encoder/gather.sh +9 -0
- data/dependencies/libpng/contrib/pngminim/encoder/makefile.std +43 -0
- data/dependencies/libpng/contrib/pngminim/encoder/pngusr.h +66 -0
- data/dependencies/libpng/contrib/pngminus/README +153 -0
- data/dependencies/libpng/contrib/pngminus/makefile.std +65 -0
- data/dependencies/libpng/contrib/pngminus/makefile.tc3 +38 -0
- data/dependencies/libpng/contrib/pngminus/makevms.com +92 -0
- data/dependencies/libpng/contrib/pngminus/png2pnm.bat +41 -0
- data/dependencies/libpng/contrib/pngminus/png2pnm.c +430 -0
- data/dependencies/libpng/contrib/pngminus/png2pnm.sh +42 -0
- data/dependencies/libpng/contrib/pngminus/pngminus.bat +4 -0
- data/dependencies/libpng/contrib/pngminus/pngminus.sh +5 -0
- data/dependencies/libpng/contrib/pngminus/pnm2png.bat +41 -0
- data/dependencies/libpng/contrib/pngminus/pnm2png.c +533 -0
- data/dependencies/libpng/contrib/pngminus/pnm2png.sh +42 -0
- data/dependencies/libpng/contrib/pngsuite/basn0g01.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn0g02.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn0g04.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn0g08.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn0g16.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn2c08.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn2c16.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn3p01.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn3p02.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn3p04.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn3p08.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn4a08.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn4a16.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn6a08.png +0 -0
- data/dependencies/libpng/contrib/pngsuite/basn6a16.png +0 -0
- data/dependencies/libpng/contrib/visupng/PngFile.c +439 -0
- data/dependencies/libpng/contrib/visupng/PngFile.h +27 -0
- data/dependencies/libpng/contrib/visupng/README.txt +58 -0
- data/dependencies/libpng/contrib/visupng/VisualPng.c +961 -0
- data/dependencies/libpng/contrib/visupng/VisualPng.dsp +147 -0
- data/dependencies/libpng/contrib/visupng/VisualPng.dsw +29 -0
- data/dependencies/libpng/contrib/visupng/VisualPng.ico +0 -0
- data/dependencies/libpng/contrib/visupng/VisualPng.png +0 -0
- data/dependencies/libpng/contrib/visupng/VisualPng.rc +152 -0
- data/dependencies/libpng/contrib/visupng/cexcept.h +243 -0
- data/dependencies/libpng/contrib/visupng/resource.h +23 -0
- data/dependencies/libpng/example.c +814 -0
- data/dependencies/libpng/libpng-1.2.29.txt +2906 -0
- data/dependencies/libpng/libpng.3 +3680 -0
- data/dependencies/libpng/libpngpf.3 +274 -0
- data/dependencies/libpng/png.5 +74 -0
- data/dependencies/libpng/png.c +798 -0
- data/dependencies/libpng/png.h +3569 -0
- data/dependencies/libpng/pngbar.jpg +0 -0
- data/dependencies/libpng/pngbar.png +0 -0
- data/dependencies/libpng/pngconf.h +1481 -0
- data/dependencies/libpng/pngerror.c +343 -0
- data/dependencies/libpng/pnggccrd.c +103 -0
- data/dependencies/libpng/pngget.c +901 -0
- data/dependencies/libpng/pngmem.c +608 -0
- data/dependencies/libpng/pngnow.png +0 -0
- data/dependencies/libpng/pngpread.c +1598 -0
- data/dependencies/libpng/pngread.c +1479 -0
- data/dependencies/libpng/pngrio.c +167 -0
- data/dependencies/libpng/pngrtran.c +4292 -0
- data/dependencies/libpng/pngrutil.c +3183 -0
- data/dependencies/libpng/pngset.c +1268 -0
- data/dependencies/libpng/pngtest.c +1563 -0
- data/dependencies/libpng/pngtest.png +0 -0
- data/dependencies/libpng/pngtrans.c +662 -0
- data/dependencies/libpng/pngvcrd.c +1 -0
- data/dependencies/libpng/pngwio.c +234 -0
- data/dependencies/libpng/pngwrite.c +1532 -0
- data/dependencies/libpng/pngwtran.c +572 -0
- data/dependencies/libpng/pngwutil.c +2802 -0
- data/dependencies/libpng/projects/beos/x86-shared.proj +0 -0
- data/dependencies/libpng/projects/beos/x86-shared.txt +22 -0
- data/dependencies/libpng/projects/beos/x86-static.proj +0 -0
- data/dependencies/libpng/projects/beos/x86-static.txt +22 -0
- data/dependencies/libpng/projects/cbuilder5/libpng.bpf +22 -0
- data/dependencies/libpng/projects/cbuilder5/libpng.bpg +25 -0
- data/dependencies/libpng/projects/cbuilder5/libpng.bpr +157 -0
- data/dependencies/libpng/projects/cbuilder5/libpng.cpp +29 -0
- data/dependencies/libpng/projects/cbuilder5/libpng.readme.txt +25 -0
- data/dependencies/libpng/projects/cbuilder5/libpngstat.bpf +22 -0
- data/dependencies/libpng/projects/cbuilder5/libpngstat.bpr +109 -0
- data/dependencies/libpng/projects/cbuilder5/zlib.readme.txt +14 -0
- data/dependencies/libpng/projects/netware.txt +6 -0
- data/dependencies/libpng/projects/visualc6/README.txt +57 -0
- data/dependencies/libpng/projects/visualc6/libpng.dsp +472 -0
- data/dependencies/libpng/projects/visualc6/libpng.dsw +59 -0
- data/dependencies/libpng/projects/visualc6/pngtest.dsp +314 -0
- data/dependencies/libpng/projects/visualc71/PRJ0041.mak +21 -0
- data/dependencies/libpng/projects/visualc71/README.txt +57 -0
- data/dependencies/libpng/projects/visualc71/README_zlib.txt +44 -0
- data/dependencies/libpng/projects/visualc71/libpng.sln +88 -0
- data/dependencies/libpng/projects/visualc71/libpng.vcproj +702 -0
- data/dependencies/libpng/projects/visualc71/pngtest.vcproj +459 -0
- data/dependencies/libpng/projects/visualc71/zlib.vcproj +670 -0
- data/dependencies/libpng/projects/wince.txt +6 -0
- data/dependencies/libpng/scripts/CMakeLists.txt +210 -0
- data/dependencies/libpng/scripts/SCOPTIONS.ppc +7 -0
- data/dependencies/libpng/scripts/descrip.mms +52 -0
- data/dependencies/libpng/scripts/libpng-config-body.in +96 -0
- data/dependencies/libpng/scripts/libpng-config-head.in +21 -0
- data/dependencies/libpng/scripts/libpng-config.in +124 -0
- data/dependencies/libpng/scripts/libpng.icc +44 -0
- data/dependencies/libpng/scripts/libpng.pc-configure.in +10 -0
- data/dependencies/libpng/scripts/libpng.pc.in +10 -0
- data/dependencies/libpng/scripts/makefile.32sunu +254 -0
- data/dependencies/libpng/scripts/makefile.64sunu +254 -0
- data/dependencies/libpng/scripts/makefile.acorn +51 -0
- data/dependencies/libpng/scripts/makefile.aix +113 -0
- data/dependencies/libpng/scripts/makefile.amiga +48 -0
- data/dependencies/libpng/scripts/makefile.atari +51 -0
- data/dependencies/libpng/scripts/makefile.bc32 +152 -0
- data/dependencies/libpng/scripts/makefile.beos +226 -0
- data/dependencies/libpng/scripts/makefile.bor +162 -0
- data/dependencies/libpng/scripts/makefile.cygwin +299 -0
- data/dependencies/libpng/scripts/makefile.darwin +234 -0
- data/dependencies/libpng/scripts/makefile.dec +214 -0
- data/dependencies/libpng/scripts/makefile.dj2 +55 -0
- data/dependencies/libpng/scripts/makefile.elf +275 -0
- data/dependencies/libpng/scripts/makefile.freebsd +48 -0
- data/dependencies/libpng/scripts/makefile.gcc +79 -0
- data/dependencies/libpng/scripts/makefile.gcmmx +271 -0
- data/dependencies/libpng/scripts/makefile.hp64 +235 -0
- data/dependencies/libpng/scripts/makefile.hpgcc +245 -0
- data/dependencies/libpng/scripts/makefile.hpux +232 -0
- data/dependencies/libpng/scripts/makefile.ibmc +71 -0
- data/dependencies/libpng/scripts/makefile.intel +102 -0
- data/dependencies/libpng/scripts/makefile.knr +99 -0
- data/dependencies/libpng/scripts/makefile.linux +249 -0
- data/dependencies/libpng/scripts/makefile.mingw +289 -0
- data/dependencies/libpng/scripts/makefile.mips +83 -0
- data/dependencies/libpng/scripts/makefile.msc +86 -0
- data/dependencies/libpng/scripts/makefile.ne12bsd +45 -0
- data/dependencies/libpng/scripts/makefile.netbsd +45 -0
- data/dependencies/libpng/scripts/makefile.nommx +252 -0
- data/dependencies/libpng/scripts/makefile.openbsd +73 -0
- data/dependencies/libpng/scripts/makefile.os2 +69 -0
- data/dependencies/libpng/scripts/makefile.sco +229 -0
- data/dependencies/libpng/scripts/makefile.sggcc +242 -0
- data/dependencies/libpng/scripts/makefile.sgi +245 -0
- data/dependencies/libpng/scripts/makefile.so9 +251 -0
- data/dependencies/libpng/scripts/makefile.solaris +249 -0
- data/dependencies/libpng/scripts/makefile.solaris-x86 +248 -0
- data/dependencies/libpng/scripts/makefile.std +92 -0
- data/dependencies/libpng/scripts/makefile.sunos +97 -0
- data/dependencies/libpng/scripts/makefile.tc3 +89 -0
- data/dependencies/libpng/scripts/makefile.vcawin32 +99 -0
- data/dependencies/libpng/scripts/makefile.vcwin32 +99 -0
- data/dependencies/libpng/scripts/makefile.watcom +109 -0
- data/dependencies/libpng/scripts/makevms.com +144 -0
- data/dependencies/libpng/scripts/pngos2.def +257 -0
- data/dependencies/libpng/scripts/pngw32.def +238 -0
- data/dependencies/libpng/scripts/pngw32.rc +112 -0
- data/dependencies/libpng/scripts/smakefile.ppc +30 -0
- data/dependencies/libvorbis/AUTHORS +3 -0
- data/dependencies/libvorbis/CHANGES +48 -0
- data/dependencies/libvorbis/COPYING +28 -0
- data/dependencies/libvorbis/Makefile.am +41 -0
- data/dependencies/libvorbis/Makefile.in +759 -0
- data/dependencies/libvorbis/README +132 -0
- data/dependencies/libvorbis/acinclude.m4 +161 -0
- data/dependencies/libvorbis/aclocal.m4 +7273 -0
- data/dependencies/libvorbis/autogen.sh +127 -0
- data/dependencies/libvorbis/config.guess +1500 -0
- data/dependencies/libvorbis/config.h.in +78 -0
- data/dependencies/libvorbis/config.sub +1616 -0
- data/dependencies/libvorbis/configure +22114 -0
- data/dependencies/libvorbis/configure.in +246 -0
- data/dependencies/libvorbis/depcomp +584 -0
- data/dependencies/libvorbis/doc/Makefile +665 -0
- data/dependencies/libvorbis/doc/Makefile.am +137 -0
- data/dependencies/libvorbis/doc/Makefile.in +665 -0
- data/dependencies/libvorbis/doc/Vorbis_I_spec.html +2292 -0
- data/dependencies/libvorbis/doc/Vorbis_I_spec.pdf +0 -0
- data/dependencies/libvorbis/doc/components.png +0 -0
- data/dependencies/libvorbis/doc/draft-ietf-avt-rtp-vorbis-06.txt +1401 -0
- data/dependencies/libvorbis/doc/draft-ietf-avt-rtp-vorbis-06.xml +1388 -0
- data/dependencies/libvorbis/doc/eightphase.png +0 -0
- data/dependencies/libvorbis/doc/evenlsp.png +0 -0
- data/dependencies/libvorbis/doc/fish_xiph_org.png +0 -0
- data/dependencies/libvorbis/doc/floor1-1.png +0 -0
- data/dependencies/libvorbis/doc/floor1-2.png +0 -0
- data/dependencies/libvorbis/doc/floor1-3.png +0 -0
- data/dependencies/libvorbis/doc/floor1-4.png +0 -0
- data/dependencies/libvorbis/doc/floor1_inverse_dB_table.html +154 -0
- data/dependencies/libvorbis/doc/floorval.png +0 -0
- data/dependencies/libvorbis/doc/fourphase.png +0 -0
- data/dependencies/libvorbis/doc/framing.html +431 -0
- data/dependencies/libvorbis/doc/helper.html +239 -0
- data/dependencies/libvorbis/doc/hufftree-under.png +0 -0
- data/dependencies/libvorbis/doc/hufftree.png +0 -0
- data/dependencies/libvorbis/doc/index.html +114 -0
- data/dependencies/libvorbis/doc/lspmap.png +0 -0
- data/dependencies/libvorbis/doc/oddlsp.png +0 -0
- data/dependencies/libvorbis/doc/oggstream.html +234 -0
- data/dependencies/libvorbis/doc/programming.html +554 -0
- data/dependencies/libvorbis/doc/residue-pack.png +0 -0
- data/dependencies/libvorbis/doc/residue2.png +0 -0
- data/dependencies/libvorbis/doc/squarepolar.png +0 -0
- data/dependencies/libvorbis/doc/stereo.html +418 -0
- data/dependencies/libvorbis/doc/stream.png +0 -0
- data/dependencies/libvorbis/doc/v-comment.html +285 -0
- data/dependencies/libvorbis/doc/vorbis-clip.txt +139 -0
- data/dependencies/libvorbis/doc/vorbis-errors.txt +103 -0
- data/dependencies/libvorbis/doc/vorbis-fidelity.html +180 -0
- data/dependencies/libvorbis/doc/vorbis.html +234 -0
- data/dependencies/libvorbis/doc/vorbisenc/Makefile +382 -0
- data/dependencies/libvorbis/doc/vorbisenc/Makefile.am +9 -0
- data/dependencies/libvorbis/doc/vorbisenc/Makefile.in +382 -0
- data/dependencies/libvorbis/doc/vorbisenc/changes.html +104 -0
- data/dependencies/libvorbis/doc/vorbisenc/examples.html +133 -0
- data/dependencies/libvorbis/doc/vorbisenc/index.html +40 -0
- data/dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage2_arg.html +92 -0
- data/dependencies/libvorbis/doc/vorbisenc/ov_ectl_ratemanage_arg.html +92 -0
- data/dependencies/libvorbis/doc/vorbisenc/overview.html +382 -0
- data/dependencies/libvorbis/doc/vorbisenc/reference.html +48 -0
- data/dependencies/libvorbis/doc/vorbisenc/style.css +7 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_encode_ctl.html +169 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init.html +88 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_encode_init_vbr.html +81 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_init.html +88 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_managed.html +102 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_encode_setup_vbr.html +90 -0
- data/dependencies/libvorbis/doc/vorbisenc/vorbis_info.html +81 -0
- data/dependencies/libvorbis/doc/vorbisfile/Makefile +396 -0
- data/dependencies/libvorbis/doc/vorbisfile/Makefile.am +23 -0
- data/dependencies/libvorbis/doc/vorbisfile/Makefile.in +396 -0
- data/dependencies/libvorbis/doc/vorbisfile/OggVorbis_File.html +137 -0
- data/dependencies/libvorbis/doc/vorbisfile/callbacks.html +121 -0
- data/dependencies/libvorbis/doc/vorbisfile/chaining_example_c.html +90 -0
- data/dependencies/libvorbis/doc/vorbisfile/chainingexample.html +175 -0
- data/dependencies/libvorbis/doc/vorbisfile/crosslap.html +121 -0
- data/dependencies/libvorbis/doc/vorbisfile/datastructures.html +61 -0
- data/dependencies/libvorbis/doc/vorbisfile/decoding.html +87 -0
- data/dependencies/libvorbis/doc/vorbisfile/example.html +208 -0
- data/dependencies/libvorbis/doc/vorbisfile/exampleindex.html +39 -0
- data/dependencies/libvorbis/doc/vorbisfile/fileinfo.html +95 -0
- data/dependencies/libvorbis/doc/vorbisfile/index.html +49 -0
- data/dependencies/libvorbis/doc/vorbisfile/initialization.html +118 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_bitrate.html +72 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_bitrate_instant.html +65 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_callbacks.html +117 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_clear.html +64 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_comment.html +66 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_crosslap.html +100 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_fopen.html +124 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_info.html +64 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_open.html +183 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_open_callbacks.html +147 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek.html +83 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_lap.html +103 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page.html +84 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_pcm_seek_page_lap.html +112 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_pcm_tell.html +63 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_pcm_total.html +67 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_raw_seek.html +83 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_raw_seek_lap.html +110 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_raw_tell.html +65 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_raw_total.html +68 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_read.html +123 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_read_float.html +101 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_seekable.html +63 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_serialnumber.html +67 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_streams.html +64 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_test.html +101 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_test_callbacks.html +111 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_test_open.html +82 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_time_seek.html +82 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_time_seek_lap.html +105 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page.html +83 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_time_seek_page_lap.html +112 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_time_tell.html +63 -0
- data/dependencies/libvorbis/doc/vorbisfile/ov_time_total.html +67 -0
- data/dependencies/libvorbis/doc/vorbisfile/overview.html +61 -0
- data/dependencies/libvorbis/doc/vorbisfile/reference.html +83 -0
- data/dependencies/libvorbis/doc/vorbisfile/return.html +77 -0
- data/dependencies/libvorbis/doc/vorbisfile/seekexample.html +152 -0
- data/dependencies/libvorbis/doc/vorbisfile/seeking.html +107 -0
- data/dependencies/libvorbis/doc/vorbisfile/seeking_example_c.html +86 -0
- data/dependencies/libvorbis/doc/vorbisfile/seeking_test_c.html +86 -0
- data/dependencies/libvorbis/doc/vorbisfile/seekingexample.html +203 -0
- data/dependencies/libvorbis/doc/vorbisfile/style.css +7 -0
- data/dependencies/libvorbis/doc/vorbisfile/threads.html +50 -0
- data/dependencies/libvorbis/doc/vorbisfile/vorbis_comment.html +70 -0
- data/dependencies/libvorbis/doc/vorbisfile/vorbis_info.html +80 -0
- data/dependencies/libvorbis/doc/vorbisfile/vorbisfile_example_c.html +106 -0
- data/dependencies/libvorbis/doc/vorbisword2.png +0 -0
- data/dependencies/libvorbis/doc/wait.png +0 -0
- data/dependencies/libvorbis/doc/white-ogg.png +0 -0
- data/dependencies/libvorbis/doc/white-xifish.png +0 -0
- data/dependencies/libvorbis/doc/window1.png +0 -0
- data/dependencies/libvorbis/doc/window2.png +0 -0
- data/dependencies/libvorbis/doc/xifish.pdf +0 -0
- data/dependencies/libvorbis/doc/xml/01-introduction.xml +665 -0
- data/dependencies/libvorbis/doc/xml/02-bitpacking.xml +280 -0
- data/dependencies/libvorbis/doc/xml/03-codebook.xml +458 -0
- data/dependencies/libvorbis/doc/xml/04-codec.xml +711 -0
- data/dependencies/libvorbis/doc/xml/05-comment.xml +284 -0
- data/dependencies/libvorbis/doc/xml/06-floor0.xml +257 -0
- data/dependencies/libvorbis/doc/xml/07-floor1.xml +450 -0
- data/dependencies/libvorbis/doc/xml/08-residue.xml +492 -0
- data/dependencies/libvorbis/doc/xml/09-helper.xml +211 -0
- data/dependencies/libvorbis/doc/xml/10-tables.xml +94 -0
- data/dependencies/libvorbis/doc/xml/TODO +28 -0
- data/dependencies/libvorbis/doc/xml/Vorbis_I_spec.xml +30 -0
- data/dependencies/libvorbis/doc/xml/a1-encapsulation_ogg.xml +201 -0
- data/dependencies/libvorbis/doc/xml/a2-encapsulation_rtp.xml +31 -0
- data/dependencies/libvorbis/doc/xml/footer.xml +60 -0
- data/dependencies/libvorbis/doc/xml/spec-common.xsl +24 -0
- data/dependencies/libvorbis/doc/xml/spec-fo.xsl +16 -0
- data/dependencies/libvorbis/doc/xml/spec-html.xsl +5 -0
- data/dependencies/libvorbis/examples/Makefile +515 -0
- data/dependencies/libvorbis/examples/Makefile.am +28 -0
- data/dependencies/libvorbis/examples/Makefile.in +515 -0
- data/dependencies/libvorbis/examples/chaining_example.c +72 -0
- data/dependencies/libvorbis/examples/decoder_example.c +307 -0
- data/dependencies/libvorbis/examples/encoder_example.c +253 -0
- data/dependencies/libvorbis/examples/frameview.pl +630 -0
- data/dependencies/libvorbis/examples/seeking_example.c +256 -0
- data/dependencies/libvorbis/examples/vorbisfile_example.c +87 -0
- data/dependencies/libvorbis/include/Makefile.am +3 -0
- data/dependencies/libvorbis/include/Makefile.in +506 -0
- data/dependencies/libvorbis/include/vorbis/Makefile.am +7 -0
- data/dependencies/libvorbis/include/vorbis/Makefile.in +426 -0
- data/dependencies/libvorbis/include/vorbis/codec.h +241 -0
- data/dependencies/libvorbis/include/vorbis/vorbisenc.h +112 -0
- data/dependencies/libvorbis/include/vorbis/vorbisfile.h +183 -0
- data/dependencies/libvorbis/install-sh +507 -0
- data/dependencies/libvorbis/lib/Makefile.am +44 -0
- data/dependencies/libvorbis/lib/Makefile.in +706 -0
- data/dependencies/libvorbis/lib/analysis.c +121 -0
- data/dependencies/libvorbis/lib/backends.h +146 -0
- data/dependencies/libvorbis/lib/barkmel.c +64 -0
- data/dependencies/libvorbis/lib/bitrate.c +253 -0
- data/dependencies/libvorbis/lib/bitrate.h +59 -0
- data/dependencies/libvorbis/lib/block.c +993 -0
- data/dependencies/libvorbis/lib/books/Makefile.am +3 -0
- data/dependencies/libvorbis/lib/books/Makefile.in +506 -0
- data/dependencies/libvorbis/lib/books/coupled/Makefile.am +3 -0
- data/dependencies/libvorbis/lib/books/coupled/Makefile.in +347 -0
- data/dependencies/libvorbis/lib/books/coupled/res_books_stereo.h +20681 -0
- data/dependencies/libvorbis/lib/books/floor/Makefile.am +3 -0
- data/dependencies/libvorbis/lib/books/floor/Makefile.in +347 -0
- data/dependencies/libvorbis/lib/books/floor/floor_books.h +1838 -0
- data/dependencies/libvorbis/lib/books/uncoupled/Makefile.am +3 -0
- data/dependencies/libvorbis/lib/books/uncoupled/Makefile.in +347 -0
- data/dependencies/libvorbis/lib/books/uncoupled/res_books_uncoupled.h +11517 -0
- data/dependencies/libvorbis/lib/codebook.c +634 -0
- data/dependencies/libvorbis/lib/codebook.h +160 -0
- data/dependencies/libvorbis/lib/codec_internal.h +137 -0
- data/dependencies/libvorbis/lib/envelope.c +382 -0
- data/dependencies/libvorbis/lib/envelope.h +81 -0
- data/dependencies/libvorbis/lib/floor0.c +223 -0
- data/dependencies/libvorbis/lib/floor1.c +1094 -0
- data/dependencies/libvorbis/lib/highlevel.h +57 -0
- data/dependencies/libvorbis/lib/info.c +644 -0
- data/dependencies/libvorbis/lib/lookup.c +94 -0
- data/dependencies/libvorbis/lib/lookup.h +32 -0
- data/dependencies/libvorbis/lib/lookup_data.h +189 -0
- data/dependencies/libvorbis/lib/lookups.pl +142 -0
- data/dependencies/libvorbis/lib/lpc.c +149 -0
- data/dependencies/libvorbis/lib/lpc.h +29 -0
- data/dependencies/libvorbis/lib/lsp.c +455 -0
- data/dependencies/libvorbis/lib/lsp.h +28 -0
- data/dependencies/libvorbis/lib/mapping0.c +844 -0
- data/dependencies/libvorbis/lib/masking.h +785 -0
- data/dependencies/libvorbis/lib/mdct.c +564 -0
- data/dependencies/libvorbis/lib/mdct.h +83 -0
- data/dependencies/libvorbis/lib/misc.h +52 -0
- data/dependencies/libvorbis/lib/modes/Makefile.am +6 -0
- data/dependencies/libvorbis/lib/modes/Makefile.in +351 -0
- data/dependencies/libvorbis/lib/modes/floor_all.h +248 -0
- data/dependencies/libvorbis/lib/modes/psych_11.h +51 -0
- data/dependencies/libvorbis/lib/modes/psych_16.h +136 -0
- data/dependencies/libvorbis/lib/modes/psych_44.h +666 -0
- data/dependencies/libvorbis/lib/modes/psych_8.h +102 -0
- data/dependencies/libvorbis/lib/modes/residue_16.h +163 -0
- data/dependencies/libvorbis/lib/modes/residue_44.h +294 -0
- data/dependencies/libvorbis/lib/modes/residue_44u.h +318 -0
- data/dependencies/libvorbis/lib/modes/residue_8.h +109 -0
- data/dependencies/libvorbis/lib/modes/setup_11.h +141 -0
- data/dependencies/libvorbis/lib/modes/setup_16.h +149 -0
- data/dependencies/libvorbis/lib/modes/setup_22.h +128 -0
- data/dependencies/libvorbis/lib/modes/setup_32.h +132 -0
- data/dependencies/libvorbis/lib/modes/setup_44.h +107 -0
- data/dependencies/libvorbis/lib/modes/setup_44u.h +74 -0
- data/dependencies/libvorbis/lib/modes/setup_8.h +146 -0
- data/dependencies/libvorbis/lib/modes/setup_X.h +226 -0
- data/dependencies/libvorbis/lib/os.h +156 -0
- data/dependencies/libvorbis/lib/psy.c +1227 -0
- data/dependencies/libvorbis/lib/psy.h +186 -0
- data/dependencies/libvorbis/lib/psytune.c +524 -0
- data/dependencies/libvorbis/lib/registry.c +46 -0
- data/dependencies/libvorbis/lib/registry.h +32 -0
- data/dependencies/libvorbis/lib/res0.c +919 -0
- data/dependencies/libvorbis/lib/scales.h +86 -0
- data/dependencies/libvorbis/lib/sharedbook.c +735 -0
- data/dependencies/libvorbis/lib/smallft.c +1255 -0
- data/dependencies/libvorbis/lib/smallft.h +34 -0
- data/dependencies/libvorbis/lib/synthesis.c +170 -0
- data/dependencies/libvorbis/lib/tone.c +54 -0
- data/dependencies/libvorbis/lib/vorbisenc.c +1184 -0
- data/dependencies/libvorbis/lib/vorbisfile.c +2194 -0
- data/dependencies/libvorbis/lib/window.c +2136 -0
- data/dependencies/libvorbis/lib/window.h +26 -0
- data/dependencies/libvorbis/libvorbis.spec +118 -0
- data/dependencies/libvorbis/libvorbis.spec.in +118 -0
- data/dependencies/libvorbis/ltmain.sh +6871 -0
- data/dependencies/libvorbis/macos/compat/strdup.c +21 -0
- data/dependencies/libvorbis/macos/compat/sys/types.h +1 -0
- data/dependencies/libvorbis/macos/decoder_example.mcp +0 -0
- data/dependencies/libvorbis/macos/encoder_example.mcp +0 -0
- data/dependencies/libvorbis/macos/libvorbis.mcp +0 -0
- data/dependencies/libvorbis/macos/libvorbis.mcp.exp +45 -0
- data/dependencies/libvorbis/macos/libvorbisenc.mcp +0 -0
- data/dependencies/libvorbis/macos/libvorbisenc.mcp.exp +8 -0
- data/dependencies/libvorbis/macos/libvorbisfile.mcp +0 -0
- data/dependencies/libvorbis/macos/libvorbisfile.mcp.exp +45 -0
- data/dependencies/libvorbis/macos/vorbis.mcp +0 -0
- data/dependencies/libvorbis/macosx/English.lproj/InfoPlist.strings +0 -0
- data/dependencies/libvorbis/macosx/Info.plist +30 -0
- data/dependencies/libvorbis/macosx/Vorbis.xcodeproj/project.pbxproj +893 -0
- data/dependencies/libvorbis/missing +367 -0
- data/dependencies/libvorbis/symbian/bld.inf +35 -0
- data/dependencies/libvorbis/symbian/config.h +54 -0
- data/dependencies/libvorbis/symbian/vorbis.mmp +43 -0
- data/dependencies/libvorbis/todo.txt +22 -0
- data/dependencies/libvorbis/vorbis-uninstalled.pc.in +14 -0
- data/dependencies/libvorbis/vorbis.m4 +122 -0
- data/dependencies/libvorbis/vorbis.pc.in +14 -0
- data/dependencies/libvorbis/vorbisenc-uninstalled.pc.in +14 -0
- data/dependencies/libvorbis/vorbisenc.pc.in +14 -0
- data/dependencies/libvorbis/vorbisfile-uninstalled.pc.in +14 -0
- data/dependencies/libvorbis/vorbisfile.pc.in +14 -0
- data/dependencies/libvorbis/vq/16.vqs +77 -0
- data/dependencies/libvorbis/vq/16u.vqs +71 -0
- data/dependencies/libvorbis/vq/44c-1.vqs +63 -0
- data/dependencies/libvorbis/vq/44c0.vqs +65 -0
- data/dependencies/libvorbis/vq/44c1.vqs +66 -0
- data/dependencies/libvorbis/vq/44c2.vqs +37 -0
- data/dependencies/libvorbis/vq/44c3.vqs +36 -0
- data/dependencies/libvorbis/vq/44c4.vqs +36 -0
- data/dependencies/libvorbis/vq/44c5.vqs +37 -0
- data/dependencies/libvorbis/vq/44c6.vqs +37 -0
- data/dependencies/libvorbis/vq/44c7.vqs +38 -0
- data/dependencies/libvorbis/vq/44c8.vqs +39 -0
- data/dependencies/libvorbis/vq/44c9.vqs +37 -0
- data/dependencies/libvorbis/vq/44u0.vqs +33 -0
- data/dependencies/libvorbis/vq/44u1.vqs +33 -0
- data/dependencies/libvorbis/vq/44u2.vqs +32 -0
- data/dependencies/libvorbis/vq/44u3.vqs +33 -0
- data/dependencies/libvorbis/vq/44u4.vqs +33 -0
- data/dependencies/libvorbis/vq/44u5.vqs +35 -0
- data/dependencies/libvorbis/vq/44u6.vqs +35 -0
- data/dependencies/libvorbis/vq/44u7.vqs +34 -0
- data/dependencies/libvorbis/vq/44u8.vqs +35 -0
- data/dependencies/libvorbis/vq/44u9.vqs +36 -0
- data/dependencies/libvorbis/vq/8.vqs +43 -0
- data/dependencies/libvorbis/vq/8u.vqs +41 -0
- data/dependencies/libvorbis/vq/Makefile +532 -0
- data/dependencies/libvorbis/vq/Makefile.am +34 -0
- data/dependencies/libvorbis/vq/Makefile.in +532 -0
- data/dependencies/libvorbis/vq/auxpartition.pl +71 -0
- data/dependencies/libvorbis/vq/bookutil.c +717 -0
- data/dependencies/libvorbis/vq/bookutil.h +43 -0
- data/dependencies/libvorbis/vq/build.c +195 -0
- data/dependencies/libvorbis/vq/cascade.c +91 -0
- data/dependencies/libvorbis/vq/distribution.c +248 -0
- data/dependencies/libvorbis/vq/floor_11.vqs +10 -0
- data/dependencies/libvorbis/vq/floor_22.vqs +27 -0
- data/dependencies/libvorbis/vq/floor_44.vqs +83 -0
- data/dependencies/libvorbis/vq/genericdata.c +61 -0
- data/dependencies/libvorbis/vq/huffbuild.c +201 -0
- data/dependencies/libvorbis/vq/latticebuild.c +177 -0
- data/dependencies/libvorbis/vq/latticehint.c +430 -0
- data/dependencies/libvorbis/vq/latticepare.c +595 -0
- data/dependencies/libvorbis/vq/latticetune.c +164 -0
- data/dependencies/libvorbis/vq/localcodebook.h +160 -0
- data/dependencies/libvorbis/vq/lspdata.c +157 -0
- data/dependencies/libvorbis/vq/make_floor_books.pl +108 -0
- data/dependencies/libvorbis/vq/make_residue_books.pl +187 -0
- data/dependencies/libvorbis/vq/metrics.c +295 -0
- data/dependencies/libvorbis/vq/residue_entropy +58 -0
- data/dependencies/libvorbis/vq/residuedata.c +160 -0
- data/dependencies/libvorbis/vq/residuesplit.c +282 -0
- data/dependencies/libvorbis/vq/run.c +216 -0
- data/dependencies/libvorbis/vq/train.c +364 -0
- data/dependencies/libvorbis/vq/vqext.h +34 -0
- data/dependencies/libvorbis/vq/vqgen.c +567 -0
- data/dependencies/libvorbis/vq/vqgen.h +85 -0
- data/dependencies/libvorbis/vq/vqsplit.c +612 -0
- data/dependencies/libvorbis/vq/vqsplit.h +37 -0
- data/dependencies/libvorbis/win32/VS2003/libvorbis/libvorbis.vcproj +467 -0
- data/dependencies/libvorbis/win32/VS2003/libvorbisfile/libvorbisfile.def +47 -0
- data/dependencies/libvorbis/win32/VS2003/libvorbisfile/libvorbisfile.vcproj +147 -0
- data/dependencies/libvorbis/win32/VS2003/vorbisdec/vorbisdec.vcproj +268 -0
- data/dependencies/libvorbis/win32/VS2003/vorbisenc/vorbisenc.vcproj +268 -0
- data/dependencies/libvorbis/win32/VS2005/libvorbis/libvorbis.vcproj +653 -0
- data/dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile.def +47 -0
- data/dependencies/libvorbis/win32/VS2005/libvorbisfile/libvorbisfile.vcproj +219 -0
- data/dependencies/libvorbis/win32/VS2005/vorbisdec/vorbisdec.vcproj +389 -0
- data/dependencies/libvorbis/win32/VS2005/vorbisenc/vorbisenc.vcproj +390 -0
- data/dependencies/libvorbis/win32/build_vorbis_dynamic.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbis_dynamic_debug.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbis_static.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbis_static_debug.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisenc_dynamic.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisenc_dynamic_debug.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisenc_static.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisenc_static_debug.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisfile_dynamic.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisfile_dynamic_debug.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisfile_static.bat +19 -0
- data/dependencies/libvorbis/win32/build_vorbisfile_static_debug.bat +19 -0
- data/dependencies/libvorbis/win32/vorbis.def +57 -0
- data/dependencies/libvorbis/win32/vorbis.dsw +101 -0
- data/dependencies/libvorbis/win32/vorbis_dynamic.dsp +281 -0
- data/dependencies/libvorbis/win32/vorbis_static.dsp +257 -0
- data/dependencies/libvorbis/win32/vorbisenc.def +13 -0
- data/dependencies/libvorbis/win32/vorbisenc_dynamic.dsp +121 -0
- data/dependencies/libvorbis/win32/vorbisenc_static.dsp +100 -0
- data/dependencies/libvorbis/win32/vorbisfile.def +41 -0
- data/dependencies/libvorbis/win32/vorbisfile_dynamic.dsp +119 -0
- data/dependencies/libvorbis/win32/vorbisfile_static.dsp +100 -0
- data/dependencies/zlib/ChangeLog +855 -0
- data/dependencies/zlib/FAQ +339 -0
- data/dependencies/zlib/INDEX +51 -0
- data/dependencies/zlib/Makefile +154 -0
- data/dependencies/zlib/Makefile.in +154 -0
- data/dependencies/zlib/README +125 -0
- data/dependencies/zlib/adler32.c +149 -0
- data/dependencies/zlib/algorithm.txt +209 -0
- data/dependencies/zlib/amiga/Makefile.pup +66 -0
- data/dependencies/zlib/amiga/Makefile.sas +65 -0
- data/dependencies/zlib/as400/bndsrc +132 -0
- data/dependencies/zlib/as400/compile.clp +123 -0
- data/dependencies/zlib/as400/readme.txt +111 -0
- data/dependencies/zlib/as400/zlib.inc +331 -0
- data/dependencies/zlib/compress.c +79 -0
- data/dependencies/zlib/configure +459 -0
- data/dependencies/zlib/contrib/README.contrib +71 -0
- data/dependencies/zlib/contrib/ada/buffer_demo.adb +106 -0
- data/dependencies/zlib/contrib/ada/mtest.adb +156 -0
- data/dependencies/zlib/contrib/ada/read.adb +156 -0
- data/dependencies/zlib/contrib/ada/readme.txt +65 -0
- data/dependencies/zlib/contrib/ada/test.adb +463 -0
- data/dependencies/zlib/contrib/ada/zlib-streams.adb +225 -0
- data/dependencies/zlib/contrib/ada/zlib-streams.ads +114 -0
- data/dependencies/zlib/contrib/ada/zlib-thin.adb +141 -0
- data/dependencies/zlib/contrib/ada/zlib-thin.ads +450 -0
- data/dependencies/zlib/contrib/ada/zlib.adb +701 -0
- data/dependencies/zlib/contrib/ada/zlib.ads +328 -0
- data/dependencies/zlib/contrib/ada/zlib.gpr +20 -0
- data/dependencies/zlib/contrib/asm586/README.586 +43 -0
- data/dependencies/zlib/contrib/asm586/match.S +364 -0
- data/dependencies/zlib/contrib/asm686/README.686 +34 -0
- data/dependencies/zlib/contrib/asm686/match.S +329 -0
- data/dependencies/zlib/contrib/blast/Makefile +8 -0
- data/dependencies/zlib/contrib/blast/README +4 -0
- data/dependencies/zlib/contrib/blast/blast.c +444 -0
- data/dependencies/zlib/contrib/blast/blast.h +71 -0
- data/dependencies/zlib/contrib/blast/test.pk +0 -0
- data/dependencies/zlib/contrib/blast/test.txt +1 -0
- data/dependencies/zlib/contrib/delphi/ZLib.pas +557 -0
- data/dependencies/zlib/contrib/delphi/ZLibConst.pas +11 -0
- data/dependencies/zlib/contrib/delphi/readme.txt +76 -0
- data/dependencies/zlib/contrib/delphi/zlibd32.mak +93 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib.build +33 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib.chm +0 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib.sln +21 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
- data/dependencies/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
- data/dependencies/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- data/dependencies/zlib/contrib/dotzlib/readme.txt +58 -0
- data/dependencies/zlib/contrib/infback9/README +1 -0
- data/dependencies/zlib/contrib/infback9/infback9.c +608 -0
- data/dependencies/zlib/contrib/infback9/infback9.h +37 -0
- data/dependencies/zlib/contrib/infback9/inffix9.h +107 -0
- data/dependencies/zlib/contrib/infback9/inflate9.h +47 -0
- data/dependencies/zlib/contrib/infback9/inftree9.c +323 -0
- data/dependencies/zlib/contrib/infback9/inftree9.h +55 -0
- data/dependencies/zlib/contrib/inflate86/inffas86.c +1157 -0
- data/dependencies/zlib/contrib/inflate86/inffast.S +1368 -0
- data/dependencies/zlib/contrib/iostream/test.cpp +24 -0
- data/dependencies/zlib/contrib/iostream/zfstream.cpp +329 -0
- data/dependencies/zlib/contrib/iostream/zfstream.h +128 -0
- data/dependencies/zlib/contrib/iostream2/zstream.h +307 -0
- data/dependencies/zlib/contrib/iostream2/zstream_test.cpp +25 -0
- data/dependencies/zlib/contrib/iostream3/README +35 -0
- data/dependencies/zlib/contrib/iostream3/TODO +17 -0
- data/dependencies/zlib/contrib/iostream3/test.cc +50 -0
- data/dependencies/zlib/contrib/iostream3/zfstream.cc +479 -0
- data/dependencies/zlib/contrib/iostream3/zfstream.h +466 -0
- data/dependencies/zlib/contrib/masm686/match.asm +413 -0
- data/dependencies/zlib/contrib/masmx64/bld_ml64.bat +2 -0
- data/dependencies/zlib/contrib/masmx64/gvmat64.asm +513 -0
- data/dependencies/zlib/contrib/masmx64/gvmat64.obj +0 -0
- data/dependencies/zlib/contrib/masmx64/inffas8664.c +186 -0
- data/dependencies/zlib/contrib/masmx64/inffasx64.asm +392 -0
- data/dependencies/zlib/contrib/masmx64/inffasx64.obj +0 -0
- data/dependencies/zlib/contrib/masmx64/readme.txt +28 -0
- data/dependencies/zlib/contrib/masmx86/bld_ml32.bat +2 -0
- data/dependencies/zlib/contrib/masmx86/gvmat32.asm +972 -0
- data/dependencies/zlib/contrib/masmx86/gvmat32.obj +0 -0
- data/dependencies/zlib/contrib/masmx86/gvmat32c.c +62 -0
- data/dependencies/zlib/contrib/masmx86/inffas32.asm +1083 -0
- data/dependencies/zlib/contrib/masmx86/inffas32.obj +0 -0
- data/dependencies/zlib/contrib/masmx86/mkasm.bat +3 -0
- data/dependencies/zlib/contrib/masmx86/readme.txt +21 -0
- data/dependencies/zlib/contrib/minizip/ChangeLogUnzip +67 -0
- data/dependencies/zlib/contrib/minizip/Makefile +25 -0
- data/dependencies/zlib/contrib/minizip/crypt.h +132 -0
- data/dependencies/zlib/contrib/minizip/ioapi.c +177 -0
- data/dependencies/zlib/contrib/minizip/ioapi.h +75 -0
- data/dependencies/zlib/contrib/minizip/iowin32.c +270 -0
- data/dependencies/zlib/contrib/minizip/iowin32.h +21 -0
- data/dependencies/zlib/contrib/minizip/miniunz.c +585 -0
- data/dependencies/zlib/contrib/minizip/minizip.c +420 -0
- data/dependencies/zlib/contrib/minizip/mztools.c +281 -0
- data/dependencies/zlib/contrib/minizip/mztools.h +31 -0
- data/dependencies/zlib/contrib/minizip/unzip.c +1598 -0
- data/dependencies/zlib/contrib/minizip/unzip.h +354 -0
- data/dependencies/zlib/contrib/minizip/zip.c +1219 -0
- data/dependencies/zlib/contrib/minizip/zip.h +235 -0
- data/dependencies/zlib/contrib/pascal/example.pas +599 -0
- data/dependencies/zlib/contrib/pascal/readme.txt +76 -0
- data/dependencies/zlib/contrib/pascal/zlibd32.mak +93 -0
- data/dependencies/zlib/contrib/pascal/zlibpas.pas +236 -0
- data/dependencies/zlib/contrib/puff/Makefile +8 -0
- data/dependencies/zlib/contrib/puff/README +63 -0
- data/dependencies/zlib/contrib/puff/puff.c +837 -0
- data/dependencies/zlib/contrib/puff/puff.h +31 -0
- data/dependencies/zlib/contrib/puff/zeros.raw +0 -0
- data/dependencies/zlib/contrib/testzlib/testzlib.c +275 -0
- data/dependencies/zlib/contrib/testzlib/testzlib.txt +10 -0
- data/dependencies/zlib/contrib/untgz/Makefile +14 -0
- data/dependencies/zlib/contrib/untgz/Makefile.msc +17 -0
- data/dependencies/zlib/contrib/untgz/untgz.c +674 -0
- data/dependencies/zlib/contrib/vstudio/readme.txt +73 -0
- data/dependencies/zlib/contrib/vstudio/vc7/miniunz.vcproj +126 -0
- data/dependencies/zlib/contrib/vstudio/vc7/minizip.vcproj +126 -0
- data/dependencies/zlib/contrib/vstudio/vc7/testzlib.vcproj +126 -0
- data/dependencies/zlib/contrib/vstudio/vc7/zlib.rc +32 -0
- data/dependencies/zlib/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
- data/dependencies/zlib/contrib/vstudio/vc7/zlibvc.def +92 -0
- data/dependencies/zlib/contrib/vstudio/vc7/zlibvc.sln +78 -0
- data/dependencies/zlib/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
- data/dependencies/zlib/contrib/vstudio/vc8/miniunz.vcproj +566 -0
- data/dependencies/zlib/contrib/vstudio/vc8/minizip.vcproj +563 -0
- data/dependencies/zlib/contrib/vstudio/vc8/testzlib.vcproj +948 -0
- data/dependencies/zlib/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
- data/dependencies/zlib/contrib/vstudio/vc8/zlib.rc +32 -0
- data/dependencies/zlib/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
- data/dependencies/zlib/contrib/vstudio/vc8/zlibvc.def +92 -0
- data/dependencies/zlib/contrib/vstudio/vc8/zlibvc.sln +144 -0
- data/dependencies/zlib/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
- data/dependencies/zlib/crc32.c +423 -0
- data/dependencies/zlib/crc32.h +441 -0
- data/dependencies/zlib/deflate.c +1736 -0
- data/dependencies/zlib/deflate.h +331 -0
- data/dependencies/zlib/example.c +565 -0
- data/dependencies/zlib/examples/README.examples +42 -0
- data/dependencies/zlib/examples/fitblk.c +233 -0
- data/dependencies/zlib/examples/gun.c +693 -0
- data/dependencies/zlib/examples/gzappend.c +500 -0
- data/dependencies/zlib/examples/gzjoin.c +448 -0
- data/dependencies/zlib/examples/gzlog.c +413 -0
- data/dependencies/zlib/examples/gzlog.h +58 -0
- data/dependencies/zlib/examples/zlib_how.html +523 -0
- data/dependencies/zlib/examples/zpipe.c +191 -0
- data/dependencies/zlib/examples/zran.c +404 -0
- data/dependencies/zlib/gzio.c +1026 -0
- data/dependencies/zlib/infback.c +623 -0
- data/dependencies/zlib/inffast.c +318 -0
- data/dependencies/zlib/inffast.h +11 -0
- data/dependencies/zlib/inffixed.h +94 -0
- data/dependencies/zlib/inflate.c +1368 -0
- data/dependencies/zlib/inflate.h +115 -0
- data/dependencies/zlib/inftrees.c +329 -0
- data/dependencies/zlib/inftrees.h +55 -0
- data/dependencies/zlib/make_vms.com +461 -0
- data/dependencies/zlib/minigzip.c +322 -0
- data/dependencies/zlib/msdos/Makefile.bor +109 -0
- data/dependencies/zlib/msdos/Makefile.dj2 +104 -0
- data/dependencies/zlib/msdos/Makefile.emx +69 -0
- data/dependencies/zlib/msdos/Makefile.msc +106 -0
- data/dependencies/zlib/msdos/Makefile.tc +94 -0
- data/dependencies/zlib/old/Makefile.riscos +151 -0
- data/dependencies/zlib/old/README +3 -0
- data/dependencies/zlib/old/descrip.mms +48 -0
- data/dependencies/zlib/old/os2/Makefile.os2 +136 -0
- data/dependencies/zlib/old/os2/zlib.def +51 -0
- data/dependencies/zlib/old/visual-basic.txt +160 -0
- data/dependencies/zlib/old/zlib.html +971 -0
- data/dependencies/zlib/projects/README.projects +41 -0
- data/dependencies/zlib/projects/visualc6/README.txt +73 -0
- data/dependencies/zlib/projects/visualc6/example.dsp +278 -0
- data/dependencies/zlib/projects/visualc6/minigzip.dsp +278 -0
- data/dependencies/zlib/projects/visualc6/zlib.dsp +609 -0
- data/dependencies/zlib/projects/visualc6/zlib.dsw +59 -0
- data/dependencies/zlib/qnx/package.qpg +141 -0
- data/dependencies/zlib/trees.c +1219 -0
- data/dependencies/zlib/trees.h +128 -0
- data/dependencies/zlib/uncompr.c +61 -0
- data/dependencies/zlib/win32/DLL_FAQ.txt +397 -0
- data/dependencies/zlib/win32/Makefile.bor +107 -0
- data/dependencies/zlib/win32/Makefile.emx +69 -0
- data/dependencies/zlib/win32/Makefile.gcc +141 -0
- data/dependencies/zlib/win32/Makefile.msc +126 -0
- data/dependencies/zlib/win32/VisualC.txt +3 -0
- data/dependencies/zlib/win32/zlib.def +60 -0
- data/dependencies/zlib/win32/zlib1.rc +39 -0
- data/dependencies/zlib/zconf.h +332 -0
- data/dependencies/zlib/zconf.in.h +332 -0
- data/dependencies/zlib/zlib.3 +159 -0
- data/dependencies/zlib/zlib.h +1357 -0
- data/dependencies/zlib/zutil.c +318 -0
- data/dependencies/zlib/zutil.h +269 -0
- data/examples/ChipmunkIntegration.rb +7 -7
- data/examples/CptnRuby.rb +5 -5
- data/examples/OpenGLIntegration.rb +6 -6
- data/examples/RMagickIntegration.rb +1 -1
- data/examples/TextInput.cpp +23 -1
- data/examples/TextInput.rb +7 -1
- data/examples/Tutorial.cpp +2 -2
- data/examples/Tutorial.rb +5 -5
- data/lib/gosu/patches.rb +53 -0
- data/linux/Makefile.in +3 -2
- data/mac/Gosu.xcodeproj/jlnr.pbxuser +461 -349
- data/mac/Gosu.xcodeproj/jlnr.perspectivev3 +82 -50
- data/mac/Gosu.xcodeproj/project.pbxproj +503 -0
- data/reference/cpp/_audio_8hpp.html +0 -3
- data/reference/cpp/_audio_8hpp_source.html +95 -103
- data/reference/cpp/_bitmap_8hpp_source.html +1 -1
- data/reference/cpp/_color_8hpp.html +2 -3
- data/reference/cpp/_color_8hpp_source.html +54 -38
- data/reference/cpp/_font_8hpp_source.html +6 -6
- data/reference/cpp/_graphics_8hpp_source.html +55 -49
- data/reference/cpp/_image_8hpp_source.html +7 -7
- data/reference/cpp/_text_input_8hpp_source.html +11 -6
- data/reference/cpp/_version_8hpp.html +4 -4
- data/reference/cpp/_version_8hpp_source.html +2 -2
- data/reference/cpp/_window_8hpp_source.html +37 -36
- data/reference/cpp/annotated.html +0 -1
- data/reference/cpp/class_gosu_1_1_bitmap-members.html +1 -1
- data/reference/cpp/class_gosu_1_1_bitmap.html +3 -3
- data/reference/cpp/class_gosu_1_1_color-members.html +11 -0
- data/reference/cpp/class_gosu_1_1_color.html +212 -1
- data/reference/cpp/class_gosu_1_1_font-members.html +3 -3
- data/reference/cpp/class_gosu_1_1_font.html +12 -12
- data/reference/cpp/class_gosu_1_1_graphics-members.html +1 -1
- data/reference/cpp/class_gosu_1_1_graphics.html +5 -5
- data/reference/cpp/class_gosu_1_1_image-members.html +3 -3
- data/reference/cpp/class_gosu_1_1_image.html +13 -13
- data/reference/cpp/class_gosu_1_1_sample-members.html +2 -0
- data/reference/cpp/class_gosu_1_1_sample.html +70 -26
- data/reference/cpp/class_gosu_1_1_sample_instance.html +1 -1
- data/reference/cpp/class_gosu_1_1_song-members.html +3 -0
- data/reference/cpp/class_gosu_1_1_song.html +103 -26
- data/reference/cpp/class_gosu_1_1_text_input-members.html +2 -1
- data/reference/cpp/class_gosu_1_1_text_input.html +31 -4
- data/reference/cpp/class_gosu_1_1_window.html +6 -6
- data/reference/cpp/classes.html +12 -13
- data/reference/cpp/functions.html +3 -3
- data/reference/cpp/functions_0x62.html +7 -3
- data/reference/cpp/functions_0x63.html +4 -2
- data/reference/cpp/functions_0x64.html +6 -6
- data/reference/cpp/functions_0x66.html +4 -0
- data/reference/cpp/functions_0x67.html +4 -0
- data/reference/cpp/functions_0x6e.html +2 -0
- data/reference/cpp/functions_0x72.html +4 -2
- data/reference/cpp/functions_0x73.html +6 -6
- data/reference/cpp/functions_0x75.html +1 -1
- data/reference/cpp/functions_0x77.html +5 -3
- data/reference/cpp/functions_0x79.html +2 -0
- data/reference/cpp/functions_0x7e.html +1 -3
- data/reference/cpp/functions_func.html +0 -2
- data/reference/cpp/functions_func_0x62.html +1 -1
- data/reference/cpp/functions_func_0x64.html +6 -6
- data/reference/cpp/functions_func_0x66.html +2 -0
- data/reference/cpp/functions_func_0x72.html +1 -1
- data/reference/cpp/functions_func_0x73.html +8 -8
- data/reference/cpp/functions_func_0x75.html +1 -1
- data/reference/cpp/functions_func_0x7e.html +1 -3
- data/reference/cpp/functions_vars.html +22 -0
- data/reference/cpp/hierarchy.html +0 -1
- data/reference/cpp/namespace_gosu.html +2 -8
- data/reference/cpp/namespace_gosu_1_1_colors.html +30 -17
- data/reference/cpp/namespacemembers.html +2 -0
- data/reference/cpp/namespacemembers_vars.html +2 -0
- data/reference/cpp/namespaces.html +1 -1
- data/reference/rdoc/classes/Gosu.html +23 -3
- data/reference/rdoc/classes/Gosu/Color.html +127 -29
- data/reference/rdoc/classes/Gosu/Font.html +31 -21
- data/reference/rdoc/classes/Gosu/GLTexInfo.html +3 -3
- data/reference/rdoc/classes/Gosu/Image.html +52 -37
- data/reference/rdoc/classes/Gosu/Sample.html +19 -13
- data/reference/rdoc/classes/Gosu/SampleInstance.html +29 -19
- data/reference/rdoc/classes/Gosu/Song.html +41 -27
- data/reference/rdoc/classes/Gosu/TextInput.html +42 -3
- data/reference/rdoc/classes/Gosu/Window.html +102 -69
- data/reference/rdoc/classes/Numeric.html +7 -3
- data/reference/rdoc/created.rid +1 -1
- data/reference/rdoc/files/COPYING_txt.html +3 -3
- data/reference/rdoc/files/README_txt.html +3 -3
- data/reference/rdoc/files/reference/Deployment on OS X_rdoc.html +4 -19
- data/reference/rdoc/files/reference/Deployment on Windows_rdoc.html +18 -31
- data/reference/rdoc/files/reference/Drawing with Colors_rdoc.html +3 -3
- data/reference/rdoc/files/reference/Order of Corners_rdoc.html +3 -3
- data/reference/rdoc/files/reference/Tileability_rdoc.html +3 -3
- data/reference/rdoc/files/reference/Z Ordering_rdoc.html +3 -3
- data/reference/rdoc/files/reference/gosu_rb.html +3 -3
- data/reference/rdoc/fr_method_index.html +49 -48
- data/reference/rdoc/index.html +1 -1
- metadata +912 -66
- data/reference/rdoc/classes/Gosu.src/M000003.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000004.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000005.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000006.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000007.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000008.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000009.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000010.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000011.html +0 -0
- data/reference/rdoc/classes/Gosu.src/M000012.html +0 -0
- data/reference/rdoc/classes/Gosu/Color.src/M000016.html +0 -0
- data/reference/rdoc/classes/Gosu/Color.src/M000017.html +0 -0
- data/reference/rdoc/classes/Gosu/Color.src/M000018.html +0 -0
- data/reference/rdoc/classes/Gosu/Color.src/M000019.html +0 -0
- data/reference/rdoc/classes/Gosu/Font.src/M000029.html +0 -0
- data/reference/rdoc/classes/Gosu/Font.src/M000030.html +0 -0
- data/reference/rdoc/classes/Gosu/Font.src/M000031.html +0 -0
- data/reference/rdoc/classes/Gosu/Font.src/M000032.html +0 -0
- data/reference/rdoc/classes/Gosu/Font.src/M000033.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000020.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000021.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000022.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000023.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000024.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000025.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000026.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000027.html +0 -0
- data/reference/rdoc/classes/Gosu/Image.src/M000028.html +0 -0
- data/reference/rdoc/classes/Gosu/Sample.src/M000013.html +0 -0
- data/reference/rdoc/classes/Gosu/Sample.src/M000014.html +0 -0
- data/reference/rdoc/classes/Gosu/Sample.src/M000015.html +0 -0
- data/reference/rdoc/classes/Gosu/SampleInstance.src/M000051.html +0 -0
- data/reference/rdoc/classes/Gosu/SampleInstance.src/M000052.html +0 -0
- data/reference/rdoc/classes/Gosu/SampleInstance.src/M000053.html +0 -0
- data/reference/rdoc/classes/Gosu/SampleInstance.src/M000054.html +0 -0
- data/reference/rdoc/classes/Gosu/SampleInstance.src/M000055.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000056.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000057.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000058.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000059.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000060.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000061.html +0 -0
- data/reference/rdoc/classes/Gosu/Song.src/M000062.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000034.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000035.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000036.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000037.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000038.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000039.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000040.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000041.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000042.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000043.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000044.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000045.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000046.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000047.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000048.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000049.html +0 -0
- data/reference/rdoc/classes/Gosu/Window.src/M000050.html +0 -0
- data/reference/rdoc/classes/Numeric.src/M000001.html +0 -0
- data/reference/rdoc/classes/Numeric.src/M000002.html +0 -0
@@ -0,0 +1,7 @@
|
|
1
|
+
BODY { font-family: Helvetica, sans-serif }
|
2
|
+
TD { font-family: Helvetica, sans-serif }
|
3
|
+
P { font-family: Helvetica, sans-serif }
|
4
|
+
H1 { font-family: Helvetica, sans-serif }
|
5
|
+
H2 { font-family: Helvetica, sans-serif }
|
6
|
+
H4 { font-family: Helvetica, sans-serif }
|
7
|
+
P.tiny { font-size: 8pt }
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<title>Vorbisfile - Thread Safety</title>
|
5
|
+
<link rel=stylesheet href="style.css" type="text/css">
|
6
|
+
</head>
|
7
|
+
|
8
|
+
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
9
|
+
<table border=0 width=100%>
|
10
|
+
<tr>
|
11
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
12
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|
15
|
+
|
16
|
+
<h1>Thread Safety</h1>
|
17
|
+
|
18
|
+
Vorbisfile's libvorbisfile may be used safely in a threading environment
|
19
|
+
so long as thread access to individual <a
|
20
|
+
href="OggVorbis_File.html">OggVorbis_File</a> instances is serialized.
|
21
|
+
<ul>
|
22
|
+
|
23
|
+
<li>Only one thread at a time may enter a function that takes a given <a
|
24
|
+
href="OggVorbis_File.html">OggVorbis_File</a> instance, even if the
|
25
|
+
functions involved appear to be read-only.<p>
|
26
|
+
|
27
|
+
<li>Multiple threads may enter
|
28
|
+
libvorbisfile at a given time, so long as each thread's function calls
|
29
|
+
are using different <a href="OggVorbis_File.html">OggVorbis_File</a>
|
30
|
+
instances. <p>
|
31
|
+
|
32
|
+
<li>Any one <a
|
33
|
+
href="OggVorbis_File.html">OggVorbis_File</a> instance may be used safely from multiple threads so long as only one thread at a time is making calls using that instance.<p>
|
34
|
+
</ul>
|
35
|
+
|
36
|
+
<br><br>
|
37
|
+
<hr noshade>
|
38
|
+
<table border=0 width=100%>
|
39
|
+
<tr valign=top>
|
40
|
+
<td><p class=tiny>copyright © 2007 Xiph.org</p></td>
|
41
|
+
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
42
|
+
</tr><tr>
|
43
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
44
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
45
|
+
</tr>
|
46
|
+
</table>
|
47
|
+
|
48
|
+
</body>
|
49
|
+
|
50
|
+
</html>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<title>Vorbisfile - datatype - vorbis_comment</title>
|
5
|
+
<link rel=stylesheet href="style.css" type="text/css">
|
6
|
+
</head>
|
7
|
+
|
8
|
+
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
9
|
+
<table border=0 width=100%>
|
10
|
+
<tr>
|
11
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
12
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|
15
|
+
|
16
|
+
<h1>vorbis_comment</h1>
|
17
|
+
|
18
|
+
<p><i>declared in "vorbis/codec.h"</i></p>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
The vorbis_comment structure defines an Ogg Vorbis comment.
|
22
|
+
<p>
|
23
|
+
Only the fields the program needs must be defined. If a field isn't
|
24
|
+
defined by the application, it will either be blank (if it's a string value)
|
25
|
+
or set to some reasonable default (usually 0).
|
26
|
+
<p>
|
27
|
+
|
28
|
+
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
29
|
+
<tr bgcolor=#cccccc>
|
30
|
+
<td>
|
31
|
+
<pre><b>typedef struct vorbis_comment{
|
32
|
+
/* unlimited user comment fields. */
|
33
|
+
char **user_comments;
|
34
|
+
int *comment_lengths;
|
35
|
+
int comments;
|
36
|
+
char *vendor;
|
37
|
+
|
38
|
+
} vorbis_comment;</b></pre>
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
</table>
|
42
|
+
|
43
|
+
<h3>Parameters</h3>
|
44
|
+
<dl>
|
45
|
+
<dt><i>user_comments</i></dt>
|
46
|
+
<dd>Unlimited user comment array. The individual strings in the array are 8 bit clean, by the Vorbis specification, and as such the <tt>comment_lengths</tt> array should be consulted to determine string length. For convenience, each string is also NULL-terminated by the decode library (although Vorbis comments are not NULL terminated within the bitstream itself).</dd>
|
47
|
+
<dt><i>comment_lengths</i></dt>
|
48
|
+
<dd>An int array that stores the length of each comment string</dd>
|
49
|
+
<dt><i>comments</i></dt>
|
50
|
+
<dd>Int signifying number of user comments in user_comments field.</dd>
|
51
|
+
<dt><i>vendor</i></dt>
|
52
|
+
<dd>Information about the creator of the file. Stored in a standard C 0-terminated string.</dd>
|
53
|
+
</dl>
|
54
|
+
|
55
|
+
|
56
|
+
<br><br>
|
57
|
+
<hr noshade>
|
58
|
+
<table border=0 width=100%>
|
59
|
+
<tr valign=top>
|
60
|
+
<td><p class=tiny>copyright © 2007 Xiph.org</p></td>
|
61
|
+
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
62
|
+
</tr><tr>
|
63
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
64
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
65
|
+
</tr>
|
66
|
+
</table>
|
67
|
+
|
68
|
+
</body>
|
69
|
+
|
70
|
+
</html>
|
@@ -0,0 +1,80 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<title>Vorbisfile - datatype - vorbis_info</title>
|
5
|
+
<link rel=stylesheet href="style.css" type="text/css">
|
6
|
+
</head>
|
7
|
+
|
8
|
+
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
9
|
+
<table border=0 width=100%>
|
10
|
+
<tr>
|
11
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
12
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|
15
|
+
|
16
|
+
<h1>vorbis_info</h1>
|
17
|
+
|
18
|
+
<p><i>declared in "vorbis/codec.h"</i></p>
|
19
|
+
|
20
|
+
<p>
|
21
|
+
The vorbis_info structure contains basic information about the audio in a vorbis bitstream.
|
22
|
+
<p>
|
23
|
+
|
24
|
+
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
25
|
+
<tr bgcolor=#cccccc>
|
26
|
+
<td>
|
27
|
+
<pre><b>typedef struct vorbis_info{
|
28
|
+
int version;
|
29
|
+
int channels;
|
30
|
+
long rate;
|
31
|
+
|
32
|
+
long bitrate_upper;
|
33
|
+
long bitrate_nominal;
|
34
|
+
long bitrate_lower;
|
35
|
+
long bitrate_window;
|
36
|
+
|
37
|
+
void *codec_setup;
|
38
|
+
|
39
|
+
} vorbis_info;</b></pre>
|
40
|
+
</td>
|
41
|
+
</tr>
|
42
|
+
</table>
|
43
|
+
|
44
|
+
<h3>Relevant Struct Members</h3>
|
45
|
+
<dl>
|
46
|
+
<dt><i>version</i></dt>
|
47
|
+
<dd>Vorbis encoder version used to create this bitstream.</dd>
|
48
|
+
<dt><i>channels</i></dt>
|
49
|
+
<dd>Int signifying number of channels in bitstream.</dd>
|
50
|
+
<dt><i>rate</i></dt>
|
51
|
+
<dd>Sampling rate of the bitstream.</dd>
|
52
|
+
<dt><i>bitrate_upper</i></dt>
|
53
|
+
<dd>Specifies the upper limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_lower parameters, the stream is fixed bitrate. May be unset if no limit exists.</dd>
|
54
|
+
<dt><i>bitrate_nominal</i></dt>
|
55
|
+
<dd>Specifies the average bitrate for a VBR bitstream. May be unset. If the bitrate_upper and bitrate_lower parameters match, the stream is fixed bitrate.</dd>
|
56
|
+
<dt><i>bitrate_lower</i></dt>
|
57
|
+
<dd>Specifies the lower limit in a VBR bitstream. If the value matches the bitrate_nominal and bitrate_upper parameters, the stream is fixed bitrate. May be unset if no limit exists.</dd>
|
58
|
+
<dt><i>bitrate_window</i></dt>
|
59
|
+
<dd>Currently unset.</dd>
|
60
|
+
|
61
|
+
<dt><i>codec_setup</i></dt>
|
62
|
+
<dd>Internal structure that contains the detailed/unpacked configuration for decoding the current Vorbis bitstream.</dd>
|
63
|
+
</dl>
|
64
|
+
|
65
|
+
|
66
|
+
<br><br>
|
67
|
+
<hr noshade>
|
68
|
+
<table border=0 width=100%>
|
69
|
+
<tr valign=top>
|
70
|
+
<td><p class=tiny>copyright © 2007 Xiph.org</p></td>
|
71
|
+
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
|
72
|
+
</tr><tr>
|
73
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
74
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
75
|
+
</tr>
|
76
|
+
</table>
|
77
|
+
|
78
|
+
</body>
|
79
|
+
|
80
|
+
</html>
|
@@ -0,0 +1,106 @@
|
|
1
|
+
<html>
|
2
|
+
|
3
|
+
<head>
|
4
|
+
<title>vorbisfile - vorbisfile_example.c</title>
|
5
|
+
<link rel=stylesheet href="style.css" type="text/css">
|
6
|
+
</head>
|
7
|
+
|
8
|
+
<body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
9
|
+
<table border=0 width=100%>
|
10
|
+
<tr>
|
11
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
12
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|
15
|
+
|
16
|
+
<h1>vorbisfile_example.c</h1>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
The example program source:
|
20
|
+
|
21
|
+
<br><br>
|
22
|
+
<table border=0 width=100% color=black cellspacing=0 cellpadding=7>
|
23
|
+
<tr bgcolor=#cccccc>
|
24
|
+
<td>
|
25
|
+
<pre><b>
|
26
|
+
#include <stdio.h>
|
27
|
+
#include <stdlib.h>
|
28
|
+
#include <math.h>
|
29
|
+
#include "vorbis/codec.h"
|
30
|
+
#include "vorbis/vorbisfile.h"
|
31
|
+
|
32
|
+
#ifdef _WIN32
|
33
|
+
#include <io.h>
|
34
|
+
#include <fcntl.h>
|
35
|
+
#endif
|
36
|
+
|
37
|
+
char pcmout[4096];
|
38
|
+
|
39
|
+
int main(int argc, char **argv){
|
40
|
+
OggVorbis_File vf;
|
41
|
+
int eof=0;
|
42
|
+
int current_section;
|
43
|
+
|
44
|
+
#ifdef _WIN32
|
45
|
+
_setmode( _fileno( stdin ), _O_BINARY );
|
46
|
+
_setmode( _fileno( stdout ), _O_BINARY );
|
47
|
+
#endif
|
48
|
+
|
49
|
+
if(ov_open_callbacks(stdin, &vf, NULL, 0, OV_CALLBACKS_NOCLOSE) < 0) {
|
50
|
+
fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
|
51
|
+
exit(1);
|
52
|
+
}
|
53
|
+
|
54
|
+
{
|
55
|
+
char **ptr=ov_comment(&vf,-1)->user_comments;
|
56
|
+
vorbis_info *vi=ov_info(&vf,-1);
|
57
|
+
while(*ptr){
|
58
|
+
fprintf(stderr,"%s\n",*ptr);
|
59
|
+
++ptr;
|
60
|
+
}
|
61
|
+
fprintf(stderr,"\nBitstream is %d channel, %ldHz\n",vi->channels,vi->rate);
|
62
|
+
fprintf(stderr,"Encoded by: %s\n\n",ov_comment(&vf,-1)->vendor);
|
63
|
+
}
|
64
|
+
|
65
|
+
while(!eof){
|
66
|
+
long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,2,1,¤t_section);
|
67
|
+
if (ret == 0) {
|
68
|
+
/* EOF */
|
69
|
+
eof=1;
|
70
|
+
} else if (ret < 0) {
|
71
|
+
/* error in the stream. Not a problem, just reporting it in
|
72
|
+
case we (the app) cares. In this case, we don't. */
|
73
|
+
} else {
|
74
|
+
/* we don't bother dealing with sample rate changes, etc, but
|
75
|
+
you'll have to */
|
76
|
+
fwrite(pcmout,1,ret,stdout);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
ov_clear(&vf);
|
81
|
+
|
82
|
+
fprintf(stderr,"Done.\n");
|
83
|
+
return(0);
|
84
|
+
}
|
85
|
+
|
86
|
+
</b></pre>
|
87
|
+
</td>
|
88
|
+
</tr>
|
89
|
+
</table>
|
90
|
+
|
91
|
+
|
92
|
+
<br><br>
|
93
|
+
<hr noshade>
|
94
|
+
<table border=0 width=100%>
|
95
|
+
<tr valign=top>
|
96
|
+
<td><p class=tiny>copyright © 2007 Xiph.org</p></td>
|
97
|
+
<td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a><br><a href="mailto:team@vorbis.org">team@vorbis.org</a></p></td>
|
98
|
+
</tr><tr>
|
99
|
+
<td><p class=tiny>Vorbisfile documentation</p></td>
|
100
|
+
<td align=right><p class=tiny>vorbisfile version 1.2.0 - 20070723</p></td>
|
101
|
+
</tr>
|
102
|
+
</table>
|
103
|
+
|
104
|
+
</body>
|
105
|
+
|
106
|
+
</html>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,665 @@
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
2
|
+
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
3
|
+
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
|
4
|
+
|
5
|
+
]>
|
6
|
+
|
7
|
+
<section id="vorbis-spec-intro">
|
8
|
+
<sectioninfo>
|
9
|
+
<releaseinfo>
|
10
|
+
$Id: 01-introduction.xml 7186 2004-07-20 07:19:25Z xiphmont $
|
11
|
+
</releaseinfo>
|
12
|
+
</sectioninfo>
|
13
|
+
<title>Introduction and Description</title>
|
14
|
+
|
15
|
+
<section>
|
16
|
+
<title>Overview</title>
|
17
|
+
|
18
|
+
<para>
|
19
|
+
This document provides a high level description of the Vorbis codec's
|
20
|
+
construction. A bit-by-bit specification appears beginning in
|
21
|
+
<xref linkend="vorbis-spec-codec"/>.
|
22
|
+
The later sections assume a high-level
|
23
|
+
understanding of the Vorbis decode process, which is
|
24
|
+
provided here.</para>
|
25
|
+
|
26
|
+
<section>
|
27
|
+
<title>Application</title>
|
28
|
+
<para>
|
29
|
+
Vorbis is a general purpose perceptual audio CODEC intended to allow
|
30
|
+
maximum encoder flexibility, thus allowing it to scale competitively
|
31
|
+
over an exceptionally wide range of bitrates. At the high
|
32
|
+
quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits)
|
33
|
+
it is in the same league as MPEG-2 and MPC. Similarly, the 1.0
|
34
|
+
encoder can encode high-quality CD and DAT rate stereo at below 48kbps
|
35
|
+
without resampling to a lower rate. Vorbis is also intended for
|
36
|
+
lower and higher sample rates (from 8kHz telephony to 192kHz digital
|
37
|
+
masters) and a range of channel representations (monaural,
|
38
|
+
polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255
|
39
|
+
discrete channels).
|
40
|
+
</para>
|
41
|
+
</section>
|
42
|
+
|
43
|
+
<section>
|
44
|
+
<title>Classification</title>
|
45
|
+
<para>
|
46
|
+
Vorbis I is a forward-adaptive monolithic transform CODEC based on the
|
47
|
+
Modified Discrete Cosine Transform. The codec is structured to allow
|
48
|
+
addition of a hybrid wavelet filterbank in Vorbis II to offer better
|
49
|
+
transient response and reproduction using a transform better suited to
|
50
|
+
localized time events.
|
51
|
+
</para>
|
52
|
+
</section>
|
53
|
+
|
54
|
+
<section>
|
55
|
+
<title>Assumptions</title>
|
56
|
+
|
57
|
+
<para>
|
58
|
+
The Vorbis CODEC design assumes a complex, psychoacoustically-aware
|
59
|
+
encoder and simple, low-complexity decoder. Vorbis decode is
|
60
|
+
computationally simpler than mp3, although it does require more
|
61
|
+
working memory as Vorbis has no static probability model; the vector
|
62
|
+
codebooks used in the first stage of decoding from the bitstream are
|
63
|
+
packed in their entirety into the Vorbis bitstream headers. In
|
64
|
+
packed form, these codebooks occupy only a few kilobytes; the extent
|
65
|
+
to which they are pre-decoded into a cache is the dominant factor in
|
66
|
+
decoder memory usage.
|
67
|
+
</para>
|
68
|
+
|
69
|
+
<para>
|
70
|
+
Vorbis provides none of its own framing, synchronization or protection
|
71
|
+
against errors; it is solely a method of accepting input audio,
|
72
|
+
dividing it into individual frames and compressing these frames into
|
73
|
+
raw, unformatted 'packets'. The decoder then accepts these raw
|
74
|
+
packets in sequence, decodes them, synthesizes audio frames from
|
75
|
+
them, and reassembles the frames into a facsimile of the original
|
76
|
+
audio stream. Vorbis is a free-form variable bit rate (VBR) codec and packets have no
|
77
|
+
minimum size, maximum size, or fixed/expected size. Packets
|
78
|
+
are designed that they may be truncated (or padded) and remain
|
79
|
+
decodable; this is not to be considered an error condition and is used
|
80
|
+
extensively in bitrate management in peeling. Both the transport
|
81
|
+
mechanism and decoder must allow that a packet may be any size, or
|
82
|
+
end before or after packet decode expects.</para>
|
83
|
+
|
84
|
+
<para>
|
85
|
+
Vorbis packets are thus intended to be used with a transport mechanism
|
86
|
+
that provides free-form framing, sync, positioning and error correction
|
87
|
+
in accordance with these design assumptions, such as Ogg (for file
|
88
|
+
transport) or RTP (for network multicast). For purposes of a few
|
89
|
+
examples in this document, we will assume that Vorbis is to be
|
90
|
+
embedded in an Ogg stream specifically, although this is by no means a
|
91
|
+
requirement or fundamental assumption in the Vorbis design.</para>
|
92
|
+
|
93
|
+
<para>
|
94
|
+
The specification for embedding Vorbis into
|
95
|
+
an Ogg transport stream is in <xref linkend="vorbis-over-ogg"/>.
|
96
|
+
</para>
|
97
|
+
|
98
|
+
</section>
|
99
|
+
|
100
|
+
<section>
|
101
|
+
<title>Codec Setup and Probability Model</title>
|
102
|
+
|
103
|
+
<para>
|
104
|
+
Vorbis' heritage is as a research CODEC and its current design
|
105
|
+
reflects a desire to allow multiple decades of continuous encoder
|
106
|
+
improvement before running out of room within the codec specification.
|
107
|
+
For these reasons, configurable aspects of codec setup intentionally
|
108
|
+
lean toward the extreme of forward adaptive.</para>
|
109
|
+
|
110
|
+
<para>
|
111
|
+
The single most controversial design decision in Vorbis (and the most
|
112
|
+
unusual for a Vorbis developer to keep in mind) is that the entire
|
113
|
+
probability model of the codec, the Huffman and VQ codebooks, is
|
114
|
+
packed into the bitstream header along with extensive CODEC setup
|
115
|
+
parameters (often several hundred fields). This makes it impossible,
|
116
|
+
as it would be with MPEG audio layers, to embed a simple frame type
|
117
|
+
flag in each audio packet, or begin decode at any frame in the stream
|
118
|
+
without having previously fetched the codec setup header.
|
119
|
+
</para>
|
120
|
+
|
121
|
+
<note><para>
|
122
|
+
Vorbis <emphasis>can</emphasis> initiate decode at any arbitrary packet within a
|
123
|
+
bitstream so long as the codec has been initialized/setup with the
|
124
|
+
setup headers.</para></note>
|
125
|
+
|
126
|
+
<para>
|
127
|
+
Thus, Vorbis headers are both required for decode to begin and
|
128
|
+
relatively large as bitstream headers go. The header size is
|
129
|
+
unbounded, although for streaming a rule-of-thumb of 4kB or less is
|
130
|
+
recommended (and Xiph.Org's Vorbis encoder follows this suggestion).</para>
|
131
|
+
|
132
|
+
<para>
|
133
|
+
Our own design work indicates the primary liability of the
|
134
|
+
required header is in mindshare; it is an unusual design and thus
|
135
|
+
causes some amount of complaint among engineers as this runs against
|
136
|
+
current design trends (and also points out limitations in some
|
137
|
+
existing software/interface designs, such as Windows' ACM codec
|
138
|
+
framework). However, we find that it does not fundamentally limit
|
139
|
+
Vorbis' suitable application space.</para>
|
140
|
+
|
141
|
+
</section>
|
142
|
+
|
143
|
+
<section><title>Format Specification</title>
|
144
|
+
<para>
|
145
|
+
The Vorbis format is well-defined by its decode specification; any
|
146
|
+
encoder that produces packets that are correctly decoded by the
|
147
|
+
reference Vorbis decoder described below may be considered a proper
|
148
|
+
Vorbis encoder. A decoder must faithfully and completely implement
|
149
|
+
the specification defined below (except where noted) to be considered
|
150
|
+
a proper Vorbis decoder.</para>
|
151
|
+
</section>
|
152
|
+
|
153
|
+
<section><title>Hardware Profile</title>
|
154
|
+
<para>
|
155
|
+
Although Vorbis decode is computationally simple, it may still run
|
156
|
+
into specific limitations of an embedded design. For this reason,
|
157
|
+
embedded designs are allowed to deviate in limited ways from the
|
158
|
+
'full' decode specification yet still be certified compliant. These
|
159
|
+
optional omissions are labelled in the spec where relevant.</para>
|
160
|
+
</section>
|
161
|
+
|
162
|
+
</section>
|
163
|
+
|
164
|
+
<section>
|
165
|
+
<title>Decoder Configuration</title>
|
166
|
+
|
167
|
+
<para>
|
168
|
+
Decoder setup consists of configuration of multiple, self-contained
|
169
|
+
component abstractions that perform specific functions in the decode
|
170
|
+
pipeline. Each different component instance of a specific type is
|
171
|
+
semantically interchangeable; decoder configuration consists both of
|
172
|
+
internal component configuration, as well as arrangement of specific
|
173
|
+
instances into a decode pipeline. Componentry arrangement is roughly
|
174
|
+
as follows:</para>
|
175
|
+
|
176
|
+
<mediaobject>
|
177
|
+
<imageobject>
|
178
|
+
<imagedata fileref="components.png" format="PNG"/>
|
179
|
+
</imageobject>
|
180
|
+
<textobject>
|
181
|
+
<phrase>decoder pipeline configuration</phrase>
|
182
|
+
</textobject>
|
183
|
+
</mediaobject>
|
184
|
+
|
185
|
+
<section><title>Global Config</title>
|
186
|
+
<para>
|
187
|
+
Global codec configuration consists of a few audio related fields
|
188
|
+
(sample rate, channels), Vorbis version (always '0' in Vorbis I),
|
189
|
+
bitrate hints, and the lists of component instances. All other
|
190
|
+
configuration is in the context of specific components.</para>
|
191
|
+
</section>
|
192
|
+
|
193
|
+
<section><title>Mode</title>
|
194
|
+
|
195
|
+
<para>
|
196
|
+
Each Vorbis frame is coded according to a master 'mode'. A bitstream
|
197
|
+
may use one or many modes.</para>
|
198
|
+
|
199
|
+
<para>
|
200
|
+
The mode mechanism is used to encode a frame according to one of
|
201
|
+
multiple possible methods with the intention of choosing a method best
|
202
|
+
suited to that frame. Different modes are, e.g. how frame size
|
203
|
+
is changed from frame to frame. The mode number of a frame serves as a
|
204
|
+
top level configuration switch for all other specific aspects of frame
|
205
|
+
decode.</para>
|
206
|
+
|
207
|
+
<para>
|
208
|
+
A 'mode' configuration consists of a frame size setting, window type
|
209
|
+
(always 0, the Vorbis window, in Vorbis I), transform type (always
|
210
|
+
type 0, the MDCT, in Vorbis I) and a mapping number. The mapping
|
211
|
+
number specifies which mapping configuration instance to use for
|
212
|
+
low-level packet decode and synthesis.</para>
|
213
|
+
|
214
|
+
</section>
|
215
|
+
|
216
|
+
<section><title>Mapping</title>
|
217
|
+
|
218
|
+
<para>
|
219
|
+
A mapping contains a channel coupling description and a list of
|
220
|
+
'submaps' that bundle sets of channel vectors together for grouped
|
221
|
+
encoding and decoding. These submaps are not references to external
|
222
|
+
components; the submap list is internal and specific to a mapping.</para>
|
223
|
+
|
224
|
+
<para>
|
225
|
+
A 'submap' is a configuration/grouping that applies to a subset of
|
226
|
+
floor and residue vectors within a mapping. The submap functions as a
|
227
|
+
last layer of indirection such that specific special floor or residue
|
228
|
+
settings can be applied not only to all the vectors in a given mode,
|
229
|
+
but also specific vectors in a specific mode. Each submap specifies
|
230
|
+
the proper floor and residue instance number to use for decoding that
|
231
|
+
submap's spectral floor and spectral residue vectors.</para>
|
232
|
+
|
233
|
+
<para>
|
234
|
+
As an example:</para>
|
235
|
+
|
236
|
+
<para>
|
237
|
+
Assume a Vorbis stream that contains six channels in the standard 5.1
|
238
|
+
format. The sixth channel, as is normal in 5.1, is bass only.
|
239
|
+
Therefore it would be wasteful to encode a full-spectrum version of it
|
240
|
+
as with the other channels. The submapping mechanism can be used to
|
241
|
+
apply a full range floor and residue encoding to channels 0 through 4,
|
242
|
+
and a bass-only representation to the bass channel, thus saving space.
|
243
|
+
In this example, channels 0-4 belong to submap 0 (which indicates use
|
244
|
+
of a full-range floor) and channel 5 belongs to submap 1, which uses a
|
245
|
+
bass-only representation.</para>
|
246
|
+
|
247
|
+
</section>
|
248
|
+
|
249
|
+
<section><title>Floor</title>
|
250
|
+
|
251
|
+
<para>
|
252
|
+
Vorbis encodes a spectral 'floor' vector for each PCM channel. This
|
253
|
+
vector is a low-resolution representation of the audio spectrum for
|
254
|
+
the given channel in the current frame, generally used akin to a
|
255
|
+
whitening filter. It is named a 'floor' because the Xiph.Org
|
256
|
+
reference encoder has historically used it as a unit-baseline for
|
257
|
+
spectral resolution.</para>
|
258
|
+
|
259
|
+
<para>
|
260
|
+
A floor encoding may be of two types. Floor 0 uses a packed LSP
|
261
|
+
representation on a dB amplitude scale and Bark frequency scale.
|
262
|
+
Floor 1 represents the curve as a piecewise linear interpolated
|
263
|
+
representation on a dB amplitude scale and linear frequency scale.
|
264
|
+
The two floors are semantically interchangeable in
|
265
|
+
encoding/decoding. However, floor type 1 provides more stable
|
266
|
+
inter-frame behavior, and so is the preferred choice in all
|
267
|
+
coupled-stereo and high bitrate modes. Floor 1 is also considerably
|
268
|
+
less expensive to decode than floor 0.</para>
|
269
|
+
|
270
|
+
<para>
|
271
|
+
Floor 0 is not to be considered deprecated, but it is of limited
|
272
|
+
modern use. No known Vorbis encoder past Xiph.org's own beta 4 makes
|
273
|
+
use of floor 0.</para>
|
274
|
+
|
275
|
+
<para>
|
276
|
+
The values coded/decoded by a floor are both compactly formatted and
|
277
|
+
make use of entropy coding to save space. For this reason, a floor
|
278
|
+
configuration generally refers to multiple codebooks in the codebook
|
279
|
+
component list. Entropy coding is thus provided as an abstraction,
|
280
|
+
and each floor instance may choose from any and all available
|
281
|
+
codebooks when coding/decoding.</para>
|
282
|
+
|
283
|
+
</section>
|
284
|
+
|
285
|
+
<section><title>Residue</title>
|
286
|
+
<para>
|
287
|
+
The spectral residue is the fine structure of the audio spectrum
|
288
|
+
once the floor curve has been subtracted out. In simplest terms, it
|
289
|
+
is coded in the bitstream using cascaded (multi-pass) vector
|
290
|
+
quantization according to one of three specific packing/coding
|
291
|
+
algorithms numbered 0 through 2. The packing algorithm details are
|
292
|
+
configured by residue instance. As with the floor components, the
|
293
|
+
final VQ/entropy encoding is provided by external codebook instances
|
294
|
+
and each residue instance may choose from any and all available
|
295
|
+
codebooks.</para>
|
296
|
+
</section>
|
297
|
+
|
298
|
+
<section><title>Codebooks</title>
|
299
|
+
|
300
|
+
<para>
|
301
|
+
Codebooks are a self-contained abstraction that perform entropy
|
302
|
+
decoding and, optionally, use the entropy-decoded integer value as an
|
303
|
+
offset into an index of output value vectors, returning the indicated
|
304
|
+
vector of values.</para>
|
305
|
+
|
306
|
+
<para>
|
307
|
+
The entropy coding in a Vorbis I codebook is provided by a standard
|
308
|
+
Huffman binary tree representation. This tree is tightly packed using
|
309
|
+
one of several methods, depending on whether codeword lengths are
|
310
|
+
ordered or unordered, or the tree is sparse.</para>
|
311
|
+
|
312
|
+
<para>
|
313
|
+
The codebook vector index is similarly packed according to index
|
314
|
+
characteristic. Most commonly, the vector index is encoded as a
|
315
|
+
single list of values of possible values that are then permuted into
|
316
|
+
a list of n-dimensional rows (lattice VQ).</para>
|
317
|
+
|
318
|
+
</section>
|
319
|
+
|
320
|
+
</section>
|
321
|
+
|
322
|
+
|
323
|
+
<section>
|
324
|
+
<title>High-level Decode Process</title>
|
325
|
+
|
326
|
+
<section>
|
327
|
+
<title>Decode Setup</title>
|
328
|
+
|
329
|
+
<para>
|
330
|
+
Before decoding can begin, a decoder must initialize using the
|
331
|
+
bitstream headers matching the stream to be decoded. Vorbis uses
|
332
|
+
three header packets; all are required, in-order, by this
|
333
|
+
specification. Once set up, decode may begin at any audio packet
|
334
|
+
belonging to the Vorbis stream. In Vorbis I, all packets after the
|
335
|
+
three initial headers are audio packets. </para>
|
336
|
+
|
337
|
+
<para>
|
338
|
+
The header packets are, in order, the identification
|
339
|
+
header, the comments header, and the setup header.</para>
|
340
|
+
|
341
|
+
<section><title>Identification Header</title>
|
342
|
+
<para>
|
343
|
+
The identification header identifies the bitstream as Vorbis, Vorbis
|
344
|
+
version, and the simple audio characteristics of the stream such as
|
345
|
+
sample rate and number of channels.</para>
|
346
|
+
</section>
|
347
|
+
|
348
|
+
<section><title>Comment Header</title>
|
349
|
+
<para>
|
350
|
+
The comment header includes user text comments ("tags") and a vendor
|
351
|
+
string for the application/library that produced the bitstream. The
|
352
|
+
encoding and proper use of the comment header is described in
|
353
|
+
<xref linkend="vorbis-spec-comment"/>.</para>
|
354
|
+
</section>
|
355
|
+
|
356
|
+
<section><title>Setup Header</title>
|
357
|
+
<para>
|
358
|
+
The setup header includes extensive CODEC setup information as well as
|
359
|
+
the complete VQ and Huffman codebooks needed for decode.</para>
|
360
|
+
</section>
|
361
|
+
|
362
|
+
</section>
|
363
|
+
|
364
|
+
<section><title>Decode Procedure</title>
|
365
|
+
|
366
|
+
<highlights>
|
367
|
+
<para>
|
368
|
+
The decoding and synthesis procedure for all audio packets is
|
369
|
+
fundamentally the same.
|
370
|
+
<orderedlist>
|
371
|
+
<listitem><simpara>decode packet type flag</simpara></listitem>
|
372
|
+
<listitem><simpara>decode mode number</simpara></listitem>
|
373
|
+
<listitem><simpara>decode window shape (long windows only)</simpara></listitem>
|
374
|
+
<listitem><simpara>decode floor</simpara></listitem>
|
375
|
+
<listitem><simpara>decode residue into residue vectors</simpara></listitem>
|
376
|
+
<listitem><simpara>inverse channel coupling of residue vectors</simpara></listitem>
|
377
|
+
<listitem><simpara>generate floor curve from decoded floor data</simpara></listitem>
|
378
|
+
<listitem><simpara>compute dot product of floor and residue, producing audio spectrum vector</simpara></listitem>
|
379
|
+
<listitem><simpara>inverse monolithic transform of audio spectrum vector, always an MDCT in Vorbis I</simpara></listitem>
|
380
|
+
<listitem><simpara>overlap/add left-hand output of transform with right-hand output of previous frame</simpara></listitem>
|
381
|
+
<listitem><simpara>store right hand-data from transform of current frame for future lapping</simpara></listitem>
|
382
|
+
<listitem><simpara>if not first frame, return results of overlap/add as audio result of current frame</simpara></listitem>
|
383
|
+
</orderedlist>
|
384
|
+
</para>
|
385
|
+
</highlights>
|
386
|
+
|
387
|
+
<para>
|
388
|
+
Note that clever rearrangement of the synthesis arithmetic is
|
389
|
+
possible; as an example, one can take advantage of symmetries in the
|
390
|
+
MDCT to store the right-hand transform data of a partial MDCT for a
|
391
|
+
50% inter-frame buffer space savings, and then complete the transform
|
392
|
+
later before overlap/add with the next frame. This optimization
|
393
|
+
produces entirely equivalent output and is naturally perfectly legal.
|
394
|
+
The decoder must be <emphasis>entirely mathematically equivalent</emphasis> to the
|
395
|
+
specification, it need not be a literal semantic implementation.</para>
|
396
|
+
|
397
|
+
<section><title>Packet type decode</title>
|
398
|
+
|
399
|
+
<para>
|
400
|
+
Vorbis I uses four packet types. The first three packet types mark each
|
401
|
+
of the three Vorbis headers described above. The fourth packet type
|
402
|
+
marks an audio packet. All other packet types are reserved; packets
|
403
|
+
marked with a reserved type should be ignored.</para>
|
404
|
+
|
405
|
+
<para>
|
406
|
+
Following the three header packets, all packets in a Vorbis I stream
|
407
|
+
are audio. The first step of audio packet decode is to read and
|
408
|
+
verify the packet type; <emphasis>a non-audio packet when audio is expected
|
409
|
+
indicates stream corruption or a non-compliant stream. The decoder
|
410
|
+
must ignore the packet and not attempt decoding it to
|
411
|
+
audio</emphasis>.</para>
|
412
|
+
|
413
|
+
</section>
|
414
|
+
|
415
|
+
|
416
|
+
<section><title>Mode decode</title>
|
417
|
+
<para>
|
418
|
+
Vorbis allows an encoder to set up multiple, numbered packet 'modes',
|
419
|
+
as described earlier, all of which may be used in a given Vorbis
|
420
|
+
stream. The mode is encoded as an integer used as a direct offset into
|
421
|
+
the mode instance index. </para>
|
422
|
+
</section>
|
423
|
+
|
424
|
+
<section id="vorbis-spec-window">
|
425
|
+
<title>Window shape decode (long windows only)</title>
|
426
|
+
|
427
|
+
<para>
|
428
|
+
Vorbis frames may be one of two PCM sample sizes specified during
|
429
|
+
codec setup. In Vorbis I, legal frame sizes are powers of two from 64
|
430
|
+
to 8192 samples. Aside from coupling, Vorbis handles channels as
|
431
|
+
independent vectors and these frame sizes are in samples per channel.</para>
|
432
|
+
|
433
|
+
<para>
|
434
|
+
Vorbis uses an overlapping transform, namely the MDCT, to blend one
|
435
|
+
frame into the next, avoiding most inter-frame block boundary
|
436
|
+
artifacts. The MDCT output of one frame is windowed according to MDCT
|
437
|
+
requirements, overlapped 50% with the output of the previous frame and
|
438
|
+
added. The window shape assures seamless reconstruction. </para>
|
439
|
+
|
440
|
+
<para>
|
441
|
+
This is easy to visualize in the case of equal sized-windows:</para>
|
442
|
+
|
443
|
+
<mediaobject>
|
444
|
+
<imageobject>
|
445
|
+
<imagedata fileref="window1.png" format="PNG"/>
|
446
|
+
</imageobject>
|
447
|
+
<textobject>
|
448
|
+
<phrase>overlap of two equal-sized windows</phrase>
|
449
|
+
</textobject>
|
450
|
+
</mediaobject>
|
451
|
+
|
452
|
+
<para>
|
453
|
+
And slightly more complex in the case of overlapping unequal sized
|
454
|
+
windows:</para>
|
455
|
+
|
456
|
+
<mediaobject>
|
457
|
+
<imageobject>
|
458
|
+
<imagedata fileref="window2.png" format="PNG"/>
|
459
|
+
</imageobject>
|
460
|
+
<textobject>
|
461
|
+
<phrase>overlap of a long and a short window</phrase>
|
462
|
+
</textobject>
|
463
|
+
</mediaobject>
|
464
|
+
|
465
|
+
<para>
|
466
|
+
In the unequal-sized window case, the window shape of the long window
|
467
|
+
must be modified for seamless lapping as above. It is possible to
|
468
|
+
correctly infer window shape to be applied to the current window from
|
469
|
+
knowing the sizes of the current, previous and next window. It is
|
470
|
+
legal for a decoder to use this method. However, in the case of a long
|
471
|
+
window (short windows require no modification), Vorbis also codes two
|
472
|
+
flag bits to specify pre- and post- window shape. Although not
|
473
|
+
strictly necessary for function, this minor redundancy allows a packet
|
474
|
+
to be fully decoded to the point of lapping entirely independently of
|
475
|
+
any other packet, allowing easier abstraction of decode layers as well
|
476
|
+
as allowing a greater level of easy parallelism in encode and
|
477
|
+
decode.</para>
|
478
|
+
|
479
|
+
<para>
|
480
|
+
A description of valid window functions for use with an inverse MDCT
|
481
|
+
can be found in the paper
|
482
|
+
<citetitle pubwork="article">
|
483
|
+
<ulink url="http://www.iocon.com/resource/docs/ps/eusipco_corrected.ps">
|
484
|
+
The use of multirate filter banks for coding of high quality digital
|
485
|
+
audio</ulink></citetitle>, by T. Sporer, K. Brandenburg and B. Edler. Vorbis windows
|
486
|
+
all use the slope function
|
487
|
+
<inlineequation>
|
488
|
+
|
489
|
+
<alt>y=sin(.5*PI*sin^2((x+.5)/n*pi))</alt>
|
490
|
+
<inlinemediaobject>
|
491
|
+
<textobject>
|
492
|
+
<phrase>$y = \sin(.5*\pi \, \sin^2((x+.5)/n*\pi))$</phrase>
|
493
|
+
</textobject>
|
494
|
+
</inlinemediaobject>
|
495
|
+
</inlineequation>.
|
496
|
+
</para>
|
497
|
+
|
498
|
+
</section>
|
499
|
+
|
500
|
+
<section><title>floor decode</title>
|
501
|
+
<para>
|
502
|
+
Each floor is encoded/decoded in channel order, however each floor
|
503
|
+
belongs to a 'submap' that specifies which floor configuration to
|
504
|
+
use. All floors are decoded before residue decode begins.</para>
|
505
|
+
</section>
|
506
|
+
|
507
|
+
<section><title>residue decode</title>
|
508
|
+
|
509
|
+
<para>
|
510
|
+
Although the number of residue vectors equals the number of channels,
|
511
|
+
channel coupling may mean that the raw residue vectors extracted
|
512
|
+
during decode do not map directly to specific channels. When channel
|
513
|
+
coupling is in use, some vectors will correspond to coupled magnitude
|
514
|
+
or angle. The coupling relationships are described in the codec setup
|
515
|
+
and may differ from frame to frame, due to different mode numbers.</para>
|
516
|
+
|
517
|
+
<para>
|
518
|
+
Vorbis codes residue vectors in groups by submap; the coding is done
|
519
|
+
in submap order from submap 0 through n-1. This differs from floors
|
520
|
+
which are coded using a configuration provided by submap number, but
|
521
|
+
are coded individually in channel order.</para>
|
522
|
+
|
523
|
+
</section>
|
524
|
+
|
525
|
+
<section><title>inverse channel coupling</title>
|
526
|
+
|
527
|
+
<para>
|
528
|
+
A detailed discussion of stereo in the Vorbis codec can be found in
|
529
|
+
the document <ulink url="stereo.html"><citetitle>Stereo Channel Coupling in the
|
530
|
+
Vorbis CODEC</citetitle></ulink>. Vorbis is not limited to only stereo coupling, but
|
531
|
+
the stereo document also gives a good overview of the generic coupling
|
532
|
+
mechanism.</para>
|
533
|
+
|
534
|
+
<para>
|
535
|
+
Vorbis coupling applies to pairs of residue vectors at a time;
|
536
|
+
decoupling is done in-place a pair at a time in the order and using
|
537
|
+
the vectors specified in the current mapping configuration. The
|
538
|
+
decoupling operation is the same for all pairs, converting square
|
539
|
+
polar representation (where one vector is magnitude and the second
|
540
|
+
angle) back to Cartesian representation.</para>
|
541
|
+
|
542
|
+
<para>
|
543
|
+
After decoupling, in order, each pair of vectors on the coupling list,
|
544
|
+
the resulting residue vectors represent the fine spectral detail
|
545
|
+
of each output channel.</para>
|
546
|
+
|
547
|
+
</section>
|
548
|
+
|
549
|
+
<section><title>generate floor curve</title>
|
550
|
+
|
551
|
+
<para>
|
552
|
+
The decoder may choose to generate the floor curve at any appropriate
|
553
|
+
time. It is reasonable to generate the output curve when the floor
|
554
|
+
data is decoded from the raw packet, or it can be generated after
|
555
|
+
inverse coupling and applied to the spectral residue directly,
|
556
|
+
combining generation and the dot product into one step and eliminating
|
557
|
+
some working space.</para>
|
558
|
+
|
559
|
+
<para>
|
560
|
+
Both floor 0 and floor 1 generate a linear-range, linear-domain output
|
561
|
+
vector to be multiplied (dot product) by the linear-range,
|
562
|
+
linear-domain spectral residue.</para>
|
563
|
+
|
564
|
+
</section>
|
565
|
+
|
566
|
+
<section><title>compute floor/residue dot product</title>
|
567
|
+
|
568
|
+
<para>
|
569
|
+
This step is straightforward; for each output channel, the decoder
|
570
|
+
multiplies the floor curve and residue vectors element by element,
|
571
|
+
producing the finished audio spectrum of each channel.</para>
|
572
|
+
|
573
|
+
<para>
|
574
|
+
One point is worth mentioning about this dot product; a common mistake
|
575
|
+
in a fixed point implementation might be to assume that a 32 bit
|
576
|
+
fixed-point representation for floor and residue and direct
|
577
|
+
multiplication of the vectors is sufficient for acceptable spectral
|
578
|
+
depth in all cases because it happens to mostly work with the current
|
579
|
+
Xiph.Org reference encoder.</para>
|
580
|
+
|
581
|
+
<para>
|
582
|
+
However, floor vector values can span ~140dB (~24 bits unsigned), and
|
583
|
+
the audio spectrum vector should represent a minimum of 120dB (~21
|
584
|
+
bits with sign), even when output is to a 16 bit PCM device. For the
|
585
|
+
residue vector to represent full scale if the floor is nailed to
|
586
|
+
-140dB, it must be able to span 0 to +140dB. For the residue vector
|
587
|
+
to reach full scale if the floor is nailed at 0dB, it must be able to
|
588
|
+
represent -140dB to +0dB. Thus, in order to handle full range
|
589
|
+
dynamics, a residue vector may span -140dB to +140dB entirely within
|
590
|
+
spec. A 280dB range is approximately 48 bits with sign; thus the
|
591
|
+
residue vector must be able to represent a 48 bit range and the dot
|
592
|
+
product must be able to handle an effective 48 bit times 24 bit
|
593
|
+
multiplication. This range may be achieved using large (64 bit or
|
594
|
+
larger) integers, or implementing a movable binary point
|
595
|
+
representation.</para>
|
596
|
+
|
597
|
+
</section>
|
598
|
+
|
599
|
+
<section><title>inverse monolithic transform (MDCT)</title>
|
600
|
+
|
601
|
+
<para>
|
602
|
+
The audio spectrum is converted back into time domain PCM audio via an
|
603
|
+
inverse Modified Discrete Cosine Transform (MDCT). A detailed
|
604
|
+
description of the MDCT is available in the paper <ulink
|
605
|
+
url="http://www.iocon.com/resource/docs/ps/eusipco_corrected.ps"><citetitle pubwork="article">The use of multirate filter banks for coding of high quality digital
|
606
|
+
audio</citetitle></ulink>, by T. Sporer, K. Brandenburg and B. Edler.</para>
|
607
|
+
|
608
|
+
<para>
|
609
|
+
Note that the PCM produced directly from the MDCT is not yet finished
|
610
|
+
audio; it must be lapped with surrounding frames using an appropriate
|
611
|
+
window (such as the Vorbis window) before the MDCT can be considered
|
612
|
+
orthogonal.</para>
|
613
|
+
|
614
|
+
</section>
|
615
|
+
|
616
|
+
<section><title>overlap/add data</title>
|
617
|
+
<para>
|
618
|
+
Windowed MDCT output is overlapped and added with the right hand data
|
619
|
+
of the previous window such that the 3/4 point of the previous window
|
620
|
+
is aligned with the 1/4 point of the current window (as illustrated in
|
621
|
+
the window overlap diagram). At this point, the audio data between the
|
622
|
+
center of the previous frame and the center of the current frame is
|
623
|
+
now finished and ready to be returned. </para>
|
624
|
+
</section>
|
625
|
+
|
626
|
+
<section><title>cache right hand data</title>
|
627
|
+
<para>
|
628
|
+
The decoder must cache the right hand portion of the current frame to
|
629
|
+
be lapped with the left hand portion of the next frame.
|
630
|
+
</para>
|
631
|
+
</section>
|
632
|
+
|
633
|
+
<section><title>return finished audio data</title>
|
634
|
+
|
635
|
+
<para>
|
636
|
+
The overlapped portion produced from overlapping the previous and
|
637
|
+
current frame data is finished data to be returned by the decoder.
|
638
|
+
This data spans from the center of the previous window to the center
|
639
|
+
of the current window. In the case of same-sized windows, the amount
|
640
|
+
of data to return is one-half block consisting of and only of the
|
641
|
+
overlapped portions. When overlapping a short and long window, much of
|
642
|
+
the returned range is not actually overlap. This does not damage
|
643
|
+
transform orthogonality. Pay attention however to returning the
|
644
|
+
correct data range; the amount of data to be returned is:
|
645
|
+
|
646
|
+
<programlisting>
|
647
|
+
window_blocksize(previous_window)/4+window_blocksize(current_window)/4
|
648
|
+
</programlisting>
|
649
|
+
|
650
|
+
from the center of the previous window to the center of the current
|
651
|
+
window.</para>
|
652
|
+
|
653
|
+
<para>
|
654
|
+
Data is not returned from the first frame; it must be used to 'prime'
|
655
|
+
the decode engine. The encoder accounts for this priming when
|
656
|
+
calculating PCM offsets; after the first frame, the proper PCM output
|
657
|
+
offset is '0' (as no data has been returned yet).</para>
|
658
|
+
</section>
|
659
|
+
</section>
|
660
|
+
|
661
|
+
</section>
|
662
|
+
|
663
|
+
</section>
|
664
|
+
<!-- end Vorbis I specification introduction and description -->
|
665
|
+
|