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,435 @@
|
|
|
1
|
+
/*
|
|
2
|
+
replacereaderclr: test program for mpg123clr, showing how to use ReplaceReader in a CLR enviro.
|
|
3
|
+
copyright 2009 by the mpg123 project - free software under the terms of the LGPL 2.1
|
|
4
|
+
see COPYING and AUTHORS files in distribution or http://mpg123.org
|
|
5
|
+
|
|
6
|
+
initially written by Malcolm Boczek
|
|
7
|
+
|
|
8
|
+
not to be used as an example of good coding practices, note the total absence of error handling!!!
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/*
|
|
12
|
+
1.9.0.0 24-Sep-09 Function names harmonized with libmpg123 (mb)
|
|
13
|
+
1.12.0.0 14-Apr-10 Added ReplaceReaderHandle sample code (mb)
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
using System;
|
|
17
|
+
using System.Collections.Generic;
|
|
18
|
+
using System.Linq;
|
|
19
|
+
using System.Text;
|
|
20
|
+
|
|
21
|
+
using System.IO; // for ReplaceReaderHandle example
|
|
22
|
+
using System.Runtime.InteropServices; // for ReplaceReaderHandle example
|
|
23
|
+
|
|
24
|
+
using mpg123clr;
|
|
25
|
+
|
|
26
|
+
namespace ReplaceReaderclr
|
|
27
|
+
{
|
|
28
|
+
class Program
|
|
29
|
+
{
|
|
30
|
+
private unsafe static int MyReadFunc(int a, void* b, uint c)
|
|
31
|
+
{
|
|
32
|
+
// need to call posix read function here...
|
|
33
|
+
|
|
34
|
+
// PosixRead is an example, substitute your replacement function here.
|
|
35
|
+
int ret = mpg123.PosixRead(a, b, c);
|
|
36
|
+
|
|
37
|
+
return ret;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
private static int MySeekFunc(int a, int b, int c)
|
|
41
|
+
{
|
|
42
|
+
// NOTE: Largefile conflict with use of "int" position values.
|
|
43
|
+
// Convert to long if off_t is defined as long long
|
|
44
|
+
|
|
45
|
+
// need to call posix lseek function here...
|
|
46
|
+
|
|
47
|
+
// PosixSeek is an example, substitute your replacement function here.
|
|
48
|
+
int ret = mpg123.PosixSeek(a, b, c);
|
|
49
|
+
|
|
50
|
+
return ret;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private unsafe static int MyHandleReadFunc(void* a, void* b, uint c)
|
|
54
|
+
{
|
|
55
|
+
GCHandle gch = GCHandle.FromIntPtr((IntPtr)a);
|
|
56
|
+
BinaryReader br = (BinaryReader)gch.Target;
|
|
57
|
+
|
|
58
|
+
byte[] buf = br.ReadBytes((int)c);
|
|
59
|
+
|
|
60
|
+
// NOTE: no discernible performance difference between Marshal.Copy and ptr++ loop
|
|
61
|
+
Marshal.Copy(buf, 0, (IntPtr)b, buf.Length);
|
|
62
|
+
|
|
63
|
+
// byte* ptr = (byte*)b;
|
|
64
|
+
// for (int i = 0, l = buf.Length; i < l; i++)
|
|
65
|
+
// *(ptr++) = buf[i];
|
|
66
|
+
|
|
67
|
+
return buf.Length;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
private unsafe static int MyHandleSeekFunc(void* a, int b, int c)
|
|
71
|
+
{
|
|
72
|
+
// NOTE: Largefile conflict with use of "int" position values.
|
|
73
|
+
// Convert to long if off_t is defined as long long
|
|
74
|
+
|
|
75
|
+
GCHandle gch = GCHandle.FromIntPtr((IntPtr)a);
|
|
76
|
+
BinaryReader br = (BinaryReader)gch.Target;
|
|
77
|
+
|
|
78
|
+
return (int)br.BaseStream.Seek(b, (SeekOrigin)c);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private unsafe static void MyHandleCleanFunc(void* a)
|
|
82
|
+
{
|
|
83
|
+
GCHandle gch = GCHandle.FromIntPtr((IntPtr)a);
|
|
84
|
+
BinaryReader br = (BinaryReader)gch.Target;
|
|
85
|
+
|
|
86
|
+
br.Close();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static unsafe void Main(string[] args)
|
|
90
|
+
{
|
|
91
|
+
if (args.Length == 0)
|
|
92
|
+
{
|
|
93
|
+
Console.WriteLine("I need a file to work on:\n\nPress any key to exit.");
|
|
94
|
+
while (Console.Read() == 0) ;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
mpg123clr.mpg.ErrorCode err;
|
|
98
|
+
|
|
99
|
+
string filename = args[0];
|
|
100
|
+
|
|
101
|
+
err = mpg123.mpg123_init();
|
|
102
|
+
Console.WriteLine("Init:");
|
|
103
|
+
|
|
104
|
+
RunReplaceReaderTest(filename);
|
|
105
|
+
RunReplaceReaderHandleTest(filename);
|
|
106
|
+
RunFrameByFrameTest(filename);
|
|
107
|
+
|
|
108
|
+
Console.WriteLine("\nPress any key to exit:");
|
|
109
|
+
while (Console.Read() == 0) ;
|
|
110
|
+
|
|
111
|
+
mpg123.mpg123_exit();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
static unsafe void RunReplaceReaderTest(string filename)
|
|
115
|
+
{
|
|
116
|
+
mpg123clr.mpg.ErrorCode err;
|
|
117
|
+
|
|
118
|
+
mpg123 mp = new mpg123();
|
|
119
|
+
err = mp.mpg123_new();
|
|
120
|
+
|
|
121
|
+
// ReplaceReader example
|
|
122
|
+
mpg123clr.mpg123.ReadDelegate rdel = MyReadFunc;
|
|
123
|
+
mpg123clr.mpg123.SeekDelegate sdel = MySeekFunc;
|
|
124
|
+
err = mp.mpg123_replace_reader(rdel, sdel);
|
|
125
|
+
|
|
126
|
+
//err = mp.mpg123_open(args[0]);
|
|
127
|
+
err = mp.mpg123_open(filename);
|
|
128
|
+
|
|
129
|
+
if (err != mpg123clr.mpg.ErrorCode.ok)
|
|
130
|
+
{
|
|
131
|
+
Console.WriteLine("Error: " + mp.mpg123_strerror());
|
|
132
|
+
}
|
|
133
|
+
else
|
|
134
|
+
{
|
|
135
|
+
Console.WriteLine("Open:");
|
|
136
|
+
|
|
137
|
+
// Show available decoders
|
|
138
|
+
string[] Decoders = mp.mpg123_decoders();
|
|
139
|
+
|
|
140
|
+
if (Decoders.Length > 0)
|
|
141
|
+
{
|
|
142
|
+
Console.WriteLine("\nDecoders:");
|
|
143
|
+
foreach (string str in Decoders) Console.WriteLine(str);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Show supported decoders
|
|
147
|
+
string[] supDecoders = mp.mpg123_supported_decoders();
|
|
148
|
+
|
|
149
|
+
if (supDecoders.Length > 0)
|
|
150
|
+
{
|
|
151
|
+
Console.WriteLine("\nSupported Decoders:");
|
|
152
|
+
foreach (string str in supDecoders) Console.WriteLine(str);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// Show actual decoder
|
|
156
|
+
Console.WriteLine("\nDecoder: " + mp.mpg123_current_decoder());
|
|
157
|
+
|
|
158
|
+
// Show estimated file length
|
|
159
|
+
Console.WriteLine("\nLength Estimate: " + mp.mpg123_length().ToString());
|
|
160
|
+
|
|
161
|
+
// Scan - gets actual details including ID3v2 and Frame offsets
|
|
162
|
+
err = mp.mpg123_scan();
|
|
163
|
+
|
|
164
|
+
// Show actual file length
|
|
165
|
+
if (err == mpg123clr.mpg.ErrorCode.ok) Console.WriteLine("Length Actual : " + mp.mpg123_length().ToString());
|
|
166
|
+
|
|
167
|
+
// Get ID3 data
|
|
168
|
+
mpg123clr.id3.mpg123id3v1 iv1;
|
|
169
|
+
mpg123clr.id3.mpg123id3v2 iv2;
|
|
170
|
+
err = mp.mpg123_id3(out iv1, out iv2);
|
|
171
|
+
|
|
172
|
+
// Show ID3v2 data
|
|
173
|
+
Console.WriteLine("\nTitle : " + iv2.title);
|
|
174
|
+
Console.WriteLine("Artist : " + iv2.artist);
|
|
175
|
+
Console.WriteLine("Album : " + iv2.album);
|
|
176
|
+
Console.WriteLine("Comment: " + iv2.comment);
|
|
177
|
+
Console.WriteLine("Year : " + iv2.year);
|
|
178
|
+
|
|
179
|
+
// Demo seek (back to start of file - note: scan should already have done this)
|
|
180
|
+
long pos = mp.mpg123_seek(0, System.IO.SeekOrigin.Begin);
|
|
181
|
+
|
|
182
|
+
long[] frameindex;
|
|
183
|
+
long step;
|
|
184
|
+
err = mp.mpg123_index(out frameindex, out step);
|
|
185
|
+
|
|
186
|
+
if (err == mpg123clr.mpg.ErrorCode.ok)
|
|
187
|
+
{
|
|
188
|
+
Console.WriteLine("\nFrameIndex:");
|
|
189
|
+
foreach (long idx in frameindex)
|
|
190
|
+
{
|
|
191
|
+
// Console.WriteLine(idx.ToString());
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
int num;
|
|
196
|
+
uint cnt;
|
|
197
|
+
IntPtr audio;
|
|
198
|
+
|
|
199
|
+
// Walk the file - effectively decode the data without using it...
|
|
200
|
+
Console.WriteLine("\nWalking : " + iv2.title);
|
|
201
|
+
DateTime dte, dts = DateTime.Now;
|
|
202
|
+
|
|
203
|
+
while (err == mpg123clr.mpg.ErrorCode.ok || err == mpg123clr.mpg.ErrorCode.new_format)
|
|
204
|
+
{
|
|
205
|
+
err = mp.mpg123_decode_frame(out num, out audio, out cnt);
|
|
206
|
+
|
|
207
|
+
// do something with "audio" here....
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
dte = DateTime.Now;
|
|
211
|
+
|
|
212
|
+
TimeSpan ts = dte - dts;
|
|
213
|
+
Console.WriteLine("Duration: " + ts.ToString());
|
|
214
|
+
|
|
215
|
+
mp.mpg123_close();
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
mp.Dispose();
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
static unsafe void RunReplaceReaderHandleTest(string filename)
|
|
222
|
+
{
|
|
223
|
+
mpg123clr.mpg.ErrorCode err;
|
|
224
|
+
|
|
225
|
+
mpg123 mp = new mpg123();
|
|
226
|
+
err = mp.mpg123_new();
|
|
227
|
+
|
|
228
|
+
// ReplaceReader example
|
|
229
|
+
mpg123clr.mpg123.ReadHandleDelegate rdel = MyHandleReadFunc;
|
|
230
|
+
mpg123clr.mpg123.SeekHandleDelegate sdel = MyHandleSeekFunc;
|
|
231
|
+
mpg123clr.mpg123.CleanupHandleDelegate cdel = MyHandleCleanFunc;
|
|
232
|
+
err = mp.mpg123_replace_reader_handle(rdel, sdel, cdel);
|
|
233
|
+
|
|
234
|
+
//err = mp.mpg123_open(args[0]);
|
|
235
|
+
BinaryReader br = new BinaryReader(File.OpenRead(filename));
|
|
236
|
+
|
|
237
|
+
err = mp.mpg123_open_handle(br);
|
|
238
|
+
|
|
239
|
+
if (err != mpg123clr.mpg.ErrorCode.ok)
|
|
240
|
+
{
|
|
241
|
+
Console.WriteLine("Error: " + mp.mpg123_strerror());
|
|
242
|
+
}
|
|
243
|
+
else
|
|
244
|
+
{
|
|
245
|
+
Console.WriteLine("Open:");
|
|
246
|
+
|
|
247
|
+
// Show available decoders
|
|
248
|
+
string[] Decoders = mp.mpg123_decoders();
|
|
249
|
+
|
|
250
|
+
if (Decoders.Length > 0)
|
|
251
|
+
{
|
|
252
|
+
Console.WriteLine("\nDecoders:");
|
|
253
|
+
foreach (string str in Decoders) Console.WriteLine(str);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Show supported decoders
|
|
257
|
+
string[] supDecoders = mp.mpg123_supported_decoders();
|
|
258
|
+
|
|
259
|
+
if (supDecoders.Length > 0)
|
|
260
|
+
{
|
|
261
|
+
Console.WriteLine("\nSupported Decoders:");
|
|
262
|
+
foreach (string str in supDecoders) Console.WriteLine(str);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Show actual decoder
|
|
266
|
+
Console.WriteLine("\nDecoder: " + mp.mpg123_current_decoder());
|
|
267
|
+
|
|
268
|
+
// Show estimated file length
|
|
269
|
+
Console.WriteLine("\nLength Estimate: " + mp.mpg123_length().ToString());
|
|
270
|
+
|
|
271
|
+
// Scan - gets actual details including ID3v2 and Frame offsets
|
|
272
|
+
err = mp.mpg123_scan();
|
|
273
|
+
|
|
274
|
+
// Show actual file length
|
|
275
|
+
if (err == mpg123clr.mpg.ErrorCode.ok) Console.WriteLine("Length Actual : " + mp.mpg123_length().ToString());
|
|
276
|
+
|
|
277
|
+
// Get ID3 data
|
|
278
|
+
mpg123clr.id3.mpg123id3v1 iv1;
|
|
279
|
+
mpg123clr.id3.mpg123id3v2 iv2;
|
|
280
|
+
err = mp.mpg123_id3(out iv1, out iv2);
|
|
281
|
+
|
|
282
|
+
// Show ID3v2 data
|
|
283
|
+
Console.WriteLine("\nTitle : " + iv2.title);
|
|
284
|
+
Console.WriteLine("Artist : " + iv2.artist);
|
|
285
|
+
Console.WriteLine("Album : " + iv2.album);
|
|
286
|
+
Console.WriteLine("Comment: " + iv2.comment);
|
|
287
|
+
Console.WriteLine("Year : " + iv2.year);
|
|
288
|
+
|
|
289
|
+
// Demo seek (back to start of file - note: scan should already have done this)
|
|
290
|
+
long pos = mp.mpg123_seek(0, System.IO.SeekOrigin.Begin);
|
|
291
|
+
|
|
292
|
+
long[] frameindex;
|
|
293
|
+
long step;
|
|
294
|
+
err = mp.mpg123_index(out frameindex, out step);
|
|
295
|
+
|
|
296
|
+
if (err == mpg123clr.mpg.ErrorCode.ok)
|
|
297
|
+
{
|
|
298
|
+
Console.WriteLine("\nFrameIndex:");
|
|
299
|
+
foreach (long idx in frameindex)
|
|
300
|
+
{
|
|
301
|
+
// Console.WriteLine(idx.ToString());
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
int num;
|
|
306
|
+
uint cnt;
|
|
307
|
+
IntPtr audio;
|
|
308
|
+
|
|
309
|
+
// Walk the file - effectively decode the data without using it...
|
|
310
|
+
Console.WriteLine("\nWalking : " + iv2.title);
|
|
311
|
+
DateTime dte, dts = DateTime.Now;
|
|
312
|
+
|
|
313
|
+
while (err == mpg123clr.mpg.ErrorCode.ok || err == mpg123clr.mpg.ErrorCode.new_format)
|
|
314
|
+
{
|
|
315
|
+
err = mp.mpg123_decode_frame(out num, out audio, out cnt);
|
|
316
|
+
|
|
317
|
+
// do something with "audio" here....
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
dte = DateTime.Now;
|
|
321
|
+
|
|
322
|
+
TimeSpan ts = dte - dts;
|
|
323
|
+
Console.WriteLine("Duration: " + ts.ToString());
|
|
324
|
+
|
|
325
|
+
mp.mpg123_close();
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
mp.Dispose();
|
|
329
|
+
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
static unsafe void RunFrameByFrameTest(string filename)
|
|
333
|
+
{
|
|
334
|
+
mpg123clr.mpg.ErrorCode err;
|
|
335
|
+
|
|
336
|
+
mpg123 mp = new mpg123();
|
|
337
|
+
err = mp.mpg123_new();
|
|
338
|
+
|
|
339
|
+
err = mp.mpg123_open(filename);
|
|
340
|
+
|
|
341
|
+
if (err != mpg123clr.mpg.ErrorCode.ok)
|
|
342
|
+
{
|
|
343
|
+
Console.WriteLine("Error: " + mp.mpg123_strerror());
|
|
344
|
+
}
|
|
345
|
+
else
|
|
346
|
+
{
|
|
347
|
+
Console.WriteLine("Open:");
|
|
348
|
+
|
|
349
|
+
// Show available decoders
|
|
350
|
+
string[] Decoders = mp.mpg123_decoders();
|
|
351
|
+
|
|
352
|
+
if (Decoders.Length > 0)
|
|
353
|
+
{
|
|
354
|
+
Console.WriteLine("\nDecoders:");
|
|
355
|
+
foreach (string str in Decoders) Console.WriteLine(str);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
// Show supported decoders
|
|
359
|
+
string[] supDecoders = mp.mpg123_supported_decoders();
|
|
360
|
+
|
|
361
|
+
if (supDecoders.Length > 0)
|
|
362
|
+
{
|
|
363
|
+
Console.WriteLine("\nSupported Decoders:");
|
|
364
|
+
foreach (string str in supDecoders) Console.WriteLine(str);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// Show actual decoder
|
|
368
|
+
Console.WriteLine("\nDecoder: " + mp.mpg123_current_decoder());
|
|
369
|
+
|
|
370
|
+
// Show estimated file length
|
|
371
|
+
Console.WriteLine("\nLength Estimate: " + mp.mpg123_length().ToString());
|
|
372
|
+
|
|
373
|
+
// Scan - gets actual details including ID3v2 and Frame offsets
|
|
374
|
+
err = mp.mpg123_scan();
|
|
375
|
+
|
|
376
|
+
// Show actual file length
|
|
377
|
+
if (err == mpg123clr.mpg.ErrorCode.ok) Console.WriteLine("Length Actual : " + mp.mpg123_length().ToString());
|
|
378
|
+
|
|
379
|
+
// Get ID3 data
|
|
380
|
+
mpg123clr.id3.mpg123id3v1 iv1;
|
|
381
|
+
mpg123clr.id3.mpg123id3v2 iv2;
|
|
382
|
+
err = mp.mpg123_id3(out iv1, out iv2);
|
|
383
|
+
|
|
384
|
+
// Show ID3v2 data
|
|
385
|
+
Console.WriteLine("\nTitle : " + iv2.title);
|
|
386
|
+
Console.WriteLine("Artist : " + iv2.artist);
|
|
387
|
+
Console.WriteLine("Album : " + iv2.album);
|
|
388
|
+
Console.WriteLine("Comment: " + iv2.comment);
|
|
389
|
+
Console.WriteLine("Year : " + iv2.year);
|
|
390
|
+
|
|
391
|
+
// Demo seek (back to start of file - note: scan should already have done this)
|
|
392
|
+
long pos = mp.mpg123_seek(0, System.IO.SeekOrigin.Begin);
|
|
393
|
+
|
|
394
|
+
long[] frameindex;
|
|
395
|
+
long step;
|
|
396
|
+
err = mp.mpg123_index(out frameindex, out step);
|
|
397
|
+
|
|
398
|
+
if (err == mpg123clr.mpg.ErrorCode.ok)
|
|
399
|
+
{
|
|
400
|
+
Console.WriteLine("\nFrameIndex:");
|
|
401
|
+
foreach (long idx in frameindex)
|
|
402
|
+
{
|
|
403
|
+
// Console.WriteLine(idx.ToString());
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
int num;
|
|
408
|
+
uint cnt;
|
|
409
|
+
IntPtr audio;
|
|
410
|
+
|
|
411
|
+
// Walk the file - effectively decode the data without using it...
|
|
412
|
+
Console.WriteLine("\nFrame Walking : " + iv2.title);
|
|
413
|
+
DateTime dte, dts = DateTime.Now;
|
|
414
|
+
|
|
415
|
+
while (err == mpg123clr.mpg.ErrorCode.ok || err == mpg123clr.mpg.ErrorCode.new_format)
|
|
416
|
+
{
|
|
417
|
+
err = mp.mpg123_framebyframe_decode(out num, out audio, out cnt);
|
|
418
|
+
err = mp.mpg123_framebyframe_next();
|
|
419
|
+
|
|
420
|
+
// do something with "audio" here....
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
dte = DateTime.Now;
|
|
424
|
+
|
|
425
|
+
TimeSpan ts = dte - dts;
|
|
426
|
+
Console.WriteLine("Duration: " + ts.ToString());
|
|
427
|
+
|
|
428
|
+
mp.mpg123_close();
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
mp.Dispose();
|
|
432
|
+
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
using System.Reflection;
|
|
2
|
+
using System.Runtime.CompilerServices;
|
|
3
|
+
using System.Runtime.InteropServices;
|
|
4
|
+
|
|
5
|
+
// General Information about an assembly is controlled through the following
|
|
6
|
+
// set of attributes. Change these attribute values to modify the information
|
|
7
|
+
// associated with an assembly.
|
|
8
|
+
[assembly: AssemblyTitle("ReplaceReaderclr")]
|
|
9
|
+
[assembly: AssemblyDescription("")]
|
|
10
|
+
[assembly: AssemblyConfiguration("")]
|
|
11
|
+
[assembly: AssemblyCompany("")]
|
|
12
|
+
[assembly: AssemblyProduct("ReplaceReaderclr")]
|
|
13
|
+
[assembly: AssemblyCopyright("© mpg123 project 2009")]
|
|
14
|
+
[assembly: AssemblyTrademark("")]
|
|
15
|
+
[assembly: AssemblyCulture("")]
|
|
16
|
+
|
|
17
|
+
// Setting ComVisible to false makes the types in this assembly not visible
|
|
18
|
+
// to COM components. If you need to access a type in this assembly from
|
|
19
|
+
// COM, set the ComVisible attribute to true on that type.
|
|
20
|
+
[assembly: ComVisible(false)]
|
|
21
|
+
|
|
22
|
+
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
|
23
|
+
[assembly: Guid("c65bdebb-51d7-41ba-875d-b2c938f187fc")]
|
|
24
|
+
|
|
25
|
+
// Version information for an assembly consists of the following four values:
|
|
26
|
+
//
|
|
27
|
+
// Major Version
|
|
28
|
+
// Minor Version
|
|
29
|
+
// Build Number
|
|
30
|
+
// Revision
|
|
31
|
+
//
|
|
32
|
+
// You can specify all the values or you can default the Build and Revision Numbers
|
|
33
|
+
// by using the '*' as shown below:
|
|
34
|
+
// [assembly: AssemblyVersion("1.0.*")]
|
|
35
|
+
[assembly: AssemblyVersion("1.0.0.0")]
|
|
36
|
+
[assembly: AssemblyFileVersion("1.0.0.0")]
|