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
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/********************************************************************
|
|
2
|
+
* *
|
|
3
|
+
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
|
4
|
+
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
|
5
|
+
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
|
6
|
+
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
|
7
|
+
* *
|
|
8
|
+
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
|
|
9
|
+
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
|
10
|
+
|
|
11
|
+
********************************************************************
|
|
12
|
+
|
|
13
|
+
function: libvorbis codec headers
|
|
14
|
+
last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $
|
|
15
|
+
|
|
16
|
+
********************************************************************/
|
|
17
|
+
|
|
18
|
+
#ifndef _vorbis_codec_h_
|
|
19
|
+
#define _vorbis_codec_h_
|
|
20
|
+
|
|
21
|
+
#ifdef __cplusplus
|
|
22
|
+
extern "C"
|
|
23
|
+
{
|
|
24
|
+
#endif /* __cplusplus */
|
|
25
|
+
|
|
26
|
+
#include <ogg/ogg.h>
|
|
27
|
+
|
|
28
|
+
typedef struct vorbis_info{
|
|
29
|
+
int version;
|
|
30
|
+
int channels;
|
|
31
|
+
long rate;
|
|
32
|
+
|
|
33
|
+
/* The below bitrate declarations are *hints*.
|
|
34
|
+
Combinations of the three values carry the following implications:
|
|
35
|
+
|
|
36
|
+
all three set to the same value:
|
|
37
|
+
implies a fixed rate bitstream
|
|
38
|
+
only nominal set:
|
|
39
|
+
implies a VBR stream that averages the nominal bitrate. No hard
|
|
40
|
+
upper/lower limit
|
|
41
|
+
upper and or lower set:
|
|
42
|
+
implies a VBR bitstream that obeys the bitrate limits. nominal
|
|
43
|
+
may also be set to give a nominal rate.
|
|
44
|
+
none set:
|
|
45
|
+
the coder does not care to speculate.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
long bitrate_upper;
|
|
49
|
+
long bitrate_nominal;
|
|
50
|
+
long bitrate_lower;
|
|
51
|
+
long bitrate_window;
|
|
52
|
+
|
|
53
|
+
void *codec_setup;
|
|
54
|
+
} vorbis_info;
|
|
55
|
+
|
|
56
|
+
/* vorbis_dsp_state buffers the current vorbis audio
|
|
57
|
+
analysis/synthesis state. The DSP state belongs to a specific
|
|
58
|
+
logical bitstream ****************************************************/
|
|
59
|
+
typedef struct vorbis_dsp_state{
|
|
60
|
+
int analysisp;
|
|
61
|
+
vorbis_info *vi;
|
|
62
|
+
|
|
63
|
+
float **pcm;
|
|
64
|
+
float **pcmret;
|
|
65
|
+
int pcm_storage;
|
|
66
|
+
int pcm_current;
|
|
67
|
+
int pcm_returned;
|
|
68
|
+
|
|
69
|
+
int preextrapolate;
|
|
70
|
+
int eofflag;
|
|
71
|
+
|
|
72
|
+
long lW;
|
|
73
|
+
long W;
|
|
74
|
+
long nW;
|
|
75
|
+
long centerW;
|
|
76
|
+
|
|
77
|
+
ogg_int64_t granulepos;
|
|
78
|
+
ogg_int64_t sequence;
|
|
79
|
+
|
|
80
|
+
ogg_int64_t glue_bits;
|
|
81
|
+
ogg_int64_t time_bits;
|
|
82
|
+
ogg_int64_t floor_bits;
|
|
83
|
+
ogg_int64_t res_bits;
|
|
84
|
+
|
|
85
|
+
void *backend_state;
|
|
86
|
+
} vorbis_dsp_state;
|
|
87
|
+
|
|
88
|
+
typedef struct vorbis_block{
|
|
89
|
+
/* necessary stream state for linking to the framing abstraction */
|
|
90
|
+
float **pcm; /* this is a pointer into local storage */
|
|
91
|
+
oggpack_buffer opb;
|
|
92
|
+
|
|
93
|
+
long lW;
|
|
94
|
+
long W;
|
|
95
|
+
long nW;
|
|
96
|
+
int pcmend;
|
|
97
|
+
int mode;
|
|
98
|
+
|
|
99
|
+
int eofflag;
|
|
100
|
+
ogg_int64_t granulepos;
|
|
101
|
+
ogg_int64_t sequence;
|
|
102
|
+
vorbis_dsp_state *vd; /* For read-only access of configuration */
|
|
103
|
+
|
|
104
|
+
/* local storage to avoid remallocing; it's up to the mapping to
|
|
105
|
+
structure it */
|
|
106
|
+
void *localstore;
|
|
107
|
+
long localtop;
|
|
108
|
+
long localalloc;
|
|
109
|
+
long totaluse;
|
|
110
|
+
struct alloc_chain *reap;
|
|
111
|
+
|
|
112
|
+
/* bitmetrics for the frame */
|
|
113
|
+
long glue_bits;
|
|
114
|
+
long time_bits;
|
|
115
|
+
long floor_bits;
|
|
116
|
+
long res_bits;
|
|
117
|
+
|
|
118
|
+
void *internal;
|
|
119
|
+
|
|
120
|
+
} vorbis_block;
|
|
121
|
+
|
|
122
|
+
/* vorbis_block is a single block of data to be processed as part of
|
|
123
|
+
the analysis/synthesis stream; it belongs to a specific logical
|
|
124
|
+
bitstream, but is independent from other vorbis_blocks belonging to
|
|
125
|
+
that logical bitstream. *************************************************/
|
|
126
|
+
|
|
127
|
+
struct alloc_chain{
|
|
128
|
+
void *ptr;
|
|
129
|
+
struct alloc_chain *next;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/* vorbis_info contains all the setup information specific to the
|
|
133
|
+
specific compression/decompression mode in progress (eg,
|
|
134
|
+
psychoacoustic settings, channel setup, options, codebook
|
|
135
|
+
etc). vorbis_info and substructures are in backends.h.
|
|
136
|
+
*********************************************************************/
|
|
137
|
+
|
|
138
|
+
/* the comments are not part of vorbis_info so that vorbis_info can be
|
|
139
|
+
static storage */
|
|
140
|
+
typedef struct vorbis_comment{
|
|
141
|
+
/* unlimited user comment fields. libvorbis writes 'libvorbis'
|
|
142
|
+
whatever vendor is set to in encode */
|
|
143
|
+
char **user_comments;
|
|
144
|
+
int *comment_lengths;
|
|
145
|
+
int comments;
|
|
146
|
+
char *vendor;
|
|
147
|
+
|
|
148
|
+
} vorbis_comment;
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
/* libvorbis encodes in two abstraction layers; first we perform DSP
|
|
152
|
+
and produce a packet (see docs/analysis.txt). The packet is then
|
|
153
|
+
coded into a framed OggSquish bitstream by the second layer (see
|
|
154
|
+
docs/framing.txt). Decode is the reverse process; we sync/frame
|
|
155
|
+
the bitstream and extract individual packets, then decode the
|
|
156
|
+
packet back into PCM audio.
|
|
157
|
+
|
|
158
|
+
The extra framing/packetizing is used in streaming formats, such as
|
|
159
|
+
files. Over the net (such as with UDP), the framing and
|
|
160
|
+
packetization aren't necessary as they're provided by the transport
|
|
161
|
+
and the streaming layer is not used */
|
|
162
|
+
|
|
163
|
+
/* Vorbis PRIMITIVES: general ***************************************/
|
|
164
|
+
|
|
165
|
+
extern void vorbis_info_init(vorbis_info *vi);
|
|
166
|
+
extern void vorbis_info_clear(vorbis_info *vi);
|
|
167
|
+
extern int vorbis_info_blocksize(vorbis_info *vi,int zo);
|
|
168
|
+
extern void vorbis_comment_init(vorbis_comment *vc);
|
|
169
|
+
extern void vorbis_comment_add(vorbis_comment *vc, const char *comment);
|
|
170
|
+
extern void vorbis_comment_add_tag(vorbis_comment *vc,
|
|
171
|
+
const char *tag, const char *contents);
|
|
172
|
+
extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count);
|
|
173
|
+
extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag);
|
|
174
|
+
extern void vorbis_comment_clear(vorbis_comment *vc);
|
|
175
|
+
|
|
176
|
+
extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
|
|
177
|
+
extern int vorbis_block_clear(vorbis_block *vb);
|
|
178
|
+
extern void vorbis_dsp_clear(vorbis_dsp_state *v);
|
|
179
|
+
extern double vorbis_granule_time(vorbis_dsp_state *v,
|
|
180
|
+
ogg_int64_t granulepos);
|
|
181
|
+
|
|
182
|
+
extern const char *vorbis_version_string(void);
|
|
183
|
+
|
|
184
|
+
/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/
|
|
185
|
+
|
|
186
|
+
extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
|
|
187
|
+
extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
|
|
188
|
+
extern int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
|
189
|
+
vorbis_comment *vc,
|
|
190
|
+
ogg_packet *op,
|
|
191
|
+
ogg_packet *op_comm,
|
|
192
|
+
ogg_packet *op_code);
|
|
193
|
+
extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
|
|
194
|
+
extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
|
|
195
|
+
extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
|
|
196
|
+
extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
|
|
197
|
+
|
|
198
|
+
extern int vorbis_bitrate_addblock(vorbis_block *vb);
|
|
199
|
+
extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,
|
|
200
|
+
ogg_packet *op);
|
|
201
|
+
|
|
202
|
+
/* Vorbis PRIMITIVES: synthesis layer *******************************/
|
|
203
|
+
extern int vorbis_synthesis_idheader(ogg_packet *op);
|
|
204
|
+
extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
|
|
205
|
+
ogg_packet *op);
|
|
206
|
+
|
|
207
|
+
extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
|
|
208
|
+
extern int vorbis_synthesis_restart(vorbis_dsp_state *v);
|
|
209
|
+
extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op);
|
|
210
|
+
extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op);
|
|
211
|
+
extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
|
|
212
|
+
extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm);
|
|
213
|
+
extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm);
|
|
214
|
+
extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
|
|
215
|
+
extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
|
|
216
|
+
|
|
217
|
+
extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag);
|
|
218
|
+
extern int vorbis_synthesis_halfrate_p(vorbis_info *v);
|
|
219
|
+
|
|
220
|
+
/* Vorbis ERRORS and return codes ***********************************/
|
|
221
|
+
|
|
222
|
+
#define OV_FALSE -1
|
|
223
|
+
#define OV_EOF -2
|
|
224
|
+
#define OV_HOLE -3
|
|
225
|
+
|
|
226
|
+
#define OV_EREAD -128
|
|
227
|
+
#define OV_EFAULT -129
|
|
228
|
+
#define OV_EIMPL -130
|
|
229
|
+
#define OV_EINVAL -131
|
|
230
|
+
#define OV_ENOTVORBIS -132
|
|
231
|
+
#define OV_EBADHEADER -133
|
|
232
|
+
#define OV_EVERSION -134
|
|
233
|
+
#define OV_ENOTAUDIO -135
|
|
234
|
+
#define OV_EBADPACKET -136
|
|
235
|
+
#define OV_EBADLINK -137
|
|
236
|
+
#define OV_ENOSEEK -138
|
|
237
|
+
|
|
238
|
+
#ifdef __cplusplus
|
|
239
|
+
}
|
|
240
|
+
#endif /* __cplusplus */
|
|
241
|
+
|
|
242
|
+
#endif
|
|
243
|
+
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
/********************************************************************
|
|
2
|
+
* *
|
|
3
|
+
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
|
4
|
+
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
|
5
|
+
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
|
6
|
+
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
|
7
|
+
* *
|
|
8
|
+
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
|
|
9
|
+
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
|
10
|
+
* *
|
|
11
|
+
********************************************************************
|
|
12
|
+
|
|
13
|
+
function: stdio-based convenience library for opening/seeking/decoding
|
|
14
|
+
last mod: $Id: vorbisfile.h 17182 2010-04-29 03:48:32Z xiphmont $
|
|
15
|
+
|
|
16
|
+
********************************************************************/
|
|
17
|
+
|
|
18
|
+
#ifndef _OV_FILE_H_
|
|
19
|
+
#define _OV_FILE_H_
|
|
20
|
+
|
|
21
|
+
#ifdef __cplusplus
|
|
22
|
+
extern "C"
|
|
23
|
+
{
|
|
24
|
+
#endif /* __cplusplus */
|
|
25
|
+
|
|
26
|
+
#include <stdio.h>
|
|
27
|
+
#include "codec.h"
|
|
28
|
+
|
|
29
|
+
/* The function prototypes for the callbacks are basically the same as for
|
|
30
|
+
* the stdio functions fread, fseek, fclose, ftell.
|
|
31
|
+
* The one difference is that the FILE * arguments have been replaced with
|
|
32
|
+
* a void * - this is to be used as a pointer to whatever internal data these
|
|
33
|
+
* functions might need. In the stdio case, it's just a FILE * cast to a void *
|
|
34
|
+
*
|
|
35
|
+
* If you use other functions, check the docs for these functions and return
|
|
36
|
+
* the right values. For seek_func(), you *MUST* return -1 if the stream is
|
|
37
|
+
* unseekable
|
|
38
|
+
*/
|
|
39
|
+
typedef struct {
|
|
40
|
+
size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource);
|
|
41
|
+
int (*seek_func) (void *datasource, ogg_int64_t offset, int whence);
|
|
42
|
+
int (*close_func) (void *datasource);
|
|
43
|
+
long (*tell_func) (void *datasource);
|
|
44
|
+
} ov_callbacks;
|
|
45
|
+
|
|
46
|
+
#ifndef OV_EXCLUDE_STATIC_CALLBACKS
|
|
47
|
+
|
|
48
|
+
/* a few sets of convenient callbacks, especially for use under
|
|
49
|
+
* Windows where ov_open_callbacks() should always be used instead of
|
|
50
|
+
* ov_open() to avoid problems with incompatible crt.o version linking
|
|
51
|
+
* issues. */
|
|
52
|
+
|
|
53
|
+
static int _ov_header_fseek_wrap(FILE *f,ogg_int64_t off,int whence){
|
|
54
|
+
if(f==NULL)return(-1);
|
|
55
|
+
|
|
56
|
+
#ifdef __MINGW32__
|
|
57
|
+
return fseeko64(f,off,whence);
|
|
58
|
+
#elif defined (_WIN32)
|
|
59
|
+
return _fseeki64(f,off,whence);
|
|
60
|
+
#else
|
|
61
|
+
return fseek(f,off,whence);
|
|
62
|
+
#endif
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* These structs below (OV_CALLBACKS_DEFAULT etc) are defined here as
|
|
66
|
+
* static data. That means that every file which includes this header
|
|
67
|
+
* will get its own copy of these structs whether it uses them or
|
|
68
|
+
* not unless it #defines OV_EXCLUDE_STATIC_CALLBACKS.
|
|
69
|
+
* These static symbols are essential on platforms such as Windows on
|
|
70
|
+
* which several different versions of stdio support may be linked to
|
|
71
|
+
* by different DLLs, and we need to be certain we know which one
|
|
72
|
+
* we're using (the same one as the main application).
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
static ov_callbacks OV_CALLBACKS_DEFAULT = {
|
|
76
|
+
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
|
77
|
+
(int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap,
|
|
78
|
+
(int (*)(void *)) fclose,
|
|
79
|
+
(long (*)(void *)) ftell
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
static ov_callbacks OV_CALLBACKS_NOCLOSE = {
|
|
83
|
+
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
|
84
|
+
(int (*)(void *, ogg_int64_t, int)) _ov_header_fseek_wrap,
|
|
85
|
+
(int (*)(void *)) NULL,
|
|
86
|
+
(long (*)(void *)) ftell
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
static ov_callbacks OV_CALLBACKS_STREAMONLY = {
|
|
90
|
+
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
|
91
|
+
(int (*)(void *, ogg_int64_t, int)) NULL,
|
|
92
|
+
(int (*)(void *)) fclose,
|
|
93
|
+
(long (*)(void *)) NULL
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
static ov_callbacks OV_CALLBACKS_STREAMONLY_NOCLOSE = {
|
|
97
|
+
(size_t (*)(void *, size_t, size_t, void *)) fread,
|
|
98
|
+
(int (*)(void *, ogg_int64_t, int)) NULL,
|
|
99
|
+
(int (*)(void *)) NULL,
|
|
100
|
+
(long (*)(void *)) NULL
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
#endif
|
|
104
|
+
|
|
105
|
+
#define NOTOPEN 0
|
|
106
|
+
#define PARTOPEN 1
|
|
107
|
+
#define OPENED 2
|
|
108
|
+
#define STREAMSET 3
|
|
109
|
+
#define INITSET 4
|
|
110
|
+
|
|
111
|
+
typedef struct OggVorbis_File {
|
|
112
|
+
void *datasource; /* Pointer to a FILE *, etc. */
|
|
113
|
+
int seekable;
|
|
114
|
+
ogg_int64_t offset;
|
|
115
|
+
ogg_int64_t end;
|
|
116
|
+
ogg_sync_state oy;
|
|
117
|
+
|
|
118
|
+
/* If the FILE handle isn't seekable (eg, a pipe), only the current
|
|
119
|
+
stream appears */
|
|
120
|
+
int links;
|
|
121
|
+
ogg_int64_t *offsets;
|
|
122
|
+
ogg_int64_t *dataoffsets;
|
|
123
|
+
long *serialnos;
|
|
124
|
+
ogg_int64_t *pcmlengths; /* overloaded to maintain binary
|
|
125
|
+
compatibility; x2 size, stores both
|
|
126
|
+
beginning and end values */
|
|
127
|
+
vorbis_info *vi;
|
|
128
|
+
vorbis_comment *vc;
|
|
129
|
+
|
|
130
|
+
/* Decoding working state local storage */
|
|
131
|
+
ogg_int64_t pcm_offset;
|
|
132
|
+
int ready_state;
|
|
133
|
+
long current_serialno;
|
|
134
|
+
int current_link;
|
|
135
|
+
|
|
136
|
+
double bittrack;
|
|
137
|
+
double samptrack;
|
|
138
|
+
|
|
139
|
+
ogg_stream_state os; /* take physical pages, weld into a logical
|
|
140
|
+
stream of packets */
|
|
141
|
+
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
|
|
142
|
+
vorbis_block vb; /* local working space for packet->PCM decode */
|
|
143
|
+
|
|
144
|
+
ov_callbacks callbacks;
|
|
145
|
+
|
|
146
|
+
} OggVorbis_File;
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
extern int ov_clear(OggVorbis_File *vf);
|
|
150
|
+
extern int ov_fopen(const char *path,OggVorbis_File *vf);
|
|
151
|
+
extern int ov_open(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes);
|
|
152
|
+
extern int ov_open_callbacks(void *datasource, OggVorbis_File *vf,
|
|
153
|
+
const char *initial, long ibytes, ov_callbacks callbacks);
|
|
154
|
+
|
|
155
|
+
extern int ov_test(FILE *f,OggVorbis_File *vf,const char *initial,long ibytes);
|
|
156
|
+
extern int ov_test_callbacks(void *datasource, OggVorbis_File *vf,
|
|
157
|
+
const char *initial, long ibytes, ov_callbacks callbacks);
|
|
158
|
+
extern int ov_test_open(OggVorbis_File *vf);
|
|
159
|
+
|
|
160
|
+
extern long ov_bitrate(OggVorbis_File *vf,int i);
|
|
161
|
+
extern long ov_bitrate_instant(OggVorbis_File *vf);
|
|
162
|
+
extern long ov_streams(OggVorbis_File *vf);
|
|
163
|
+
extern long ov_seekable(OggVorbis_File *vf);
|
|
164
|
+
extern long ov_serialnumber(OggVorbis_File *vf,int i);
|
|
165
|
+
|
|
166
|
+
extern ogg_int64_t ov_raw_total(OggVorbis_File *vf,int i);
|
|
167
|
+
extern ogg_int64_t ov_pcm_total(OggVorbis_File *vf,int i);
|
|
168
|
+
extern double ov_time_total(OggVorbis_File *vf,int i);
|
|
169
|
+
|
|
170
|
+
extern int ov_raw_seek(OggVorbis_File *vf,ogg_int64_t pos);
|
|
171
|
+
extern int ov_pcm_seek(OggVorbis_File *vf,ogg_int64_t pos);
|
|
172
|
+
extern int ov_pcm_seek_page(OggVorbis_File *vf,ogg_int64_t pos);
|
|
173
|
+
extern int ov_time_seek(OggVorbis_File *vf,double pos);
|
|
174
|
+
extern int ov_time_seek_page(OggVorbis_File *vf,double pos);
|
|
175
|
+
|
|
176
|
+
extern int ov_raw_seek_lap(OggVorbis_File *vf,ogg_int64_t pos);
|
|
177
|
+
extern int ov_pcm_seek_lap(OggVorbis_File *vf,ogg_int64_t pos);
|
|
178
|
+
extern int ov_pcm_seek_page_lap(OggVorbis_File *vf,ogg_int64_t pos);
|
|
179
|
+
extern int ov_time_seek_lap(OggVorbis_File *vf,double pos);
|
|
180
|
+
extern int ov_time_seek_page_lap(OggVorbis_File *vf,double pos);
|
|
181
|
+
|
|
182
|
+
extern ogg_int64_t ov_raw_tell(OggVorbis_File *vf);
|
|
183
|
+
extern ogg_int64_t ov_pcm_tell(OggVorbis_File *vf);
|
|
184
|
+
extern double ov_time_tell(OggVorbis_File *vf);
|
|
185
|
+
|
|
186
|
+
extern vorbis_info *ov_info(OggVorbis_File *vf,int link);
|
|
187
|
+
extern vorbis_comment *ov_comment(OggVorbis_File *vf,int link);
|
|
188
|
+
|
|
189
|
+
extern long ov_read_float(OggVorbis_File *vf,float ***pcm_channels,int samples,
|
|
190
|
+
int *bitstream);
|
|
191
|
+
extern long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,
|
|
192
|
+
int bigendianp,int word,int sgned,int *bitstream,
|
|
193
|
+
void (*filter)(float **pcm,long channels,long samples,void *filter_param),void *filter_param);
|
|
194
|
+
extern long ov_read(OggVorbis_File *vf,char *buffer,int length,
|
|
195
|
+
int bigendianp,int word,int sgned,int *bitstream);
|
|
196
|
+
extern int ov_crosslap(OggVorbis_File *vf1,OggVorbis_File *vf2);
|
|
197
|
+
|
|
198
|
+
extern int ov_halfrate(OggVorbis_File *vf,int flag);
|
|
199
|
+
extern int ov_halfrate_p(OggVorbis_File *vf);
|
|
200
|
+
|
|
201
|
+
#ifdef __cplusplus
|
|
202
|
+
}
|
|
203
|
+
#endif /* __cplusplus */
|
|
204
|
+
|
|
205
|
+
#endif
|
|
206
|
+
|
data/mpg123/AUTHORS
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
This is an attempt to give credit to the people who contributed in some way to the mpg123 project.
|
|
2
|
+
There are names and email addresses listed. Please use these addresses only to contact contributors with some question about their mpg123 contribution.
|
|
3
|
+
You are explicitly not allowed to send them unwanted business offers or to question the quality of their sex life.
|
|
4
|
+
--------------------
|
|
5
|
+
|
|
6
|
+
Current maintainers with various sorts of contributions:
|
|
7
|
+
Thomas Orgis <thomas@orgis.org>
|
|
8
|
+
Patrick Dehne <patrick@steidle.net>
|
|
9
|
+
Jonathan Yong <10walls@gmail.com>
|
|
10
|
+
|
|
11
|
+
Co-initiator of the revived mpg123 project, but not that involved anymore:
|
|
12
|
+
Nicholas J Humfrey <njh@ecs.soton.ac.uk>
|
|
13
|
+
|
|
14
|
+
Generic address pointing to the current maintainer (hopefully still works in future in case maintainership will change again): <maintainer@mpg123.org>
|
|
15
|
+
|
|
16
|
+
The creator: Michael Hipp (email: hippm@informatik.uni-tuebingen.de - please bother maintainers first)
|
|
17
|
+
|
|
18
|
+
Contributions/ideas Thomas Orgis era (includes backports from mhipp trunk):
|
|
19
|
+
|
|
20
|
+
Dan McGee <dpmcgee@gmail.com>: various patches (also for test suite)
|
|
21
|
+
Jonathan Yong (jon_y) <10walls@gmail.com>: win32 hacking
|
|
22
|
+
Malcolm Boczek <MBoczek@terraindustries.com>: Common language runtime wrapper
|
|
23
|
+
Elbert Pol (TeLLie) <elbert.pol@gmail.com>: OS/2 port fixup
|
|
24
|
+
Jeroen Valkonet <jvalkon@xs4all.nl>: motivate pitch control, suggestive patch for pitch command in generic control interface
|
|
25
|
+
Andy Hefner <ahefner@gmail.com>: patch for that second UTF16 issue
|
|
26
|
+
Taihei Monma <tmkk@mac.com>: A whole lot of new/improved assembler code, including Altivec!
|
|
27
|
+
Christian Weisgerber <naddy@openbsd.org>, Brad Smith: sndio output
|
|
28
|
+
Patrick Dehne (P4tr3ck) <patrick@steidle.net>: more MSVC++ porting, patch to handle missing bit reservoirs
|
|
29
|
+
Thorsten Glaser <tg@mirbsd.de>: icy2utf8, suggest utf8 locale stuff
|
|
30
|
+
Dan Smith <dan@algenta.com>: ABI fixes for ensuring stack alignment (esp. for MinGW-built DLL with MSVC)
|
|
31
|
+
Michael Ryzhykh <mclroy@gmail.com>: mpg123.spec.in
|
|
32
|
+
Stefan Lenselink <Stefan@lenselink.org>: initial aRts output
|
|
33
|
+
Sergej Kvachonok <ravenexp@gmail.com>: win32 audio rewrite
|
|
34
|
+
Winston: SunOS-4.1.4/gcc-2.7.0 testing and suggestions for fixes (legacy Makefile, integer type headers)
|
|
35
|
+
Mika Tiainen: pointing out the fix for the UTF to ASCII filtering of tags to actually work
|
|
36
|
+
Nick Kurshev <nickols_k@mail.ru>: extended 3dnow (from mplayer)
|
|
37
|
+
Zuxy Meng <zuxy.meng@gmail.com>: SSE (from mplayer)
|
|
38
|
+
Honza <cundrak@quick.cz>: idea and prototype patch for ICY meta data support
|
|
39
|
+
Petr Baudis <pasky@ucw.cz>: patches: term sigcont, id3 display unicode fallback and condensed output
|
|
40
|
+
Petr Salinger <Petr.Salinger@seznam.cz>: i486 enhancement
|
|
41
|
+
mpdavig@users.sourceforge.net: linux-ppc-nas Makefile.legacy entry
|
|
42
|
+
Adrian Bacon <adrian.bacon@xs4all.nl>: patched decode_i586_dither (noise shaped float/int rounding)
|
|
43
|
+
Cool Feet Audio project <nutcase@dtfm.org>: realtime equalizer control
|
|
44
|
+
Steve Grundell <www@grundell.u-net.com>: clean stdout in control mode with stdout decoding
|
|
45
|
+
Romain Dolbeau <romain@dolbeau.org>: Altivec support (taken from mplayer)
|
|
46
|
+
higway <higway@mednet.md>: MMX Patch
|
|
47
|
+
Clemens Ladisch <clemens@ladisch.de>: ALSA 0.9/1.0 support
|
|
48
|
+
|
|
49
|
+
Debian Daniel Kobras <kobras@debian.org> era:
|
|
50
|
+
|
|
51
|
+
Steve Kemp <skx@debian.org>
|
|
52
|
+
Dan Olson <theoddone33@icculus.org>
|
|
53
|
+
Syuuhei Kashiyama <squash@mb.kcom.ne.jp>
|
|
54
|
+
Rupert Levene <rupert.debian@hotpop.com>
|
|
55
|
+
Andreas Dilger <adilger@turbolinux.com>
|
|
56
|
+
Erik B. Andersen <andersee@debian.org>
|
|
57
|
+
Chris Butler <chrisb@debian.org>
|
|
58
|
+
Martin Sjogren <md9ms@mdstud.chalmers.se>
|
|
59
|
+
Chet Hosey <chosey@budapress.com>
|
|
60
|
+
Roland Rosenfeld <roland@spinnaker.de>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
Debian Colin Watson <cjwatson@debian.org> era:
|
|
64
|
+
|
|
65
|
+
Helge Deller <deller@gmx.de>
|
|
66
|
+
Chet Hosey <chosey@budapress.com>
|
|
67
|
+
Christopher C. Chimelis <chris@debian.org>
|
|
68
|
+
Roland Rosenfeld <roland@spinnaker.de>
|
|
69
|
+
Marcelo E. Magallon <mmagallo@debian.org>
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
Initial Debianers:
|
|
73
|
+
|
|
74
|
+
Tommi Virtanen <tv@debian.org>
|
|
75
|
+
Paul Haggart <phaggart@debian.org>
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
Contributions/ideas Michael Hipp era:
|
|
79
|
+
|
|
80
|
+
Mikko Tommila: DCT9
|
|
81
|
+
Oliver Fromme <oliver.fromme@heim3.tu-clausthal.de>
|
|
82
|
+
MPEG Software Simulation Group: reference decoder package
|
|
83
|
+
Tobias Bading: idea for DCT64 in subband synthesis from maplay package
|
|
84
|
+
Jeff Tsay and Mikko Tommila: MDCT36 from maplay package
|
|
85
|
+
Philipp Knirsch <phil@mpik-tueb.mpg.de>: DCT36/manual unroll idea
|
|
86
|
+
Thomas Woerner: SGI Audio
|
|
87
|
+
Damien Clermonte: HP-UX audio fixes
|
|
88
|
+
Niclas Lindstrom <nil@wineasy.se>: OS2 port
|
|
89
|
+
Stefan Bieschewski <stb@acm.org>: Pentium optimizations, decode_i586.s
|
|
90
|
+
Martin Denn <mdenn@unix-ag.uni-kl.de>: NAS port
|
|
91
|
+
Niklas Beisert <nbeisert@physik.tu-muenchen.de>: MPEG 2.5 tables
|
|
92
|
+
<mycroft@NetBSD.ORG> and <augustss@cs.chalmers.se>: NetBSD Patch(es)
|
|
93
|
+
Kevin Brintnall <kbrint@visi.com>: BSD patch
|
|
94
|
+
Tony Million: win32 port
|
|
95
|
+
Steven Tiger Lang: advanced shuffle
|
|
96
|
+
Eric B. Mitchell: esd port
|
|
97
|
+
Ryan R. Prosser <prosser@geocities.com>: esd port for Solaris
|
|
98
|
+
Andreas Neuhaus: initial generic control interface
|
|
99
|
+
|
|
100
|
+
(additionally fetched from changelog:)
|
|
101
|
+
|
|
102
|
+
Ralf Hildebrandt <R.Hildebrandt@TU-BS.DE>: audio_alib changes
|
|
103
|
+
<sms@moe.2bsd.com>: BSDOS 4.0 with gcc added to Makefile
|
|
104
|
+
Bertrand Petit <elrond@phoe.netdev.net>: frontend changes
|
|
105
|
+
Erik Mouw <J.A.K.Mouw@its.tudelft.nl>: SGI audio fix for non RAD machines
|
|
106
|
+
Daniel O'Connor <darius@guppy.dons.net.au>: freebsd-esd make-entry
|
|
107
|
+
D. Skarda <0rfelyus@atrey.karlin.mff.cuni.cz>: enhanced head_check
|
|
108
|
+
Wilson, Jeff D <jeff.wilson@wilcom.com>: xterm-title
|
|
109
|
+
Robert Bihlmeyer <robbe@orcus.priv.at>: esd changes
|
|
110
|
+
Hannu Napari's <Hannu.Napari@hut.fi>: SGI audio patches
|
|
111
|
+
<Juergen.Schoew@unix-ag.uni-siegen.de>: native AIX support
|
|
112
|
+
<psst@euskalnet.net>: playlist patch
|
|
113
|
+
Gilles Zunino <Gilles.Zunino@hei.fupl.asso.fr>: SGI audio patches
|
|
114
|
+
Matthew Parslow <roy@alpha.alphalink.com.au>: esdserver patch
|
|
115
|
+
<dlux@dlux.sch.bme.hu>: equalizer patch (equalfile setting)
|
|
116
|
+
Ducroquet Erwan <ducroque@ufr-info-p7.ibp.fr>: HPUX/ALib support
|
|
117
|
+
Shane Wegner <shane@CM.NU>: genrepatch
|
|
118
|
+
Samuel Audet <guardia@step.polymtl.ca>: wav-File patch
|
|
119
|
+
"J. Dean Brederson" <jdb@cs.utah.edu>: SGI-RAD support
|
|
120
|
+
Chou Ye-chi <is84002@cis.nctu.edu.tw>: sajberplay/FreeBSD patch
|
|
121
|
+
Fabrice Bellard <bellard@email.enst.fr>: 486 optimizations
|
|
122
|
+
A. Hermansen <ahermans@vf.telia.no> and J. Kysela <perex@jcu.cz>: ALSA output
|
|
123
|
+
KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp>: K6-3DNow
|
|
124
|
+
Petr Stehlik <stehlik@cas3.zlin.vutbr.cz>: MINT
|
|
125
|
+
Andy <andy@snoogie.demon.co.uk>: float2int speed up proposal
|
|
126
|
+
Brian Foutz <foutz@anise.ee.cornell.edu>: TK3Play
|
|
127
|
+
Thomas Niederreiter <tn@tarantel.rz.fh-muenchen.de>: RIFF header fix
|
|
128
|
+
Stefan Gybas <cab@studbox.uni-stuttgart.de>: m68k patch
|
|
129
|
+
Grant Erickson <eric0139@tc.umn.edu>: Linux PPC patch
|
|
130
|
+
Peter Berger <peterb@hoopoe.psc.edu>: BSDi patch
|
|
131
|
+
Henrik P Johnson <king@one.se>: HTTP auth
|
|
132
|
+
Steven Tiger Lang <tiger@tyger.org>: advanced shuffle
|
|
133
|
+
"Brian J. Swetland" <swetland@uiuc.edu>: front-end (remote) patch
|
|
134
|
+
<leo@zycad.com>
|
|
135
|
+
Tillmann Steinbrecher <tst@gmx.de>: shuffle patch
|
|
136
|
+
M.Stekelenburg <m.stekelenburg@student.utwente.nl>: i386-getbits
|
|
137
|
+
Antti Andreimann <anttix@cyberix.edu.ee>: outburst patch
|
|
138
|
+
Hur TaeSung <saturn@arari.snu.ac.kr>: 'http accept' patch
|
|
139
|
+
|
|
140
|
+
(from post-0.59 changes that yet have to go into new trunk:)
|
|
141
|
+
|
|
142
|
+
Hans Schwengeler <schweng@astro.unibas.ch>: audio_dec additions
|
|
143
|
+
Wojciech Bara�ski's Mp3Play (check the tools folder): Mp3Play frontend
|
|
144
|
+
Daniel Koukola: audio_oss.c patch
|
|
145
|
+
Munechika SUMIKAWA <sumikawa@ebina.hitachi.co.jp>: IPv6
|
|
146
|
+
TEMNOTA <temnota@kmv.ru>: HTTP,FTP patch/playlist fix
|
|
147
|
+
Peter Surda <shurdeek@panorama.sth.ac.at>: VBR patch
|
|
148
|
+
Ben <ben@blaukopf.com>: ARM startup time improvements
|
|
149
|
+
Dave MacKenzie <djm@pix.net>: init_output() patch
|
|
150
|
+
pasky's <pasky@ju.cz>: close-on-stop patch
|