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.
Files changed (421) hide show
  1. data/.yardopts +1 -0
  2. data/LICENSE +13 -0
  3. data/README.md +265 -0
  4. data/ext/seal/extconf.rb +45 -0
  5. data/include/al/al.h +724 -0
  6. data/include/al/alc.h +277 -0
  7. data/include/al/efx-presets.h +402 -0
  8. data/include/al/efx.h +758 -0
  9. data/include/mpg123/mpg123.h +1034 -0
  10. data/include/ogg/config_types.h +25 -0
  11. data/include/ogg/ogg.h +210 -0
  12. data/include/ogg/os_types.h +147 -0
  13. data/include/seal.h +23 -0
  14. data/include/seal/buf.h +143 -0
  15. data/include/seal/core.h +95 -0
  16. data/include/seal/efs.h +112 -0
  17. data/include/seal/err.h +93 -0
  18. data/include/seal/fmt.h +58 -0
  19. data/include/seal/listener.h +103 -0
  20. data/include/seal/raw.h +86 -0
  21. data/include/seal/rvb.h +520 -0
  22. data/include/seal/src.h +413 -0
  23. data/include/seal/stream.h +81 -0
  24. data/include/vorbis/codec.h +243 -0
  25. data/include/vorbis/vorbisfile.h +206 -0
  26. data/mpg123/AUTHORS +150 -0
  27. data/mpg123/COPYING +773 -0
  28. data/mpg123/ChangeLog +3 -0
  29. data/mpg123/INSTALL +111 -0
  30. data/mpg123/Makefile.am +99 -0
  31. data/mpg123/Makefile.in +1043 -0
  32. data/mpg123/NEWS +1200 -0
  33. data/mpg123/NEWS.libmpg123 +133 -0
  34. data/mpg123/README +203 -0
  35. data/mpg123/TODO +38 -0
  36. data/mpg123/aclocal.m4 +1168 -0
  37. data/mpg123/build/config.guess +1530 -0
  38. data/mpg123/build/config.sub +1782 -0
  39. data/mpg123/build/depcomp +707 -0
  40. data/mpg123/build/install-sh +527 -0
  41. data/mpg123/build/ltmain.sh +9655 -0
  42. data/mpg123/build/missing +330 -0
  43. data/mpg123/configure +20267 -0
  44. data/mpg123/configure.ac +2178 -0
  45. data/mpg123/doc/ACCURACY +2 -0
  46. data/mpg123/doc/BENCHMARKING +110 -0
  47. data/mpg123/doc/BUGS +3 -0
  48. data/mpg123/doc/CONTACT +17 -0
  49. data/mpg123/doc/LICENSE +22 -0
  50. data/mpg123/doc/Makefile.am +32 -0
  51. data/mpg123/doc/Makefile.in +490 -0
  52. data/mpg123/doc/PATENTS +39 -0
  53. data/mpg123/doc/README.3DNOW +56 -0
  54. data/mpg123/doc/README.gain +171 -0
  55. data/mpg123/doc/README.remote +218 -0
  56. data/mpg123/doc/ROAD_TO_LGPL +270 -0
  57. data/mpg123/doc/THANKS +13 -0
  58. data/mpg123/doc/TODO +63 -0
  59. data/mpg123/doc/doxy_examples.c +21 -0
  60. data/mpg123/doc/doxygen.conf +41 -0
  61. data/mpg123/doc/doxyhead.xhtml +12 -0
  62. data/mpg123/doc/examples/dump_seekindex.c +41 -0
  63. data/mpg123/doc/examples/extract_frames.c +92 -0
  64. data/mpg123/doc/examples/feedseek.c +238 -0
  65. data/mpg123/doc/examples/id3dump.c +178 -0
  66. data/mpg123/doc/examples/mpg123_to_wav.c +118 -0
  67. data/mpg123/doc/examples/mpglib.c +92 -0
  68. data/mpg123/doc/examples/scan.c +47 -0
  69. data/mpg123/doc/libmpg123_speed.txt +84 -0
  70. data/mpg123/equalize.dat +37 -0
  71. data/mpg123/libmpg123.pc.in +11 -0
  72. data/mpg123/m4/addrconfig.m4 +34 -0
  73. data/mpg123/m4/libtool.m4 +7982 -0
  74. data/mpg123/m4/ltoptions.m4 +384 -0
  75. data/mpg123/m4/ltsugar.m4 +123 -0
  76. data/mpg123/m4/ltversion.m4 +23 -0
  77. data/mpg123/m4/lt~obsolete.m4 +98 -0
  78. data/mpg123/makedll.sh +19 -0
  79. data/mpg123/man1/mpg123.1 +512 -0
  80. data/mpg123/mpg123.spec +68 -0
  81. data/mpg123/mpg123.spec.in +68 -0
  82. data/mpg123/ports/MSVC++/2005/libmpg123/libmpg123.vcproj +741 -0
  83. data/mpg123/ports/MSVC++/2008/dump_seekindex/dump_seekindex.vcproj +194 -0
  84. data/mpg123/ports/MSVC++/2008/feedseek/feedseek.vcproj +195 -0
  85. data/mpg123/ports/MSVC++/2008/libmpg123/libmpg123.vcproj +1357 -0
  86. data/mpg123/ports/MSVC++/2008/mpg123.sln +44 -0
  87. data/mpg123/ports/MSVC++/2008/mpglib/mpglib.vcproj +191 -0
  88. data/mpg123/ports/MSVC++/2008/scan/scan.vcproj +195 -0
  89. data/mpg123/ports/MSVC++/2008clr/2008clr.sln +81 -0
  90. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Program.cs +435 -0
  91. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Properties/AssemblyInfo.cs +36 -0
  92. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/ReplaceReaderclr.csproj +72 -0
  93. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Program.cs +331 -0
  94. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Properties/AssemblyInfo.cs +36 -0
  95. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/feedseekclr.csproj +71 -0
  96. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Program.cs +79 -0
  97. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Properties/AssemblyInfo.cs +36 -0
  98. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/scanclr.csproj +70 -0
  99. data/mpg123/ports/MSVC++/2008clr/mpg123clr/AssemblyInfo.cpp +76 -0
  100. data/mpg123/ports/MSVC++/2008clr/mpg123clr/ReadMe.txt +165 -0
  101. data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.cpp +91 -0
  102. data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.h +130 -0
  103. data/mpg123/ports/MSVC++/2008clr/mpg123clr/dllmain.cpp +19 -0
  104. data/mpg123/ports/MSVC++/2008clr/mpg123clr/enum.h +218 -0
  105. data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.cpp +48 -0
  106. data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.h +134 -0
  107. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.cpp +92 -0
  108. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.h +132 -0
  109. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.cpp +138 -0
  110. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.h +152 -0
  111. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.cpp +896 -0
  112. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.h +953 -0
  113. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.rc +102 -0
  114. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.vcproj +328 -0
  115. data/mpg123/ports/MSVC++/2008clr/mpg123clr/resource.h +14 -0
  116. data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.cpp +8 -0
  117. data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.h +38 -0
  118. data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.cpp +166 -0
  119. data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.h +265 -0
  120. data/mpg123/ports/MSVC++/2008clr/mpg123clr/targetver.h +24 -0
  121. data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.cpp +67 -0
  122. data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.h +111 -0
  123. data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj +90 -0
  124. data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj.filters +6 -0
  125. data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj +95 -0
  126. data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj.filters +6 -0
  127. data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj +960 -0
  128. data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj.user +3 -0
  129. data/mpg123/ports/MSVC++/2010/libmpg123/yasm.exe +0 -0
  130. data/mpg123/ports/MSVC++/2010/mpg123.sln +38 -0
  131. data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj +93 -0
  132. data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj.filters +6 -0
  133. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/CORE_FileIn.H +15 -0
  134. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/SourceFilter_MP3.H +139 -0
  135. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_Def.H +206 -0
  136. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_FileIn.H +167 -0
  137. data/mpg123/ports/MSVC++/CMP3Stream/README +4 -0
  138. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_FileIn.CPP +462 -0
  139. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Log.CPP +122 -0
  140. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Mutex.CPP +35 -0
  141. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/SourceFilter_MP3Stream.CPP +586 -0
  142. data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/PLACE_LIBMPG123_SOURCES_HERE +0 -0
  143. data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/libMPG123.vcproj +245 -0
  144. data/mpg123/ports/MSVC++/config.h +35 -0
  145. data/mpg123/ports/MSVC++/examples/feedseek.c +240 -0
  146. data/mpg123/ports/MSVC++/examples/scan.c +47 -0
  147. data/mpg123/ports/MSVC++/mpg123.h +46 -0
  148. data/mpg123/ports/MSVC++/msvc.c +59 -0
  149. data/mpg123/ports/README +26 -0
  150. data/mpg123/ports/Sony_PSP/Makefile.psp +38 -0
  151. data/mpg123/ports/Sony_PSP/README +11 -0
  152. data/mpg123/ports/Sony_PSP/config.h +368 -0
  153. data/mpg123/ports/Sony_PSP/readers.c.patch +2 -0
  154. data/mpg123/ports/Xcode/config.h +197 -0
  155. data/mpg123/ports/Xcode/mpg123.h +17 -0
  156. data/mpg123/ports/Xcode/mpg123.xcodeproj/project.pbxproj +670 -0
  157. data/mpg123/ports/mpg123_.pas +478 -0
  158. data/mpg123/scripts/benchmark-cpu.pl +56 -0
  159. data/mpg123/scripts/tag_lyrics.py +76 -0
  160. data/mpg123/src/Makefile.am +186 -0
  161. data/mpg123/src/Makefile.in +1097 -0
  162. data/mpg123/src/audio.c +725 -0
  163. data/mpg123/src/audio.h +106 -0
  164. data/mpg123/src/buffer.c +312 -0
  165. data/mpg123/src/buffer.h +45 -0
  166. data/mpg123/src/common.c +240 -0
  167. data/mpg123/src/common.h +29 -0
  168. data/mpg123/src/config.h.in +436 -0
  169. data/mpg123/src/control_generic.c +809 -0
  170. data/mpg123/src/equalizer.c +48 -0
  171. data/mpg123/src/genre.c +271 -0
  172. data/mpg123/src/genre.h +15 -0
  173. data/mpg123/src/getlopt.c +148 -0
  174. data/mpg123/src/getlopt.h +77 -0
  175. data/mpg123/src/httpget.c +700 -0
  176. data/mpg123/src/httpget.h +66 -0
  177. data/mpg123/src/legacy_module.c +74 -0
  178. data/mpg123/src/libmpg123/Makefile.am +141 -0
  179. data/mpg123/src/libmpg123/Makefile.in +919 -0
  180. data/mpg123/src/libmpg123/compat.c +138 -0
  181. data/mpg123/src/libmpg123/compat.h +178 -0
  182. data/mpg123/src/libmpg123/dct36_3dnow.S +505 -0
  183. data/mpg123/src/libmpg123/dct36_3dnowext.S +512 -0
  184. data/mpg123/src/libmpg123/dct64.c +174 -0
  185. data/mpg123/src/libmpg123/dct64_3dnow.S +712 -0
  186. data/mpg123/src/libmpg123/dct64_3dnowext.S +714 -0
  187. data/mpg123/src/libmpg123/dct64_altivec.c +315 -0
  188. data/mpg123/src/libmpg123/dct64_i386.c +336 -0
  189. data/mpg123/src/libmpg123/dct64_i486.c +342 -0
  190. data/mpg123/src/libmpg123/dct64_mmx.S +811 -0
  191. data/mpg123/src/libmpg123/dct64_neon.S +297 -0
  192. data/mpg123/src/libmpg123/dct64_neon_float.S +270 -0
  193. data/mpg123/src/libmpg123/dct64_sse.S +454 -0
  194. data/mpg123/src/libmpg123/dct64_sse_float.S +401 -0
  195. data/mpg123/src/libmpg123/dct64_x86_64.S +464 -0
  196. data/mpg123/src/libmpg123/dct64_x86_64_float.S +426 -0
  197. data/mpg123/src/libmpg123/debug.h +171 -0
  198. data/mpg123/src/libmpg123/decode.h +268 -0
  199. data/mpg123/src/libmpg123/dither.c +119 -0
  200. data/mpg123/src/libmpg123/dither.h +23 -0
  201. data/mpg123/src/libmpg123/equalizer.c +17 -0
  202. data/mpg123/src/libmpg123/equalizer_3dnow.S +70 -0
  203. data/mpg123/src/libmpg123/feature.c +106 -0
  204. data/mpg123/src/libmpg123/format.c +521 -0
  205. data/mpg123/src/libmpg123/frame.c +1046 -0
  206. data/mpg123/src/libmpg123/frame.h +410 -0
  207. data/mpg123/src/libmpg123/gapless.h +119 -0
  208. data/mpg123/src/libmpg123/getbits.h +100 -0
  209. data/mpg123/src/libmpg123/getcpuflags.S +91 -0
  210. data/mpg123/src/libmpg123/getcpuflags.h +47 -0
  211. data/mpg123/src/libmpg123/huffman.h +340 -0
  212. data/mpg123/src/libmpg123/icy.c +32 -0
  213. data/mpg123/src/libmpg123/icy.h +38 -0
  214. data/mpg123/src/libmpg123/icy2utf8.c +438 -0
  215. data/mpg123/src/libmpg123/icy2utf8.h +10 -0
  216. data/mpg123/src/libmpg123/id3.c +999 -0
  217. data/mpg123/src/libmpg123/id3.h +43 -0
  218. data/mpg123/src/libmpg123/index.c +134 -0
  219. data/mpg123/src/libmpg123/index.h +59 -0
  220. data/mpg123/src/libmpg123/intsym.h +256 -0
  221. data/mpg123/src/libmpg123/l12_integer_tables.h +278 -0
  222. data/mpg123/src/libmpg123/l2tables.h +164 -0
  223. data/mpg123/src/libmpg123/l3_integer_tables.h +1002 -0
  224. data/mpg123/src/libmpg123/layer1.c +155 -0
  225. data/mpg123/src/libmpg123/layer2.c +371 -0
  226. data/mpg123/src/libmpg123/layer3.c +2053 -0
  227. data/mpg123/src/libmpg123/lfs_alias.c +252 -0
  228. data/mpg123/src/libmpg123/lfs_wrap.c +751 -0
  229. data/mpg123/src/libmpg123/libmpg123.c +1607 -0
  230. data/mpg123/src/libmpg123/mangle.h +74 -0
  231. data/mpg123/src/libmpg123/mpeghead.h +87 -0
  232. data/mpg123/src/libmpg123/mpg123.h.in +1075 -0
  233. data/mpg123/src/libmpg123/mpg123lib_intern.h +338 -0
  234. data/mpg123/src/libmpg123/ntom.c +148 -0
  235. data/mpg123/src/libmpg123/optimize.c +964 -0
  236. data/mpg123/src/libmpg123/optimize.h +219 -0
  237. data/mpg123/src/libmpg123/parse.c +1179 -0
  238. data/mpg123/src/libmpg123/parse.h +25 -0
  239. data/mpg123/src/libmpg123/reader.h +137 -0
  240. data/mpg123/src/libmpg123/readers.c +1235 -0
  241. data/mpg123/src/libmpg123/sample.h +152 -0
  242. data/mpg123/src/libmpg123/stringbuf.c +163 -0
  243. data/mpg123/src/libmpg123/synth.c +816 -0
  244. data/mpg123/src/libmpg123/synth.h +196 -0
  245. data/mpg123/src/libmpg123/synth_3dnow.S +318 -0
  246. data/mpg123/src/libmpg123/synth_3dnowext.S +6 -0
  247. data/mpg123/src/libmpg123/synth_8bit.c +142 -0
  248. data/mpg123/src/libmpg123/synth_8bit.h +86 -0
  249. data/mpg123/src/libmpg123/synth_altivec.c +1057 -0
  250. data/mpg123/src/libmpg123/synth_arm.S +271 -0
  251. data/mpg123/src/libmpg123/synth_arm_accurate.S +287 -0
  252. data/mpg123/src/libmpg123/synth_i486.c +252 -0
  253. data/mpg123/src/libmpg123/synth_i586.S +336 -0
  254. data/mpg123/src/libmpg123/synth_i586_dither.S +375 -0
  255. data/mpg123/src/libmpg123/synth_mmx.S +125 -0
  256. data/mpg123/src/libmpg123/synth_mono.h +64 -0
  257. data/mpg123/src/libmpg123/synth_neon.S +123 -0
  258. data/mpg123/src/libmpg123/synth_neon_accurate.S +173 -0
  259. data/mpg123/src/libmpg123/synth_neon_float.S +149 -0
  260. data/mpg123/src/libmpg123/synth_neon_s32.S +168 -0
  261. data/mpg123/src/libmpg123/synth_ntom.h +213 -0
  262. data/mpg123/src/libmpg123/synth_real.c +404 -0
  263. data/mpg123/src/libmpg123/synth_s32.c +411 -0
  264. data/mpg123/src/libmpg123/synth_sse.S +6 -0
  265. data/mpg123/src/libmpg123/synth_sse3d.h +246 -0
  266. data/mpg123/src/libmpg123/synth_sse_accurate.S +294 -0
  267. data/mpg123/src/libmpg123/synth_sse_float.S +241 -0
  268. data/mpg123/src/libmpg123/synth_sse_s32.S +306 -0
  269. data/mpg123/src/libmpg123/synth_stereo_neon.S +175 -0
  270. data/mpg123/src/libmpg123/synth_stereo_neon_accurate.S +262 -0
  271. data/mpg123/src/libmpg123/synth_stereo_neon_float.S +220 -0
  272. data/mpg123/src/libmpg123/synth_stereo_neon_s32.S +247 -0
  273. data/mpg123/src/libmpg123/synth_stereo_sse_accurate.S +508 -0
  274. data/mpg123/src/libmpg123/synth_stereo_sse_float.S +416 -0
  275. data/mpg123/src/libmpg123/synth_stereo_sse_s32.S +540 -0
  276. data/mpg123/src/libmpg123/synth_stereo_x86_64.S +335 -0
  277. data/mpg123/src/libmpg123/synth_stereo_x86_64_accurate.S +454 -0
  278. data/mpg123/src/libmpg123/synth_stereo_x86_64_float.S +396 -0
  279. data/mpg123/src/libmpg123/synth_stereo_x86_64_s32.S +473 -0
  280. data/mpg123/src/libmpg123/synth_x86_64.S +244 -0
  281. data/mpg123/src/libmpg123/synth_x86_64_accurate.S +301 -0
  282. data/mpg123/src/libmpg123/synth_x86_64_float.S +259 -0
  283. data/mpg123/src/libmpg123/synth_x86_64_s32.S +312 -0
  284. data/mpg123/src/libmpg123/synths.h +52 -0
  285. data/mpg123/src/libmpg123/tabinit.c +294 -0
  286. data/mpg123/src/libmpg123/tabinit_mmx.S +210 -0
  287. data/mpg123/src/libmpg123/testcpu.c +35 -0
  288. data/mpg123/src/libmpg123/true.h +14 -0
  289. data/mpg123/src/local.c +63 -0
  290. data/mpg123/src/local.h +21 -0
  291. data/mpg123/src/metaprint.c +373 -0
  292. data/mpg123/src/metaprint.h +17 -0
  293. data/mpg123/src/module.c +306 -0
  294. data/mpg123/src/module.h +48 -0
  295. data/mpg123/src/mpg123.c +1405 -0
  296. data/mpg123/src/mpg123app.h +171 -0
  297. data/mpg123/src/output/Makefile.am +213 -0
  298. data/mpg123/src/output/Makefile.in +1238 -0
  299. data/mpg123/src/output/aix.c +300 -0
  300. data/mpg123/src/output/alib.c +209 -0
  301. data/mpg123/src/output/alsa.c +297 -0
  302. data/mpg123/src/output/arts.c +117 -0
  303. data/mpg123/src/output/coreaudio.c +370 -0
  304. data/mpg123/src/output/dummy.c +78 -0
  305. data/mpg123/src/output/esd.c +167 -0
  306. data/mpg123/src/output/hp.c +184 -0
  307. data/mpg123/src/output/jack.c +450 -0
  308. data/mpg123/src/output/mint.c +197 -0
  309. data/mpg123/src/output/nas.c +335 -0
  310. data/mpg123/src/output/openal.c +197 -0
  311. data/mpg123/src/output/os2.c +665 -0
  312. data/mpg123/src/output/oss.c +319 -0
  313. data/mpg123/src/output/portaudio.c +255 -0
  314. data/mpg123/src/output/pulse.c +164 -0
  315. data/mpg123/src/output/sdl.c +206 -0
  316. data/mpg123/src/output/sgi.c +213 -0
  317. data/mpg123/src/output/sndio.c +161 -0
  318. data/mpg123/src/output/sun.c +281 -0
  319. data/mpg123/src/output/win32.c +229 -0
  320. data/mpg123/src/playlist.c +596 -0
  321. data/mpg123/src/playlist.h +52 -0
  322. data/mpg123/src/resolver.c +319 -0
  323. data/mpg123/src/resolver.h +25 -0
  324. data/mpg123/src/sfifo.c +146 -0
  325. data/mpg123/src/sfifo.h +95 -0
  326. data/mpg123/src/streamdump.c +74 -0
  327. data/mpg123/src/streamdump.h +20 -0
  328. data/mpg123/src/term.c +479 -0
  329. data/mpg123/src/term.h +81 -0
  330. data/mpg123/src/tests/noise.c +52 -0
  331. data/mpg123/src/tests/plain_id3.c +109 -0
  332. data/mpg123/src/tests/seek_accuracy.c +261 -0
  333. data/mpg123/src/tests/seek_whence.c +56 -0
  334. data/mpg123/src/tests/testtext.h +34 -0
  335. data/mpg123/src/tests/text.c +80 -0
  336. data/mpg123/src/wav.c +464 -0
  337. data/mpg123/src/wavhead.h +68 -0
  338. data/mpg123/src/win32_net.c +599 -0
  339. data/mpg123/src/win32_support.c +191 -0
  340. data/mpg123/src/win32_support.h +152 -0
  341. data/mpg123/src/xfermem.c +321 -0
  342. data/mpg123/src/xfermem.h +74 -0
  343. data/mpg123/windows-builds.sh +137 -0
  344. data/msvc/lib/OpenAL32.lib +0 -0
  345. data/spec/fixtures/heal.ogg +0 -0
  346. data/spec/fixtures/tone_up.wav +0 -0
  347. data/spec/seal/buffer_spec.rb +37 -0
  348. data/spec/seal/core_spec.rb +29 -0
  349. data/spec/seal/effect_slot_spec.rb +38 -0
  350. data/spec/seal/listener_spec.rb +33 -0
  351. data/spec/seal/reverb_spec.rb +51 -0
  352. data/spec/seal/source_spec.rb +370 -0
  353. data/spec/seal/stream_spec.rb +38 -0
  354. data/spec/spec_helper.rb +45 -0
  355. data/spec/support/attribute_examples.rb +75 -0
  356. data/spec/support/audio_object_with_format.rb +27 -0
  357. data/spec/support/movable_object.rb +22 -0
  358. data/src/libogg/bitwise.c +857 -0
  359. data/src/libogg/framing.c +2093 -0
  360. data/src/libvorbis/backends.h +144 -0
  361. data/src/libvorbis/bitrate.c +253 -0
  362. data/src/libvorbis/bitrate.h +59 -0
  363. data/src/libvorbis/block.c +1046 -0
  364. data/src/libvorbis/codebook.c +484 -0
  365. data/src/libvorbis/codebook.h +119 -0
  366. data/src/libvorbis/codec_internal.h +167 -0
  367. data/src/libvorbis/envelope.c +375 -0
  368. data/src/libvorbis/envelope.h +80 -0
  369. data/src/libvorbis/floor0.c +221 -0
  370. data/src/libvorbis/floor1.c +1100 -0
  371. data/src/libvorbis/highlevel.h +58 -0
  372. data/src/libvorbis/info.c +668 -0
  373. data/src/libvorbis/lookup.c +94 -0
  374. data/src/libvorbis/lookup.h +32 -0
  375. data/src/libvorbis/lookup_data.h +192 -0
  376. data/src/libvorbis/lpc.c +160 -0
  377. data/src/libvorbis/lpc.h +29 -0
  378. data/src/libvorbis/lsp.c +456 -0
  379. data/src/libvorbis/lsp.h +28 -0
  380. data/src/libvorbis/mapping0.c +816 -0
  381. data/src/libvorbis/masking.h +785 -0
  382. data/src/libvorbis/mdct.c +563 -0
  383. data/src/libvorbis/mdct.h +71 -0
  384. data/src/libvorbis/misc.h +57 -0
  385. data/src/libvorbis/os.h +186 -0
  386. data/src/libvorbis/psy.c +1206 -0
  387. data/src/libvorbis/psy.h +154 -0
  388. data/src/libvorbis/registry.c +45 -0
  389. data/src/libvorbis/registry.h +32 -0
  390. data/src/libvorbis/res0.c +889 -0
  391. data/src/libvorbis/scales.h +90 -0
  392. data/src/libvorbis/sharedbook.c +579 -0
  393. data/src/libvorbis/smallft.c +1255 -0
  394. data/src/libvorbis/smallft.h +34 -0
  395. data/src/libvorbis/synthesis.c +184 -0
  396. data/src/libvorbis/vorbisfile.c +2337 -0
  397. data/src/libvorbis/window.c +2135 -0
  398. data/src/libvorbis/window.h +26 -0
  399. data/src/rubyext.c +2329 -0
  400. data/src/seal/buf.c +124 -0
  401. data/src/seal/core.c +283 -0
  402. data/src/seal/efs.c +74 -0
  403. data/src/seal/err.c +118 -0
  404. data/src/seal/fmt.c +86 -0
  405. data/src/seal/listener.c +111 -0
  406. data/src/seal/mpg.c +174 -0
  407. data/src/seal/mpg.h +24 -0
  408. data/src/seal/ov.c +180 -0
  409. data/src/seal/ov.h +22 -0
  410. data/src/seal/raw.c +59 -0
  411. data/src/seal/reader.c +102 -0
  412. data/src/seal/reader.h +59 -0
  413. data/src/seal/rvb.c +368 -0
  414. data/src/seal/src.c +654 -0
  415. data/src/seal/stream.c +109 -0
  416. data/src/seal/threading.c +66 -0
  417. data/src/seal/threading.h +20 -0
  418. data/src/seal/wav.c +297 -0
  419. data/src/seal/wav.h +23 -0
  420. data/src/win32api.rb +29 -0
  421. metadata +563 -0
@@ -0,0 +1,118 @@
1
+ /*
2
+ * err.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 <al/al.h>
8
+ #include <seal/err.h>
9
+
10
+ const char*
11
+ seal_get_err_msg(seal_err_t err)
12
+ {
13
+ switch (err) {
14
+ case SEAL_OK:
15
+ return 0;
16
+
17
+ case SEAL_BAD_OBJ:
18
+ return "Invalid object";
19
+ case SEAL_BAD_ENUM:
20
+ return "Invalid token";
21
+ case SEAL_BAD_VAL:
22
+ return "Invalid parameter value";
23
+ case SEAL_BAD_OP:
24
+ return "Invalid operation";
25
+
26
+ case SEAL_CANNOT_OPEN_DEVICE:
27
+ return "Cannot open the specified device";
28
+ case SEAL_NO_EFX:
29
+ return "The effect module is not found";
30
+ case SEAL_NO_EXT_FUNC:
31
+ return "The required extension functions are not found";
32
+ case SEAL_BAD_DEVICE:
33
+ return "Invalid device";
34
+ case SEAL_CANNOT_CREATE_CONTEXT:
35
+ return "Cannot create an additional context for the device";
36
+
37
+ case SEAL_STREAM_UNOPENED:
38
+ return "Cannot use the uninitialized stream";
39
+ case SEAL_MIXING_STREAM_FMT:
40
+ return "Cannot attach a stream with a different audio format than "
41
+ "that of the currently attached stream";
42
+
43
+ case SEAL_MIXING_SRC_TYPE:
44
+ return "Cannot attach a stream to a static source or "
45
+ "attach a buffer to a streaming source";
46
+
47
+ case SEAL_CANNOT_OPEN_FILE:
48
+ return "Cannot open the specified file";
49
+ case SEAL_CANNOT_ALLOC_MEM:
50
+ return "Cannot allocate additional memory";
51
+
52
+ case SEAL_BAD_AUDIO:
53
+ return "The specified audio file format is unsupported";
54
+ case SEAL_BAD_PRESET:
55
+ return "The specified preset is invalid";
56
+
57
+ case SEAL_BAD_WAV_SUBTYPE:
58
+ return "The specified WAVE file has an unsupported subtype";
59
+ case SEAL_BAD_WAV_CHUNK:
60
+ return "The specified WAVE file has an invalid chunk";
61
+ case SEAL_BAD_WAV_CHUNK_SIZE:
62
+ return "The specified WAVE file has an invalid chunk size";
63
+ case SEAL_ABSENT_WAV_CHUNK:
64
+ return "The specified WAVE file is missing a required chunk";
65
+ case SEAL_BAD_WAV_BPS:
66
+ return "The specified WAVE file has an unsupported bit depth";
67
+ case SEAL_BAD_WAV_NCHANNELS:
68
+ return "The specified WAVE file has an invalid number of channels";
69
+ case FILE_BAD_WAV_FREQ:
70
+ return "The specified WAVE file has an invalid sample rate";
71
+ case SEAL_CANNOT_REWIND_WAV:
72
+ return "Failed rewinding the specified WAVE file";
73
+
74
+ case SEAL_CANNOT_OPEN_OV:
75
+ return "Failed openning the specified Ogg Vorbis file";
76
+ case SEAL_CANNOT_GET_OV_INFO:
77
+ return "Failed getting info from the specified Ogg Vorbis file";
78
+ case SEAL_CANNOT_READ_OV:
79
+ return "Failed reading the specified Ogg Vorbis file";
80
+ case SEAL_CANNOT_REWIND_OV:
81
+ return "Failed rewinding the specified Ogg Vorbis file";
82
+ case SEAL_CANNOT_CLOSE_OV:
83
+ return "Failed closing the specified Ogg Vorbis file";
84
+
85
+ case SEAL_CANNOT_INIT_MPG:
86
+ return "Failed initializing MPEG decoder";
87
+ case SEAL_CANNOT_GET_MPG_INFO:
88
+ return "Failed getting info from the specified MPEG file";
89
+ case SEAL_CANNOT_READ_MPG:
90
+ return "Failed reading the specified MPEG file";
91
+ case SEAL_CANNOT_REWIND_MPG:
92
+ return "Failed rewinding the specified MPEG file";
93
+ case SEAL_CANNOT_CLOSE_MPG:
94
+ return "Failed closing the specified MPEG file";
95
+
96
+ default:
97
+ return "Unkown error";
98
+ }
99
+ }
100
+
101
+ seal_err_t
102
+ _seal_get_openal_err(void)
103
+ {
104
+ switch (alGetError()) {
105
+ case AL_INVALID_NAME:
106
+ return SEAL_BAD_OBJ;
107
+ case AL_INVALID_ENUM:
108
+ return SEAL_BAD_ENUM;
109
+ case AL_INVALID_VALUE:
110
+ return SEAL_BAD_VAL;
111
+ case AL_INVALID_OPERATION:
112
+ return SEAL_BAD_OP;
113
+ case AL_OUT_OF_MEMORY:
114
+ return SEAL_CANNOT_ALLOC_MEM;
115
+ default:
116
+ return SEAL_OK;
117
+ }
118
+ }
@@ -0,0 +1,86 @@
1
+ /*
2
+ * fmt.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 <stdio.h>
8
+ #include <stdint.h>
9
+ #include <seal/fmt.h>
10
+ #include <seal/err.h>
11
+ #include "reader.h"
12
+
13
+ enum
14
+ {
15
+ RIFF = SEAL_MKTAG('R', 'I', 'F', 'F'),
16
+ WAVE = SEAL_MKTAG('W', 'A', 'V', 'E'),
17
+ OGGS = SEAL_MKTAG('O', 'g', 'g', 'S'),
18
+ /* APE tag identifier (splitted). */
19
+ APET = SEAL_MKTAG('A', 'P', 'E', 'T'),
20
+ AGEX = SEAL_MKTAG('A', 'G', 'E', 'X'),
21
+ /* Number of magic numbers needed to recognize the format. */
22
+ SAMPLE_SIZE = 3
23
+ };
24
+
25
+ /* ID3v1 tag identifier. */
26
+ static const unsigned int TAG_ = SEAL_MKTAG('T', 'A', 'G', 0);
27
+ /* ID3v2 tag identifier. */
28
+ static const unsigned int ID3_ = SEAL_MKTAG('I', 'D', '3', 0);
29
+ /* MP3 Sync identifier. */
30
+ static const unsigned int SYNC = 0xf0ff;
31
+
32
+ seal_err_t
33
+ seal_recognize_fmt(const char* filename, seal_fmt_t* pfmt)
34
+ {
35
+ FILE* audio;
36
+ uint32_t magic_nums[SAMPLE_SIZE];
37
+
38
+ audio = _seal_fopen(filename);
39
+ if (audio == 0)
40
+ return SEAL_CANNOT_OPEN_FILE;
41
+
42
+ /* Gets the magic numbers in little-endian. */
43
+ _seal_read_uint32le(magic_nums, SAMPLE_SIZE, audio);
44
+
45
+ _seal_fclose(audio);
46
+
47
+ switch (magic_nums[0]) {
48
+ case RIFF:
49
+ switch (magic_nums[2]) {
50
+ case WAVE:
51
+ *pfmt = SEAL_WAV_FMT;
52
+ return SEAL_OK;
53
+ }
54
+ break;
55
+ case OGGS:
56
+ *pfmt = SEAL_OV_FMT;
57
+ return SEAL_OK;
58
+ case APET:
59
+ switch (magic_nums[1]) {
60
+ case AGEX:
61
+ *pfmt = SEAL_MPG_FMT;
62
+ return SEAL_OK;
63
+ }
64
+ break;
65
+ }
66
+
67
+ if ((magic_nums[0] & TAG_) == TAG_ ||
68
+ (magic_nums[0] & ID3_) == ID3_ ||
69
+ (magic_nums[0] & SYNC) == SYNC) {
70
+ *pfmt = SEAL_MPG_FMT;
71
+ return SEAL_OK;
72
+ }
73
+
74
+ *pfmt = SEAL_UNKNOWN_FMT;
75
+
76
+ return SEAL_BAD_AUDIO;
77
+ }
78
+
79
+ seal_err_t
80
+ seal_ensure_fmt_known(const char* filename, seal_fmt_t* pfmt)
81
+ {
82
+ if (*pfmt == SEAL_UNKNOWN_FMT)
83
+ return seal_recognize_fmt(filename, pfmt);
84
+
85
+ return SEAL_OK;
86
+ }
@@ -0,0 +1,111 @@
1
+ /*
2
+ * listener.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 <al/al.h>
8
+ #include <seal/listener.h>
9
+ #include <seal/err.h>
10
+
11
+ static
12
+ seal_err_t
13
+ setf(int key, float val)
14
+ {
15
+ alListenerf(key, val);
16
+
17
+ return _seal_get_openal_err();
18
+ }
19
+
20
+ static
21
+ seal_err_t
22
+ set3f(int key, float x, float y, float z)
23
+ {
24
+ alListener3f(key, x, y, z);
25
+
26
+ return _seal_get_openal_err();
27
+ }
28
+
29
+ static
30
+ seal_err_t
31
+ setfv(int key, float* vector)
32
+ {
33
+ alListenerfv(key, vector);
34
+
35
+ return _seal_get_openal_err();
36
+ }
37
+
38
+ static
39
+ seal_err_t
40
+ getf(int key, float* pval)
41
+ {
42
+ alGetListenerf(key, pval);
43
+
44
+ return _seal_get_openal_err();
45
+ }
46
+
47
+ static
48
+ seal_err_t
49
+ get3f(int key, float* px, float* py, float* pz)
50
+ {
51
+ alGetListener3f(key, px, py, pz);
52
+
53
+ return _seal_get_openal_err();
54
+ }
55
+
56
+ static
57
+ seal_err_t
58
+ getfv(int key, float* vector)
59
+ {
60
+ alGetListenerfv(key, vector);
61
+
62
+ return _seal_get_openal_err();
63
+ }
64
+
65
+ seal_err_t
66
+ seal_set_listener_gain(float gain)
67
+ {
68
+ return setf(AL_GAIN, gain);
69
+ }
70
+
71
+ seal_err_t
72
+ seal_set_listener_pos(float x, float y, float z)
73
+ {
74
+ return set3f(AL_POSITION, x, y, z);
75
+ }
76
+
77
+ seal_err_t
78
+ seal_set_listener_vel(float x, float y, float z)
79
+ {
80
+ return set3f(AL_VELOCITY, x, y, z);
81
+ }
82
+
83
+ seal_err_t
84
+ seal_set_listener_orien(float* orien)
85
+ {
86
+ return setfv(AL_ORIENTATION, orien);
87
+ }
88
+
89
+ seal_err_t
90
+ seal_get_listener_gain(float* pgain)
91
+ {
92
+ return getf(AL_GAIN, pgain);
93
+ }
94
+
95
+ seal_err_t
96
+ seal_get_listener_pos(float* px, float* py, float* pz)
97
+ {
98
+ return get3f(AL_POSITION, px, py, pz);
99
+ }
100
+
101
+ seal_err_t
102
+ seal_get_listener_vel(float* px, float* py, float* pz)
103
+ {
104
+ return get3f(AL_VELOCITY, px, py, pz);
105
+ }
106
+
107
+ seal_err_t
108
+ seal_get_listener_orien(float* orien)
109
+ {
110
+ return getfv(AL_ORIENTATION, orien);
111
+ }
@@ -0,0 +1,174 @@
1
+ /*
2
+ * mpg.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 <stdio.h>
8
+ #include <stddef.h>
9
+ #include <mpg123/mpg123.h>
10
+ #include <seal/raw.h>
11
+ #include <seal/stream.h>
12
+ #include <seal/err.h>
13
+ #include "mpg.h"
14
+
15
+ /* Initial buffer size for loading. */
16
+ static const int INITIAL_BUF_SIZE = 32768;
17
+
18
+
19
+ static
20
+ mpg123_handle*
21
+ setup(seal_raw_attr_t* attr, const char* filename)
22
+ {
23
+ mpg123_handle* mh;
24
+ long freq;
25
+ int encoding;
26
+
27
+ /* Use the default decoder. */
28
+ mh = mpg123_new(0, 0);
29
+ if (mh == 0)
30
+ return 0;
31
+
32
+ if (mpg123_open(mh, filename) != MPG123_OK)
33
+ goto cleanup;
34
+
35
+ #ifndef NDEBUG
36
+ mpg123_param(mh, MPG123_FLAGS, MPG123_QUIET, 0);
37
+ #endif
38
+
39
+ attr->bit_depth = 16;
40
+ /* Default encoding is MPG123_ENC_SIGNED_16. */
41
+ if (mpg123_getformat(mh, &freq, &attr->nchannels, &encoding) != MPG123_OK)
42
+ goto cleanup;
43
+ attr->freq = freq;
44
+
45
+ return mh;
46
+
47
+ cleanup:
48
+ mpg123_close(mh);
49
+
50
+ return 0;
51
+ }
52
+
53
+ static
54
+ int
55
+ read(seal_raw_t* raw, size_t* nbytes_loaded, mpg123_handle* mh)
56
+ {
57
+ int err;
58
+ size_t nbytes_read = 0;
59
+
60
+ err = mpg123_read(mh, (unsigned char*) raw->data + *nbytes_loaded,
61
+ raw->size - *nbytes_loaded, &nbytes_read);
62
+ *nbytes_loaded += nbytes_read;
63
+
64
+ return err;
65
+ }
66
+
67
+ static
68
+ seal_err_t
69
+ load(seal_raw_t* raw, mpg123_handle* mh)
70
+ {
71
+ size_t nbytes_loaded = 0;
72
+ seal_err_t err;
73
+
74
+ if ((err = seal_alloc_raw_data(raw, INITIAL_BUF_SIZE)) != SEAL_OK)
75
+ return err;
76
+
77
+ do {
78
+ if ((err = seal_ensure_raw_data_size(raw, nbytes_loaded)) != SEAL_OK)
79
+ goto cleanup;
80
+ } while (read(raw, &nbytes_loaded, mh) == MPG123_OK);
81
+
82
+ if (nbytes_loaded == 0) {
83
+ err = SEAL_CANNOT_READ_MPG;
84
+ goto cleanup;
85
+ }
86
+
87
+ raw->size = nbytes_loaded;
88
+
89
+ return SEAL_OK;
90
+
91
+ cleanup:
92
+ seal_free_raw_data(raw);
93
+
94
+ return err;
95
+ }
96
+
97
+ seal_err_t
98
+ _seal_load_mpg(seal_raw_t* raw, const char* filename)
99
+ {
100
+ mpg123_handle* mh;
101
+ seal_raw_t tmp_raw;
102
+ seal_err_t err;
103
+
104
+ mh = setup(&tmp_raw.attr, filename);
105
+ if (mh == 0)
106
+ return SEAL_CANNOT_INIT_MPG;
107
+
108
+ if ((err = load(&tmp_raw, mh)) == SEAL_OK)
109
+ *raw = tmp_raw;
110
+
111
+ mpg123_close(mh);
112
+
113
+ return err;
114
+ }
115
+
116
+ seal_err_t
117
+ _seal_init_mpg_stream(seal_stream_t* stream, const char* filename)
118
+ {
119
+ mpg123_handle* mh;
120
+ seal_raw_attr_t tmp_attr;
121
+
122
+ mh = setup(&tmp_attr, filename);
123
+ if (mh == 0)
124
+ return SEAL_CANNOT_INIT_MPG;
125
+
126
+ stream->id = mh;
127
+ stream->fmt = SEAL_MPG_FMT;
128
+ stream->attr = tmp_attr;
129
+
130
+ return SEAL_OK;
131
+ }
132
+
133
+ seal_err_t
134
+ _seal_stream_mpg(seal_stream_t* stream, seal_raw_t* raw, size_t* psize)
135
+ {
136
+ seal_raw_t tmp_raw;
137
+ int mpg123_err;
138
+ size_t nbytes_streamed = 0;
139
+ seal_err_t err;
140
+
141
+ if ((err = seal_alloc_raw_data(&tmp_raw, raw->size)) != SEAL_OK)
142
+ return err;
143
+
144
+ do mpg123_err = read(&tmp_raw, &nbytes_streamed, stream->id);
145
+ while (mpg123_err == MPG123_OK && nbytes_streamed < tmp_raw.size);
146
+
147
+ if (nbytes_streamed == 0 && mpg123_err != MPG123_DONE) {
148
+ seal_free_raw_data(&tmp_raw);
149
+ return SEAL_CANNOT_READ_MPG;
150
+ }
151
+
152
+ raw->data = tmp_raw.data;
153
+ raw->size = nbytes_streamed;
154
+ raw->attr = stream->attr;
155
+ *psize = nbytes_streamed;
156
+
157
+ return SEAL_OK;
158
+ }
159
+
160
+ seal_err_t
161
+ _seal_rewind_mpg_stream(seal_stream_t* stream)
162
+ {
163
+ if (mpg123_seek(stream->id, 0, SEEK_SET) < 0)
164
+ return SEAL_CANNOT_REWIND_MPG;
165
+ return SEAL_OK;
166
+ }
167
+
168
+ seal_err_t
169
+ _seal_close_mpg_stream(seal_stream_t* stream)
170
+ {
171
+ if (mpg123_close(stream->id) != MPG123_OK)
172
+ return SEAL_CANNOT_CLOSE_MPG;
173
+ return SEAL_OK;
174
+ }