seal 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.yardopts +1 -0
- data/LICENSE +13 -0
- data/README.md +265 -0
- data/ext/seal/extconf.rb +45 -0
- data/include/al/al.h +724 -0
- data/include/al/alc.h +277 -0
- data/include/al/efx-presets.h +402 -0
- data/include/al/efx.h +758 -0
- data/include/mpg123/mpg123.h +1034 -0
- data/include/ogg/config_types.h +25 -0
- data/include/ogg/ogg.h +210 -0
- data/include/ogg/os_types.h +147 -0
- data/include/seal.h +23 -0
- data/include/seal/buf.h +143 -0
- data/include/seal/core.h +95 -0
- data/include/seal/efs.h +112 -0
- data/include/seal/err.h +93 -0
- data/include/seal/fmt.h +58 -0
- data/include/seal/listener.h +103 -0
- data/include/seal/raw.h +86 -0
- data/include/seal/rvb.h +520 -0
- data/include/seal/src.h +413 -0
- data/include/seal/stream.h +81 -0
- data/include/vorbis/codec.h +243 -0
- data/include/vorbis/vorbisfile.h +206 -0
- data/mpg123/AUTHORS +150 -0
- data/mpg123/COPYING +773 -0
- data/mpg123/ChangeLog +3 -0
- data/mpg123/INSTALL +111 -0
- data/mpg123/Makefile.am +99 -0
- data/mpg123/Makefile.in +1043 -0
- data/mpg123/NEWS +1200 -0
- data/mpg123/NEWS.libmpg123 +133 -0
- data/mpg123/README +203 -0
- data/mpg123/TODO +38 -0
- data/mpg123/aclocal.m4 +1168 -0
- data/mpg123/build/config.guess +1530 -0
- data/mpg123/build/config.sub +1782 -0
- data/mpg123/build/depcomp +707 -0
- data/mpg123/build/install-sh +527 -0
- data/mpg123/build/ltmain.sh +9655 -0
- data/mpg123/build/missing +330 -0
- data/mpg123/configure +20267 -0
- data/mpg123/configure.ac +2178 -0
- data/mpg123/doc/ACCURACY +2 -0
- data/mpg123/doc/BENCHMARKING +110 -0
- data/mpg123/doc/BUGS +3 -0
- data/mpg123/doc/CONTACT +17 -0
- data/mpg123/doc/LICENSE +22 -0
- data/mpg123/doc/Makefile.am +32 -0
- data/mpg123/doc/Makefile.in +490 -0
- data/mpg123/doc/PATENTS +39 -0
- data/mpg123/doc/README.3DNOW +56 -0
- data/mpg123/doc/README.gain +171 -0
- data/mpg123/doc/README.remote +218 -0
- data/mpg123/doc/ROAD_TO_LGPL +270 -0
- data/mpg123/doc/THANKS +13 -0
- data/mpg123/doc/TODO +63 -0
- data/mpg123/doc/doxy_examples.c +21 -0
- data/mpg123/doc/doxygen.conf +41 -0
- data/mpg123/doc/doxyhead.xhtml +12 -0
- data/mpg123/doc/examples/dump_seekindex.c +41 -0
- data/mpg123/doc/examples/extract_frames.c +92 -0
- data/mpg123/doc/examples/feedseek.c +238 -0
- data/mpg123/doc/examples/id3dump.c +178 -0
- data/mpg123/doc/examples/mpg123_to_wav.c +118 -0
- data/mpg123/doc/examples/mpglib.c +92 -0
- data/mpg123/doc/examples/scan.c +47 -0
- data/mpg123/doc/libmpg123_speed.txt +84 -0
- data/mpg123/equalize.dat +37 -0
- data/mpg123/libmpg123.pc.in +11 -0
- data/mpg123/m4/addrconfig.m4 +34 -0
- data/mpg123/m4/libtool.m4 +7982 -0
- data/mpg123/m4/ltoptions.m4 +384 -0
- data/mpg123/m4/ltsugar.m4 +123 -0
- data/mpg123/m4/ltversion.m4 +23 -0
- data/mpg123/m4/lt~obsolete.m4 +98 -0
- data/mpg123/makedll.sh +19 -0
- data/mpg123/man1/mpg123.1 +512 -0
- data/mpg123/mpg123.spec +68 -0
- data/mpg123/mpg123.spec.in +68 -0
- data/mpg123/ports/MSVC++/2005/libmpg123/libmpg123.vcproj +741 -0
- data/mpg123/ports/MSVC++/2008/dump_seekindex/dump_seekindex.vcproj +194 -0
- data/mpg123/ports/MSVC++/2008/feedseek/feedseek.vcproj +195 -0
- data/mpg123/ports/MSVC++/2008/libmpg123/libmpg123.vcproj +1357 -0
- data/mpg123/ports/MSVC++/2008/mpg123.sln +44 -0
- data/mpg123/ports/MSVC++/2008/mpglib/mpglib.vcproj +191 -0
- data/mpg123/ports/MSVC++/2008/scan/scan.vcproj +195 -0
- data/mpg123/ports/MSVC++/2008clr/2008clr.sln +81 -0
- data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Program.cs +435 -0
- data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Properties/AssemblyInfo.cs +36 -0
- data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/ReplaceReaderclr.csproj +72 -0
- data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Program.cs +331 -0
- data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Properties/AssemblyInfo.cs +36 -0
- data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/feedseekclr.csproj +71 -0
- data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Program.cs +79 -0
- data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Properties/AssemblyInfo.cs +36 -0
- data/mpg123/ports/MSVC++/2008clr/examples/scanclr/scanclr.csproj +70 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/AssemblyInfo.cpp +76 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/ReadMe.txt +165 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.cpp +91 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.h +130 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/dllmain.cpp +19 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/enum.h +218 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.cpp +48 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.h +134 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.cpp +92 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.h +132 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.cpp +138 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.h +152 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.cpp +896 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.h +953 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.rc +102 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.vcproj +328 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/resource.h +14 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.cpp +8 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.h +38 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.cpp +166 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.h +265 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/targetver.h +24 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.cpp +67 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.h +111 -0
- data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj +90 -0
- data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj.filters +6 -0
- data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj +95 -0
- data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj.filters +6 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj +960 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj.user +3 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/yasm.exe +0 -0
- data/mpg123/ports/MSVC++/2010/mpg123.sln +38 -0
- data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj +93 -0
- data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj.filters +6 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/CORE_FileIn.H +15 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/SourceFilter_MP3.H +139 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_Def.H +206 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_FileIn.H +167 -0
- data/mpg123/ports/MSVC++/CMP3Stream/README +4 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_FileIn.CPP +462 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Log.CPP +122 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Mutex.CPP +35 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/SourceFilter_MP3Stream.CPP +586 -0
- data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/PLACE_LIBMPG123_SOURCES_HERE +0 -0
- data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/libMPG123.vcproj +245 -0
- data/mpg123/ports/MSVC++/config.h +35 -0
- data/mpg123/ports/MSVC++/examples/feedseek.c +240 -0
- data/mpg123/ports/MSVC++/examples/scan.c +47 -0
- data/mpg123/ports/MSVC++/mpg123.h +46 -0
- data/mpg123/ports/MSVC++/msvc.c +59 -0
- data/mpg123/ports/README +26 -0
- data/mpg123/ports/Sony_PSP/Makefile.psp +38 -0
- data/mpg123/ports/Sony_PSP/README +11 -0
- data/mpg123/ports/Sony_PSP/config.h +368 -0
- data/mpg123/ports/Sony_PSP/readers.c.patch +2 -0
- data/mpg123/ports/Xcode/config.h +197 -0
- data/mpg123/ports/Xcode/mpg123.h +17 -0
- data/mpg123/ports/Xcode/mpg123.xcodeproj/project.pbxproj +670 -0
- data/mpg123/ports/mpg123_.pas +478 -0
- data/mpg123/scripts/benchmark-cpu.pl +56 -0
- data/mpg123/scripts/tag_lyrics.py +76 -0
- data/mpg123/src/Makefile.am +186 -0
- data/mpg123/src/Makefile.in +1097 -0
- data/mpg123/src/audio.c +725 -0
- data/mpg123/src/audio.h +106 -0
- data/mpg123/src/buffer.c +312 -0
- data/mpg123/src/buffer.h +45 -0
- data/mpg123/src/common.c +240 -0
- data/mpg123/src/common.h +29 -0
- data/mpg123/src/config.h.in +436 -0
- data/mpg123/src/control_generic.c +809 -0
- data/mpg123/src/equalizer.c +48 -0
- data/mpg123/src/genre.c +271 -0
- data/mpg123/src/genre.h +15 -0
- data/mpg123/src/getlopt.c +148 -0
- data/mpg123/src/getlopt.h +77 -0
- data/mpg123/src/httpget.c +700 -0
- data/mpg123/src/httpget.h +66 -0
- data/mpg123/src/legacy_module.c +74 -0
- data/mpg123/src/libmpg123/Makefile.am +141 -0
- data/mpg123/src/libmpg123/Makefile.in +919 -0
- data/mpg123/src/libmpg123/compat.c +138 -0
- data/mpg123/src/libmpg123/compat.h +178 -0
- data/mpg123/src/libmpg123/dct36_3dnow.S +505 -0
- data/mpg123/src/libmpg123/dct36_3dnowext.S +512 -0
- data/mpg123/src/libmpg123/dct64.c +174 -0
- data/mpg123/src/libmpg123/dct64_3dnow.S +712 -0
- data/mpg123/src/libmpg123/dct64_3dnowext.S +714 -0
- data/mpg123/src/libmpg123/dct64_altivec.c +315 -0
- data/mpg123/src/libmpg123/dct64_i386.c +336 -0
- data/mpg123/src/libmpg123/dct64_i486.c +342 -0
- data/mpg123/src/libmpg123/dct64_mmx.S +811 -0
- data/mpg123/src/libmpg123/dct64_neon.S +297 -0
- data/mpg123/src/libmpg123/dct64_neon_float.S +270 -0
- data/mpg123/src/libmpg123/dct64_sse.S +454 -0
- data/mpg123/src/libmpg123/dct64_sse_float.S +401 -0
- data/mpg123/src/libmpg123/dct64_x86_64.S +464 -0
- data/mpg123/src/libmpg123/dct64_x86_64_float.S +426 -0
- data/mpg123/src/libmpg123/debug.h +171 -0
- data/mpg123/src/libmpg123/decode.h +268 -0
- data/mpg123/src/libmpg123/dither.c +119 -0
- data/mpg123/src/libmpg123/dither.h +23 -0
- data/mpg123/src/libmpg123/equalizer.c +17 -0
- data/mpg123/src/libmpg123/equalizer_3dnow.S +70 -0
- data/mpg123/src/libmpg123/feature.c +106 -0
- data/mpg123/src/libmpg123/format.c +521 -0
- data/mpg123/src/libmpg123/frame.c +1046 -0
- data/mpg123/src/libmpg123/frame.h +410 -0
- data/mpg123/src/libmpg123/gapless.h +119 -0
- data/mpg123/src/libmpg123/getbits.h +100 -0
- data/mpg123/src/libmpg123/getcpuflags.S +91 -0
- data/mpg123/src/libmpg123/getcpuflags.h +47 -0
- data/mpg123/src/libmpg123/huffman.h +340 -0
- data/mpg123/src/libmpg123/icy.c +32 -0
- data/mpg123/src/libmpg123/icy.h +38 -0
- data/mpg123/src/libmpg123/icy2utf8.c +438 -0
- data/mpg123/src/libmpg123/icy2utf8.h +10 -0
- data/mpg123/src/libmpg123/id3.c +999 -0
- data/mpg123/src/libmpg123/id3.h +43 -0
- data/mpg123/src/libmpg123/index.c +134 -0
- data/mpg123/src/libmpg123/index.h +59 -0
- data/mpg123/src/libmpg123/intsym.h +256 -0
- data/mpg123/src/libmpg123/l12_integer_tables.h +278 -0
- data/mpg123/src/libmpg123/l2tables.h +164 -0
- data/mpg123/src/libmpg123/l3_integer_tables.h +1002 -0
- data/mpg123/src/libmpg123/layer1.c +155 -0
- data/mpg123/src/libmpg123/layer2.c +371 -0
- data/mpg123/src/libmpg123/layer3.c +2053 -0
- data/mpg123/src/libmpg123/lfs_alias.c +252 -0
- data/mpg123/src/libmpg123/lfs_wrap.c +751 -0
- data/mpg123/src/libmpg123/libmpg123.c +1607 -0
- data/mpg123/src/libmpg123/mangle.h +74 -0
- data/mpg123/src/libmpg123/mpeghead.h +87 -0
- data/mpg123/src/libmpg123/mpg123.h.in +1075 -0
- data/mpg123/src/libmpg123/mpg123lib_intern.h +338 -0
- data/mpg123/src/libmpg123/ntom.c +148 -0
- data/mpg123/src/libmpg123/optimize.c +964 -0
- data/mpg123/src/libmpg123/optimize.h +219 -0
- data/mpg123/src/libmpg123/parse.c +1179 -0
- data/mpg123/src/libmpg123/parse.h +25 -0
- data/mpg123/src/libmpg123/reader.h +137 -0
- data/mpg123/src/libmpg123/readers.c +1235 -0
- data/mpg123/src/libmpg123/sample.h +152 -0
- data/mpg123/src/libmpg123/stringbuf.c +163 -0
- data/mpg123/src/libmpg123/synth.c +816 -0
- data/mpg123/src/libmpg123/synth.h +196 -0
- data/mpg123/src/libmpg123/synth_3dnow.S +318 -0
- data/mpg123/src/libmpg123/synth_3dnowext.S +6 -0
- data/mpg123/src/libmpg123/synth_8bit.c +142 -0
- data/mpg123/src/libmpg123/synth_8bit.h +86 -0
- data/mpg123/src/libmpg123/synth_altivec.c +1057 -0
- data/mpg123/src/libmpg123/synth_arm.S +271 -0
- data/mpg123/src/libmpg123/synth_arm_accurate.S +287 -0
- data/mpg123/src/libmpg123/synth_i486.c +252 -0
- data/mpg123/src/libmpg123/synth_i586.S +336 -0
- data/mpg123/src/libmpg123/synth_i586_dither.S +375 -0
- data/mpg123/src/libmpg123/synth_mmx.S +125 -0
- data/mpg123/src/libmpg123/synth_mono.h +64 -0
- data/mpg123/src/libmpg123/synth_neon.S +123 -0
- data/mpg123/src/libmpg123/synth_neon_accurate.S +173 -0
- data/mpg123/src/libmpg123/synth_neon_float.S +149 -0
- data/mpg123/src/libmpg123/synth_neon_s32.S +168 -0
- data/mpg123/src/libmpg123/synth_ntom.h +213 -0
- data/mpg123/src/libmpg123/synth_real.c +404 -0
- data/mpg123/src/libmpg123/synth_s32.c +411 -0
- data/mpg123/src/libmpg123/synth_sse.S +6 -0
- data/mpg123/src/libmpg123/synth_sse3d.h +246 -0
- data/mpg123/src/libmpg123/synth_sse_accurate.S +294 -0
- data/mpg123/src/libmpg123/synth_sse_float.S +241 -0
- data/mpg123/src/libmpg123/synth_sse_s32.S +306 -0
- data/mpg123/src/libmpg123/synth_stereo_neon.S +175 -0
- data/mpg123/src/libmpg123/synth_stereo_neon_accurate.S +262 -0
- data/mpg123/src/libmpg123/synth_stereo_neon_float.S +220 -0
- data/mpg123/src/libmpg123/synth_stereo_neon_s32.S +247 -0
- data/mpg123/src/libmpg123/synth_stereo_sse_accurate.S +508 -0
- data/mpg123/src/libmpg123/synth_stereo_sse_float.S +416 -0
- data/mpg123/src/libmpg123/synth_stereo_sse_s32.S +540 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64.S +335 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64_accurate.S +454 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64_float.S +396 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64_s32.S +473 -0
- data/mpg123/src/libmpg123/synth_x86_64.S +244 -0
- data/mpg123/src/libmpg123/synth_x86_64_accurate.S +301 -0
- data/mpg123/src/libmpg123/synth_x86_64_float.S +259 -0
- data/mpg123/src/libmpg123/synth_x86_64_s32.S +312 -0
- data/mpg123/src/libmpg123/synths.h +52 -0
- data/mpg123/src/libmpg123/tabinit.c +294 -0
- data/mpg123/src/libmpg123/tabinit_mmx.S +210 -0
- data/mpg123/src/libmpg123/testcpu.c +35 -0
- data/mpg123/src/libmpg123/true.h +14 -0
- data/mpg123/src/local.c +63 -0
- data/mpg123/src/local.h +21 -0
- data/mpg123/src/metaprint.c +373 -0
- data/mpg123/src/metaprint.h +17 -0
- data/mpg123/src/module.c +306 -0
- data/mpg123/src/module.h +48 -0
- data/mpg123/src/mpg123.c +1405 -0
- data/mpg123/src/mpg123app.h +171 -0
- data/mpg123/src/output/Makefile.am +213 -0
- data/mpg123/src/output/Makefile.in +1238 -0
- data/mpg123/src/output/aix.c +300 -0
- data/mpg123/src/output/alib.c +209 -0
- data/mpg123/src/output/alsa.c +297 -0
- data/mpg123/src/output/arts.c +117 -0
- data/mpg123/src/output/coreaudio.c +370 -0
- data/mpg123/src/output/dummy.c +78 -0
- data/mpg123/src/output/esd.c +167 -0
- data/mpg123/src/output/hp.c +184 -0
- data/mpg123/src/output/jack.c +450 -0
- data/mpg123/src/output/mint.c +197 -0
- data/mpg123/src/output/nas.c +335 -0
- data/mpg123/src/output/openal.c +197 -0
- data/mpg123/src/output/os2.c +665 -0
- data/mpg123/src/output/oss.c +319 -0
- data/mpg123/src/output/portaudio.c +255 -0
- data/mpg123/src/output/pulse.c +164 -0
- data/mpg123/src/output/sdl.c +206 -0
- data/mpg123/src/output/sgi.c +213 -0
- data/mpg123/src/output/sndio.c +161 -0
- data/mpg123/src/output/sun.c +281 -0
- data/mpg123/src/output/win32.c +229 -0
- data/mpg123/src/playlist.c +596 -0
- data/mpg123/src/playlist.h +52 -0
- data/mpg123/src/resolver.c +319 -0
- data/mpg123/src/resolver.h +25 -0
- data/mpg123/src/sfifo.c +146 -0
- data/mpg123/src/sfifo.h +95 -0
- data/mpg123/src/streamdump.c +74 -0
- data/mpg123/src/streamdump.h +20 -0
- data/mpg123/src/term.c +479 -0
- data/mpg123/src/term.h +81 -0
- data/mpg123/src/tests/noise.c +52 -0
- data/mpg123/src/tests/plain_id3.c +109 -0
- data/mpg123/src/tests/seek_accuracy.c +261 -0
- data/mpg123/src/tests/seek_whence.c +56 -0
- data/mpg123/src/tests/testtext.h +34 -0
- data/mpg123/src/tests/text.c +80 -0
- data/mpg123/src/wav.c +464 -0
- data/mpg123/src/wavhead.h +68 -0
- data/mpg123/src/win32_net.c +599 -0
- data/mpg123/src/win32_support.c +191 -0
- data/mpg123/src/win32_support.h +152 -0
- data/mpg123/src/xfermem.c +321 -0
- data/mpg123/src/xfermem.h +74 -0
- data/mpg123/windows-builds.sh +137 -0
- data/msvc/lib/OpenAL32.lib +0 -0
- data/spec/fixtures/heal.ogg +0 -0
- data/spec/fixtures/tone_up.wav +0 -0
- data/spec/seal/buffer_spec.rb +37 -0
- data/spec/seal/core_spec.rb +29 -0
- data/spec/seal/effect_slot_spec.rb +38 -0
- data/spec/seal/listener_spec.rb +33 -0
- data/spec/seal/reverb_spec.rb +51 -0
- data/spec/seal/source_spec.rb +370 -0
- data/spec/seal/stream_spec.rb +38 -0
- data/spec/spec_helper.rb +45 -0
- data/spec/support/attribute_examples.rb +75 -0
- data/spec/support/audio_object_with_format.rb +27 -0
- data/spec/support/movable_object.rb +22 -0
- data/src/libogg/bitwise.c +857 -0
- data/src/libogg/framing.c +2093 -0
- data/src/libvorbis/backends.h +144 -0
- data/src/libvorbis/bitrate.c +253 -0
- data/src/libvorbis/bitrate.h +59 -0
- data/src/libvorbis/block.c +1046 -0
- data/src/libvorbis/codebook.c +484 -0
- data/src/libvorbis/codebook.h +119 -0
- data/src/libvorbis/codec_internal.h +167 -0
- data/src/libvorbis/envelope.c +375 -0
- data/src/libvorbis/envelope.h +80 -0
- data/src/libvorbis/floor0.c +221 -0
- data/src/libvorbis/floor1.c +1100 -0
- data/src/libvorbis/highlevel.h +58 -0
- data/src/libvorbis/info.c +668 -0
- data/src/libvorbis/lookup.c +94 -0
- data/src/libvorbis/lookup.h +32 -0
- data/src/libvorbis/lookup_data.h +192 -0
- data/src/libvorbis/lpc.c +160 -0
- data/src/libvorbis/lpc.h +29 -0
- data/src/libvorbis/lsp.c +456 -0
- data/src/libvorbis/lsp.h +28 -0
- data/src/libvorbis/mapping0.c +816 -0
- data/src/libvorbis/masking.h +785 -0
- data/src/libvorbis/mdct.c +563 -0
- data/src/libvorbis/mdct.h +71 -0
- data/src/libvorbis/misc.h +57 -0
- data/src/libvorbis/os.h +186 -0
- data/src/libvorbis/psy.c +1206 -0
- data/src/libvorbis/psy.h +154 -0
- data/src/libvorbis/registry.c +45 -0
- data/src/libvorbis/registry.h +32 -0
- data/src/libvorbis/res0.c +889 -0
- data/src/libvorbis/scales.h +90 -0
- data/src/libvorbis/sharedbook.c +579 -0
- data/src/libvorbis/smallft.c +1255 -0
- data/src/libvorbis/smallft.h +34 -0
- data/src/libvorbis/synthesis.c +184 -0
- data/src/libvorbis/vorbisfile.c +2337 -0
- data/src/libvorbis/window.c +2135 -0
- data/src/libvorbis/window.h +26 -0
- data/src/rubyext.c +2329 -0
- data/src/seal/buf.c +124 -0
- data/src/seal/core.c +283 -0
- data/src/seal/efs.c +74 -0
- data/src/seal/err.c +118 -0
- data/src/seal/fmt.c +86 -0
- data/src/seal/listener.c +111 -0
- data/src/seal/mpg.c +174 -0
- data/src/seal/mpg.h +24 -0
- data/src/seal/ov.c +180 -0
- data/src/seal/ov.h +22 -0
- data/src/seal/raw.c +59 -0
- data/src/seal/reader.c +102 -0
- data/src/seal/reader.h +59 -0
- data/src/seal/rvb.c +368 -0
- data/src/seal/src.c +654 -0
- data/src/seal/stream.c +109 -0
- data/src/seal/threading.c +66 -0
- data/src/seal/threading.h +20 -0
- data/src/seal/wav.c +297 -0
- data/src/seal/wav.h +23 -0
- data/src/win32api.rb +29 -0
- metadata +563 -0
data/src/seal/mpg.h
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
/*
|
2
|
+
* mpg.h is part of the Scorched End Audio Library (SEAL) and is licensed
|
3
|
+
* under the terms of the GNU Lesser General Public License. See COPYING
|
4
|
+
* attached with the library.
|
5
|
+
*
|
6
|
+
* mpg.h provides subroutines to decode MPEG 1.0, 2.0 and 2.5 audio for layers
|
7
|
+
* 1, 2 and 3.
|
8
|
+
*/
|
9
|
+
|
10
|
+
#ifndef _SEAL_MPG_H_
|
11
|
+
#define _SEAL_MPG_H_
|
12
|
+
|
13
|
+
#include <stddef.h>
|
14
|
+
#include <seal/raw.h>
|
15
|
+
#include <seal/stream.h>
|
16
|
+
#include <seal/err.h>
|
17
|
+
|
18
|
+
seal_err_t _seal_load_mpg(seal_raw_t*, const char* /*filename*/);
|
19
|
+
seal_err_t _seal_init_mpg_stream(seal_stream_t*, const char* /*filename*/);
|
20
|
+
seal_err_t _seal_stream_mpg(seal_stream_t*, seal_raw_t*, size_t* /*psize*/);
|
21
|
+
seal_err_t _seal_rewind_mpg_stream(seal_stream_t*);
|
22
|
+
seal_err_t _seal_close_mpg_stream(seal_stream_t*);
|
23
|
+
|
24
|
+
#endif /* _SEAL_MPG_H_ */
|
data/src/seal/ov.c
ADDED
@@ -0,0 +1,180 @@
|
|
1
|
+
/*
|
2
|
+
* ov.c is part of the Scorched End Audio Library (SEAL) and is
|
3
|
+
* licensed under the terms of the GNU Lesser General Public License. See
|
4
|
+
* COPYING attached with the library.
|
5
|
+
*/
|
6
|
+
|
7
|
+
#include <stdlib.h>
|
8
|
+
#include <vorbis/codec.h>
|
9
|
+
#define OV_EXCLUDE_STATIC_CALLBACKS
|
10
|
+
#include <vorbis/vorbisfile.h>
|
11
|
+
#include <seal/raw.h>
|
12
|
+
#include <seal/stream.h>
|
13
|
+
#include <seal/err.h>
|
14
|
+
#include "ov.h"
|
15
|
+
#include "reader.h"
|
16
|
+
|
17
|
+
/* Initial buffer size for loading. */
|
18
|
+
static const int INITIAL_BUF_SIZE = 4096;
|
19
|
+
|
20
|
+
static
|
21
|
+
seal_err_t
|
22
|
+
setup(seal_raw_attr_t* attr, OggVorbis_File* ovf, const char* filename)
|
23
|
+
{
|
24
|
+
vorbis_info* vi;
|
25
|
+
FILE* ov;
|
26
|
+
|
27
|
+
ov = _seal_fopen(filename);
|
28
|
+
if (ov == 0)
|
29
|
+
return SEAL_CANNOT_OPEN_FILE;
|
30
|
+
if (ov_open(ov, ovf, 0, 0) < 0) {
|
31
|
+
_seal_fclose(ov);
|
32
|
+
return SEAL_CANNOT_OPEN_OV;
|
33
|
+
}
|
34
|
+
vi = ov_info(ovf, -1);
|
35
|
+
attr->bit_depth = 16;
|
36
|
+
attr->nchannels = vi->channels;
|
37
|
+
attr->freq = vi->rate;
|
38
|
+
|
39
|
+
return SEAL_OK;
|
40
|
+
}
|
41
|
+
|
42
|
+
/* Caller passes `nbytes_loaded' to be able to accumulate the value. */
|
43
|
+
static
|
44
|
+
long
|
45
|
+
read(seal_raw_t* raw, unsigned long* nbytes_loaded, OggVorbis_File* ovf)
|
46
|
+
{
|
47
|
+
long nbytes_read;
|
48
|
+
int bitstream;
|
49
|
+
|
50
|
+
nbytes_read = ov_read(ovf, (char*) raw->data + *nbytes_loaded,
|
51
|
+
raw->size - *nbytes_loaded, 0, 2, 1, &bitstream);
|
52
|
+
*nbytes_loaded += nbytes_read;
|
53
|
+
|
54
|
+
return nbytes_read;
|
55
|
+
}
|
56
|
+
|
57
|
+
static
|
58
|
+
seal_err_t
|
59
|
+
load(seal_raw_t* raw, OggVorbis_File* ovf)
|
60
|
+
{
|
61
|
+
long nbytes_read;
|
62
|
+
unsigned long nbytes_loaded = 0;
|
63
|
+
seal_err_t err;
|
64
|
+
|
65
|
+
if ((err = seal_alloc_raw_data(raw, INITIAL_BUF_SIZE)) != SEAL_OK)
|
66
|
+
return err;
|
67
|
+
|
68
|
+
do {
|
69
|
+
if ((err = seal_ensure_raw_data_size(raw, nbytes_loaded)) != SEAL_OK)
|
70
|
+
goto cleanup;
|
71
|
+
nbytes_read = read(raw, &nbytes_loaded, ovf);
|
72
|
+
} while (nbytes_read > 0);
|
73
|
+
|
74
|
+
/* If `nbytes_read' < 0 then an error occurred. */
|
75
|
+
if (nbytes_read < 0) {
|
76
|
+
err = SEAL_CANNOT_READ_OV;
|
77
|
+
goto cleanup;
|
78
|
+
}
|
79
|
+
|
80
|
+
raw->size = nbytes_loaded;
|
81
|
+
|
82
|
+
return SEAL_OK;
|
83
|
+
|
84
|
+
cleanup:
|
85
|
+
seal_free_raw_data(raw);
|
86
|
+
|
87
|
+
return err;
|
88
|
+
}
|
89
|
+
|
90
|
+
seal_err_t
|
91
|
+
_seal_load_ov(seal_raw_t* raw, const char* filename)
|
92
|
+
{
|
93
|
+
seal_raw_t tmp_raw;
|
94
|
+
OggVorbis_File ovf;
|
95
|
+
seal_err_t err;
|
96
|
+
|
97
|
+
if ((err = setup(&tmp_raw.attr, &ovf, filename)) != SEAL_OK)
|
98
|
+
return err;
|
99
|
+
|
100
|
+
if ((err = load(&tmp_raw, &ovf)) == SEAL_OK)
|
101
|
+
*raw = tmp_raw;
|
102
|
+
|
103
|
+
/* This closes the opened file handle too. */
|
104
|
+
ov_clear(&ovf);
|
105
|
+
|
106
|
+
return err;
|
107
|
+
}
|
108
|
+
|
109
|
+
seal_err_t
|
110
|
+
_seal_init_ov_stream(seal_stream_t* stream, const char* filename)
|
111
|
+
{
|
112
|
+
seal_raw_attr_t attr;
|
113
|
+
OggVorbis_File* povf;
|
114
|
+
seal_err_t err;
|
115
|
+
|
116
|
+
povf = malloc(sizeof (OggVorbis_File));
|
117
|
+
if (povf == 0)
|
118
|
+
return SEAL_CANNOT_ALLOC_MEM;
|
119
|
+
|
120
|
+
if ((err = setup(&attr, povf, filename)) != SEAL_OK) {
|
121
|
+
free(povf);
|
122
|
+
return err;
|
123
|
+
}
|
124
|
+
|
125
|
+
stream->id = povf;
|
126
|
+
stream->fmt = SEAL_OV_FMT;
|
127
|
+
stream->attr = attr;
|
128
|
+
|
129
|
+
return SEAL_OK;
|
130
|
+
}
|
131
|
+
|
132
|
+
seal_err_t
|
133
|
+
_seal_stream_ov(seal_stream_t* stream, seal_raw_t* raw, size_t* psize)
|
134
|
+
{
|
135
|
+
long nbytes_read;
|
136
|
+
unsigned long nbytes_streamed = 0;
|
137
|
+
seal_raw_t tmp_raw;
|
138
|
+
seal_err_t err;
|
139
|
+
|
140
|
+
if ((err = seal_alloc_raw_data(&tmp_raw, raw->size)) != SEAL_OK)
|
141
|
+
return err;
|
142
|
+
|
143
|
+
do nbytes_read = read(&tmp_raw, &nbytes_streamed, stream->id);
|
144
|
+
while (nbytes_streamed < tmp_raw.size && nbytes_read > 0);
|
145
|
+
|
146
|
+
if (nbytes_read < 0) {
|
147
|
+
err = SEAL_CANNOT_READ_OV;
|
148
|
+
seal_free_raw_data(&tmp_raw);
|
149
|
+
return err;
|
150
|
+
}
|
151
|
+
|
152
|
+
if (nbytes_streamed != 0) {
|
153
|
+
raw->data = tmp_raw.data;
|
154
|
+
raw->size = nbytes_streamed;
|
155
|
+
raw->attr = stream->attr;
|
156
|
+
} else {
|
157
|
+
seal_free_raw_data(&tmp_raw);
|
158
|
+
}
|
159
|
+
*psize = nbytes_streamed;
|
160
|
+
|
161
|
+
return SEAL_OK;
|
162
|
+
}
|
163
|
+
|
164
|
+
seal_err_t
|
165
|
+
_seal_rewind_ov_stream(seal_stream_t* stream)
|
166
|
+
{
|
167
|
+
if (ov_time_seek(stream->id, 0) != 0)
|
168
|
+
return SEAL_CANNOT_REWIND_OV;
|
169
|
+
return SEAL_OK;
|
170
|
+
}
|
171
|
+
|
172
|
+
seal_err_t
|
173
|
+
_seal_close_ov_stream(seal_stream_t* stream)
|
174
|
+
{
|
175
|
+
if (ov_clear(stream->id) != 0)
|
176
|
+
return SEAL_CANNOT_CLOSE_OV;
|
177
|
+
|
178
|
+
free(stream->id);
|
179
|
+
return SEAL_OK;
|
180
|
+
}
|
data/src/seal/ov.h
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
/*
|
2
|
+
* ov.h is part of the Scorched End Audio Library (SEAL) and is licensed under
|
3
|
+
* the terms of the GNU Lesser General Public License. See COPYING attached
|
4
|
+
* with the library.
|
5
|
+
*
|
6
|
+
* ov.h provides subroutines to decode ogg vorbis files.
|
7
|
+
*/
|
8
|
+
|
9
|
+
#ifndef _SEAL_OV_H_
|
10
|
+
#define _SEAL_OV_H_
|
11
|
+
|
12
|
+
#include <stddef.h>
|
13
|
+
#include <seal/raw.h>
|
14
|
+
#include <seal/stream.h>
|
15
|
+
|
16
|
+
seal_err_t _seal_load_ov(seal_raw_t*, const char* /*filename*/);
|
17
|
+
seal_err_t _seal_init_ov_stream(seal_stream_t*, const char* /*filename*/);
|
18
|
+
seal_err_t _seal_stream_ov(seal_stream_t*, seal_raw_t*, size_t* /*psize*/);
|
19
|
+
seal_err_t _seal_rewind_ov_stream(seal_stream_t*);
|
20
|
+
seal_err_t _seal_close_ov_stream(seal_stream_t*);
|
21
|
+
|
22
|
+
#endif /* _SEAL_OV_H_ */
|
data/src/seal/raw.c
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
/*
|
2
|
+
* raw.c is part of the Scorched End Audio Library (SEAL) and is licensed
|
3
|
+
* under the terms of the GNU Lesser General Public License. See COPYING
|
4
|
+
* attached with the library.
|
5
|
+
*/
|
6
|
+
|
7
|
+
#include <stdlib.h>
|
8
|
+
#include <stddef.h>
|
9
|
+
#include <seal/raw.h>
|
10
|
+
#include <seal/err.h>
|
11
|
+
|
12
|
+
/* Reallocates `raw->data' to size `size'. */
|
13
|
+
static
|
14
|
+
seal_err_t
|
15
|
+
realloc_raw_data(seal_raw_t* raw, size_t size)
|
16
|
+
{
|
17
|
+
void* buf;
|
18
|
+
|
19
|
+
buf = realloc(raw->data, size);
|
20
|
+
if (buf == 0)
|
21
|
+
return SEAL_CANNOT_ALLOC_MEM;
|
22
|
+
raw->data = buf;
|
23
|
+
raw->size = size;
|
24
|
+
|
25
|
+
return SEAL_OK;
|
26
|
+
}
|
27
|
+
|
28
|
+
seal_err_t
|
29
|
+
seal_alloc_raw_data(seal_raw_t* raw, size_t size)
|
30
|
+
{
|
31
|
+
raw->size = size;
|
32
|
+
raw->data = malloc(size);
|
33
|
+
if (raw->data == 0)
|
34
|
+
return SEAL_CANNOT_ALLOC_MEM;
|
35
|
+
|
36
|
+
return SEAL_OK;
|
37
|
+
}
|
38
|
+
|
39
|
+
void
|
40
|
+
seal_free_raw_data(seal_raw_t* raw)
|
41
|
+
{
|
42
|
+
free(raw->data);
|
43
|
+
}
|
44
|
+
|
45
|
+
seal_err_t
|
46
|
+
seal_extend_raw_data(seal_raw_t* raw)
|
47
|
+
{
|
48
|
+
return realloc_raw_data(raw, raw->size * 2);
|
49
|
+
}
|
50
|
+
|
51
|
+
seal_err_t
|
52
|
+
seal_ensure_raw_data_size(seal_raw_t* raw, size_t size)
|
53
|
+
{
|
54
|
+
/* If the buffer is not large enough... */
|
55
|
+
if (size >= raw->size)
|
56
|
+
return seal_extend_raw_data(raw);
|
57
|
+
|
58
|
+
return SEAL_OK;
|
59
|
+
}
|
data/src/seal/reader.c
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
/*
|
2
|
+
* reader.c is part of the Scorched End Audio Library (SEAL) and is licensed
|
3
|
+
* under the terms of the GNU Lesser General Public License. See COPYING
|
4
|
+
* attached with the library.
|
5
|
+
*/
|
6
|
+
|
7
|
+
#ifdef _WIN32
|
8
|
+
# include <Windows.h>
|
9
|
+
#endif
|
10
|
+
#include <stdio.h>
|
11
|
+
#include <stdint.h>
|
12
|
+
#include <stddef.h>
|
13
|
+
#include <seal/err.h>
|
14
|
+
#include "reader.h"
|
15
|
+
|
16
|
+
enum
|
17
|
+
{
|
18
|
+
JUNK_BUF_SIZE = 512
|
19
|
+
};
|
20
|
+
|
21
|
+
/* Helpers that convert raw bytes to little-endian 16- and 32-bit integers. */
|
22
|
+
static
|
23
|
+
uint16_t
|
24
|
+
raw2le16(uint8_t* bytes)
|
25
|
+
{
|
26
|
+
return bytes[1] << 8 | bytes[0];
|
27
|
+
}
|
28
|
+
|
29
|
+
static
|
30
|
+
uint32_t
|
31
|
+
raw2le32(uint8_t* bytes)
|
32
|
+
{
|
33
|
+
return bytes[3] << 24 | bytes[2] << 16 | raw2le16(bytes);
|
34
|
+
}
|
35
|
+
|
36
|
+
FILE*
|
37
|
+
_seal_fopen(const char* filename)
|
38
|
+
{
|
39
|
+
FILE* file;
|
40
|
+
|
41
|
+
#ifdef _WIN32
|
42
|
+
wchar_t wfilename[260];
|
43
|
+
MultiByteToWideChar(CP_UTF8, 0, filename, -1, wfilename, 260);
|
44
|
+
file = _wfopen(wfilename, L"rb");
|
45
|
+
#else
|
46
|
+
file = fopen(filename, "rb");
|
47
|
+
#endif
|
48
|
+
|
49
|
+
return file;
|
50
|
+
}
|
51
|
+
|
52
|
+
void
|
53
|
+
_seal_fclose(FILE* file)
|
54
|
+
{
|
55
|
+
fclose(file);
|
56
|
+
}
|
57
|
+
|
58
|
+
/*
|
59
|
+
* A template for the following two functions. All arguments except `FILE'
|
60
|
+
* will have multiple evaluations in one call.
|
61
|
+
*/
|
62
|
+
#define READ_UINT_LE(nbits, buf, size, file) do \
|
63
|
+
{ \
|
64
|
+
size_t _i_, count; \
|
65
|
+
\
|
66
|
+
count = fread((buf), sizeof (uint##nbits##_t), (size), (file)); \
|
67
|
+
for (_i_ = 0; _i_ < (size); ++_i_) { \
|
68
|
+
*(buf) = raw2le##nbits((uint8_t*) (buf)); \
|
69
|
+
++(buf); \
|
70
|
+
} \
|
71
|
+
} while (0)
|
72
|
+
|
73
|
+
void
|
74
|
+
_seal_read_uint16le(uint16_t* buf, size_t size, void* file)
|
75
|
+
{
|
76
|
+
READ_UINT_LE(16, buf, size, file);
|
77
|
+
}
|
78
|
+
|
79
|
+
void
|
80
|
+
_seal_read_uint32le(uint32_t* buf, size_t size, void* file)
|
81
|
+
{
|
82
|
+
READ_UINT_LE(32, buf, size, file);
|
83
|
+
}
|
84
|
+
|
85
|
+
/*
|
86
|
+
* Use of static variable avoids the overhead brought by dynamic memory
|
87
|
+
* allocations and deallocations. Microsoft's implementation of fseek flushes
|
88
|
+
* the buffer, which is evil and why fread is used here.
|
89
|
+
*/
|
90
|
+
void
|
91
|
+
_seal_skip(uint32_t nbytes, void* file)
|
92
|
+
{
|
93
|
+
size_t count;
|
94
|
+
uint32_t i;
|
95
|
+
static uint8_t junk[JUNK_BUF_SIZE];
|
96
|
+
|
97
|
+
for (i = JUNK_BUF_SIZE; i <= nbytes; i += JUNK_BUF_SIZE)
|
98
|
+
count = fread(junk, 1, JUNK_BUF_SIZE, file);
|
99
|
+
nbytes %= JUNK_BUF_SIZE;
|
100
|
+
if (nbytes > 0)
|
101
|
+
count = fread(junk, 1, nbytes, file);
|
102
|
+
}
|
data/src/seal/reader.h
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
/*
|
2
|
+
* reader.h is part of the Scorched End Audio Library (SEAL) and is licensed
|
3
|
+
* under the terms of the GNU Lesser General Public License. See COPYING
|
4
|
+
* attached with the library.
|
5
|
+
*
|
6
|
+
* reader.h provides utilities related to file input.
|
7
|
+
*/
|
8
|
+
|
9
|
+
#ifndef _SEAL_READER_H_
|
10
|
+
#define _SEAL_READER_H_
|
11
|
+
|
12
|
+
#include <stdint.h>
|
13
|
+
#include <stddef.h>
|
14
|
+
#include <stdio.h>
|
15
|
+
|
16
|
+
/* Makes a 32-bit tag in little-endian. No multiple evaluations. */
|
17
|
+
#define SEAL_MKTAG(a, b, c, d) ((a) | (b) << 8 | (c) << 16 | (d) << 24)
|
18
|
+
|
19
|
+
/*
|
20
|
+
* Processes filename encoding and then open the file. Does not return
|
21
|
+
* `seal_err_t', so caller should be checking if the returned pointer is 0.
|
22
|
+
*
|
23
|
+
* @param filename the filename to open
|
24
|
+
* @return the opened file pointer
|
25
|
+
*/
|
26
|
+
FILE* _seal_fopen(const char* /*filename*/);
|
27
|
+
|
28
|
+
/*
|
29
|
+
* @param file the file pointer to close
|
30
|
+
*/
|
31
|
+
void _seal_fclose(FILE*);
|
32
|
+
|
33
|
+
/*
|
34
|
+
* Reads unsigned 16-bit integers in little-endian.
|
35
|
+
*
|
36
|
+
* @param buf the array of integers to receive the data
|
37
|
+
* @param size the size of the array
|
38
|
+
* @param file the file input stream
|
39
|
+
*/
|
40
|
+
void _seal_read_uint16le(uint16_t* /*buf*/, size_t, void* /*file*/);
|
41
|
+
|
42
|
+
/*
|
43
|
+
* Reads unsigned 32-bit integers in little-endian.
|
44
|
+
*
|
45
|
+
* @param buf the array of integers to receive the data
|
46
|
+
* @param size the size of the array
|
47
|
+
* @param file the file input stream
|
48
|
+
*/
|
49
|
+
void _seal_read_uint32le(uint32_t* /*buf*/, size_t, void* /*file*/);
|
50
|
+
|
51
|
+
/*
|
52
|
+
* Skips `nbytes' bytes (seek forward).
|
53
|
+
*
|
54
|
+
* @param nbytes the number of bytes to skip
|
55
|
+
* @param file the file input stream
|
56
|
+
*/
|
57
|
+
void _seal_skip(uint32_t /*nbytes*/, void* /*file*/);
|
58
|
+
|
59
|
+
#endif /* _SEAL_READER_H_ */
|