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,24 @@
1
+ /*
2
+ * mpg.h is part of the Scorched End Audio Library (SEAL) and is licensed
3
+ * under the terms of the GNU Lesser General Public License. See COPYING
4
+ * attached with the library.
5
+ *
6
+ * mpg.h provides subroutines to decode MPEG 1.0, 2.0 and 2.5 audio for layers
7
+ * 1, 2 and 3.
8
+ */
9
+
10
+ #ifndef _SEAL_MPG_H_
11
+ #define _SEAL_MPG_H_
12
+
13
+ #include <stddef.h>
14
+ #include <seal/raw.h>
15
+ #include <seal/stream.h>
16
+ #include <seal/err.h>
17
+
18
+ seal_err_t _seal_load_mpg(seal_raw_t*, const char* /*filename*/);
19
+ seal_err_t _seal_init_mpg_stream(seal_stream_t*, const char* /*filename*/);
20
+ seal_err_t _seal_stream_mpg(seal_stream_t*, seal_raw_t*, size_t* /*psize*/);
21
+ seal_err_t _seal_rewind_mpg_stream(seal_stream_t*);
22
+ seal_err_t _seal_close_mpg_stream(seal_stream_t*);
23
+
24
+ #endif /* _SEAL_MPG_H_ */
@@ -0,0 +1,180 @@
1
+ /*
2
+ * ov.c is part of the Scorched End Audio Library (SEAL) and is
3
+ * licensed under the terms of the GNU Lesser General Public License. See
4
+ * COPYING attached with the library.
5
+ */
6
+
7
+ #include <stdlib.h>
8
+ #include <vorbis/codec.h>
9
+ #define OV_EXCLUDE_STATIC_CALLBACKS
10
+ #include <vorbis/vorbisfile.h>
11
+ #include <seal/raw.h>
12
+ #include <seal/stream.h>
13
+ #include <seal/err.h>
14
+ #include "ov.h"
15
+ #include "reader.h"
16
+
17
+ /* Initial buffer size for loading. */
18
+ static const int INITIAL_BUF_SIZE = 4096;
19
+
20
+ static
21
+ seal_err_t
22
+ setup(seal_raw_attr_t* attr, OggVorbis_File* ovf, const char* filename)
23
+ {
24
+ vorbis_info* vi;
25
+ FILE* ov;
26
+
27
+ ov = _seal_fopen(filename);
28
+ if (ov == 0)
29
+ return SEAL_CANNOT_OPEN_FILE;
30
+ if (ov_open(ov, ovf, 0, 0) < 0) {
31
+ _seal_fclose(ov);
32
+ return SEAL_CANNOT_OPEN_OV;
33
+ }
34
+ vi = ov_info(ovf, -1);
35
+ attr->bit_depth = 16;
36
+ attr->nchannels = vi->channels;
37
+ attr->freq = vi->rate;
38
+
39
+ return SEAL_OK;
40
+ }
41
+
42
+ /* Caller passes `nbytes_loaded' to be able to accumulate the value. */
43
+ static
44
+ long
45
+ read(seal_raw_t* raw, unsigned long* nbytes_loaded, OggVorbis_File* ovf)
46
+ {
47
+ long nbytes_read;
48
+ int bitstream;
49
+
50
+ nbytes_read = ov_read(ovf, (char*) raw->data + *nbytes_loaded,
51
+ raw->size - *nbytes_loaded, 0, 2, 1, &bitstream);
52
+ *nbytes_loaded += nbytes_read;
53
+
54
+ return nbytes_read;
55
+ }
56
+
57
+ static
58
+ seal_err_t
59
+ load(seal_raw_t* raw, OggVorbis_File* ovf)
60
+ {
61
+ long nbytes_read;
62
+ unsigned long nbytes_loaded = 0;
63
+ seal_err_t err;
64
+
65
+ if ((err = seal_alloc_raw_data(raw, INITIAL_BUF_SIZE)) != SEAL_OK)
66
+ return err;
67
+
68
+ do {
69
+ if ((err = seal_ensure_raw_data_size(raw, nbytes_loaded)) != SEAL_OK)
70
+ goto cleanup;
71
+ nbytes_read = read(raw, &nbytes_loaded, ovf);
72
+ } while (nbytes_read > 0);
73
+
74
+ /* If `nbytes_read' < 0 then an error occurred. */
75
+ if (nbytes_read < 0) {
76
+ err = SEAL_CANNOT_READ_OV;
77
+ goto cleanup;
78
+ }
79
+
80
+ raw->size = nbytes_loaded;
81
+
82
+ return SEAL_OK;
83
+
84
+ cleanup:
85
+ seal_free_raw_data(raw);
86
+
87
+ return err;
88
+ }
89
+
90
+ seal_err_t
91
+ _seal_load_ov(seal_raw_t* raw, const char* filename)
92
+ {
93
+ seal_raw_t tmp_raw;
94
+ OggVorbis_File ovf;
95
+ seal_err_t err;
96
+
97
+ if ((err = setup(&tmp_raw.attr, &ovf, filename)) != SEAL_OK)
98
+ return err;
99
+
100
+ if ((err = load(&tmp_raw, &ovf)) == SEAL_OK)
101
+ *raw = tmp_raw;
102
+
103
+ /* This closes the opened file handle too. */
104
+ ov_clear(&ovf);
105
+
106
+ return err;
107
+ }
108
+
109
+ seal_err_t
110
+ _seal_init_ov_stream(seal_stream_t* stream, const char* filename)
111
+ {
112
+ seal_raw_attr_t attr;
113
+ OggVorbis_File* povf;
114
+ seal_err_t err;
115
+
116
+ povf = malloc(sizeof (OggVorbis_File));
117
+ if (povf == 0)
118
+ return SEAL_CANNOT_ALLOC_MEM;
119
+
120
+ if ((err = setup(&attr, povf, filename)) != SEAL_OK) {
121
+ free(povf);
122
+ return err;
123
+ }
124
+
125
+ stream->id = povf;
126
+ stream->fmt = SEAL_OV_FMT;
127
+ stream->attr = attr;
128
+
129
+ return SEAL_OK;
130
+ }
131
+
132
+ seal_err_t
133
+ _seal_stream_ov(seal_stream_t* stream, seal_raw_t* raw, size_t* psize)
134
+ {
135
+ long nbytes_read;
136
+ unsigned long nbytes_streamed = 0;
137
+ seal_raw_t tmp_raw;
138
+ seal_err_t err;
139
+
140
+ if ((err = seal_alloc_raw_data(&tmp_raw, raw->size)) != SEAL_OK)
141
+ return err;
142
+
143
+ do nbytes_read = read(&tmp_raw, &nbytes_streamed, stream->id);
144
+ while (nbytes_streamed < tmp_raw.size && nbytes_read > 0);
145
+
146
+ if (nbytes_read < 0) {
147
+ err = SEAL_CANNOT_READ_OV;
148
+ seal_free_raw_data(&tmp_raw);
149
+ return err;
150
+ }
151
+
152
+ if (nbytes_streamed != 0) {
153
+ raw->data = tmp_raw.data;
154
+ raw->size = nbytes_streamed;
155
+ raw->attr = stream->attr;
156
+ } else {
157
+ seal_free_raw_data(&tmp_raw);
158
+ }
159
+ *psize = nbytes_streamed;
160
+
161
+ return SEAL_OK;
162
+ }
163
+
164
+ seal_err_t
165
+ _seal_rewind_ov_stream(seal_stream_t* stream)
166
+ {
167
+ if (ov_time_seek(stream->id, 0) != 0)
168
+ return SEAL_CANNOT_REWIND_OV;
169
+ return SEAL_OK;
170
+ }
171
+
172
+ seal_err_t
173
+ _seal_close_ov_stream(seal_stream_t* stream)
174
+ {
175
+ if (ov_clear(stream->id) != 0)
176
+ return SEAL_CANNOT_CLOSE_OV;
177
+
178
+ free(stream->id);
179
+ return SEAL_OK;
180
+ }
@@ -0,0 +1,22 @@
1
+ /*
2
+ * ov.h is part of the Scorched End Audio Library (SEAL) and is licensed under
3
+ * the terms of the GNU Lesser General Public License. See COPYING attached
4
+ * with the library.
5
+ *
6
+ * ov.h provides subroutines to decode ogg vorbis files.
7
+ */
8
+
9
+ #ifndef _SEAL_OV_H_
10
+ #define _SEAL_OV_H_
11
+
12
+ #include <stddef.h>
13
+ #include <seal/raw.h>
14
+ #include <seal/stream.h>
15
+
16
+ seal_err_t _seal_load_ov(seal_raw_t*, const char* /*filename*/);
17
+ seal_err_t _seal_init_ov_stream(seal_stream_t*, const char* /*filename*/);
18
+ seal_err_t _seal_stream_ov(seal_stream_t*, seal_raw_t*, size_t* /*psize*/);
19
+ seal_err_t _seal_rewind_ov_stream(seal_stream_t*);
20
+ seal_err_t _seal_close_ov_stream(seal_stream_t*);
21
+
22
+ #endif /* _SEAL_OV_H_ */
@@ -0,0 +1,59 @@
1
+ /*
2
+ * raw.c is part of the Scorched End Audio Library (SEAL) and is licensed
3
+ * under the terms of the GNU Lesser General Public License. See COPYING
4
+ * attached with the library.
5
+ */
6
+
7
+ #include <stdlib.h>
8
+ #include <stddef.h>
9
+ #include <seal/raw.h>
10
+ #include <seal/err.h>
11
+
12
+ /* Reallocates `raw->data' to size `size'. */
13
+ static
14
+ seal_err_t
15
+ realloc_raw_data(seal_raw_t* raw, size_t size)
16
+ {
17
+ void* buf;
18
+
19
+ buf = realloc(raw->data, size);
20
+ if (buf == 0)
21
+ return SEAL_CANNOT_ALLOC_MEM;
22
+ raw->data = buf;
23
+ raw->size = size;
24
+
25
+ return SEAL_OK;
26
+ }
27
+
28
+ seal_err_t
29
+ seal_alloc_raw_data(seal_raw_t* raw, size_t size)
30
+ {
31
+ raw->size = size;
32
+ raw->data = malloc(size);
33
+ if (raw->data == 0)
34
+ return SEAL_CANNOT_ALLOC_MEM;
35
+
36
+ return SEAL_OK;
37
+ }
38
+
39
+ void
40
+ seal_free_raw_data(seal_raw_t* raw)
41
+ {
42
+ free(raw->data);
43
+ }
44
+
45
+ seal_err_t
46
+ seal_extend_raw_data(seal_raw_t* raw)
47
+ {
48
+ return realloc_raw_data(raw, raw->size * 2);
49
+ }
50
+
51
+ seal_err_t
52
+ seal_ensure_raw_data_size(seal_raw_t* raw, size_t size)
53
+ {
54
+ /* If the buffer is not large enough... */
55
+ if (size >= raw->size)
56
+ return seal_extend_raw_data(raw);
57
+
58
+ return SEAL_OK;
59
+ }
@@ -0,0 +1,102 @@
1
+ /*
2
+ * reader.c is part of the Scorched End Audio Library (SEAL) and is licensed
3
+ * under the terms of the GNU Lesser General Public License. See COPYING
4
+ * attached with the library.
5
+ */
6
+
7
+ #ifdef _WIN32
8
+ # include <Windows.h>
9
+ #endif
10
+ #include <stdio.h>
11
+ #include <stdint.h>
12
+ #include <stddef.h>
13
+ #include <seal/err.h>
14
+ #include "reader.h"
15
+
16
+ enum
17
+ {
18
+ JUNK_BUF_SIZE = 512
19
+ };
20
+
21
+ /* Helpers that convert raw bytes to little-endian 16- and 32-bit integers. */
22
+ static
23
+ uint16_t
24
+ raw2le16(uint8_t* bytes)
25
+ {
26
+ return bytes[1] << 8 | bytes[0];
27
+ }
28
+
29
+ static
30
+ uint32_t
31
+ raw2le32(uint8_t* bytes)
32
+ {
33
+ return bytes[3] << 24 | bytes[2] << 16 | raw2le16(bytes);
34
+ }
35
+
36
+ FILE*
37
+ _seal_fopen(const char* filename)
38
+ {
39
+ FILE* file;
40
+
41
+ #ifdef _WIN32
42
+ wchar_t wfilename[260];
43
+ MultiByteToWideChar(CP_UTF8, 0, filename, -1, wfilename, 260);
44
+ file = _wfopen(wfilename, L"rb");
45
+ #else
46
+ file = fopen(filename, "rb");
47
+ #endif
48
+
49
+ return file;
50
+ }
51
+
52
+ void
53
+ _seal_fclose(FILE* file)
54
+ {
55
+ fclose(file);
56
+ }
57
+
58
+ /*
59
+ * A template for the following two functions. All arguments except `FILE'
60
+ * will have multiple evaluations in one call.
61
+ */
62
+ #define READ_UINT_LE(nbits, buf, size, file) do \
63
+ { \
64
+ size_t _i_, count; \
65
+ \
66
+ count = fread((buf), sizeof (uint##nbits##_t), (size), (file)); \
67
+ for (_i_ = 0; _i_ < (size); ++_i_) { \
68
+ *(buf) = raw2le##nbits((uint8_t*) (buf)); \
69
+ ++(buf); \
70
+ } \
71
+ } while (0)
72
+
73
+ void
74
+ _seal_read_uint16le(uint16_t* buf, size_t size, void* file)
75
+ {
76
+ READ_UINT_LE(16, buf, size, file);
77
+ }
78
+
79
+ void
80
+ _seal_read_uint32le(uint32_t* buf, size_t size, void* file)
81
+ {
82
+ READ_UINT_LE(32, buf, size, file);
83
+ }
84
+
85
+ /*
86
+ * Use of static variable avoids the overhead brought by dynamic memory
87
+ * allocations and deallocations. Microsoft's implementation of fseek flushes
88
+ * the buffer, which is evil and why fread is used here.
89
+ */
90
+ void
91
+ _seal_skip(uint32_t nbytes, void* file)
92
+ {
93
+ size_t count;
94
+ uint32_t i;
95
+ static uint8_t junk[JUNK_BUF_SIZE];
96
+
97
+ for (i = JUNK_BUF_SIZE; i <= nbytes; i += JUNK_BUF_SIZE)
98
+ count = fread(junk, 1, JUNK_BUF_SIZE, file);
99
+ nbytes %= JUNK_BUF_SIZE;
100
+ if (nbytes > 0)
101
+ count = fread(junk, 1, nbytes, file);
102
+ }
@@ -0,0 +1,59 @@
1
+ /*
2
+ * reader.h is part of the Scorched End Audio Library (SEAL) and is licensed
3
+ * under the terms of the GNU Lesser General Public License. See COPYING
4
+ * attached with the library.
5
+ *
6
+ * reader.h provides utilities related to file input.
7
+ */
8
+
9
+ #ifndef _SEAL_READER_H_
10
+ #define _SEAL_READER_H_
11
+
12
+ #include <stdint.h>
13
+ #include <stddef.h>
14
+ #include <stdio.h>
15
+
16
+ /* Makes a 32-bit tag in little-endian. No multiple evaluations. */
17
+ #define SEAL_MKTAG(a, b, c, d) ((a) | (b) << 8 | (c) << 16 | (d) << 24)
18
+
19
+ /*
20
+ * Processes filename encoding and then open the file. Does not return
21
+ * `seal_err_t', so caller should be checking if the returned pointer is 0.
22
+ *
23
+ * @param filename the filename to open
24
+ * @return the opened file pointer
25
+ */
26
+ FILE* _seal_fopen(const char* /*filename*/);
27
+
28
+ /*
29
+ * @param file the file pointer to close
30
+ */
31
+ void _seal_fclose(FILE*);
32
+
33
+ /*
34
+ * Reads unsigned 16-bit integers in little-endian.
35
+ *
36
+ * @param buf the array of integers to receive the data
37
+ * @param size the size of the array
38
+ * @param file the file input stream
39
+ */
40
+ void _seal_read_uint16le(uint16_t* /*buf*/, size_t, void* /*file*/);
41
+
42
+ /*
43
+ * Reads unsigned 32-bit integers in little-endian.
44
+ *
45
+ * @param buf the array of integers to receive the data
46
+ * @param size the size of the array
47
+ * @param file the file input stream
48
+ */
49
+ void _seal_read_uint32le(uint32_t* /*buf*/, size_t, void* /*file*/);
50
+
51
+ /*
52
+ * Skips `nbytes' bytes (seek forward).
53
+ *
54
+ * @param nbytes the number of bytes to skip
55
+ * @param file the file input stream
56
+ */
57
+ void _seal_skip(uint32_t /*nbytes*/, void* /*file*/);
58
+
59
+ #endif /* _SEAL_READER_H_ */