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,138 @@
1
+ /*
2
+ compat: Some compatibility functions.
3
+
4
+ The mpg123 code is determined to keep it's legacy. A legacy of old, old UNIX.
5
+ So anything possibly somewhat advanced should be considered to be put here, with proper #ifdef;-)
6
+
7
+ copyright 2007-8 by the mpg123 project - free software under the terms of the LGPL 2.1
8
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
9
+ initially written by Thomas Orgis, Windows Unicode stuff by JonY.
10
+ */
11
+
12
+ #include "config.h"
13
+ #include "compat.h"
14
+
15
+ #ifdef _MSC_VER
16
+ #include <io.h>
17
+ #else
18
+ #include <fcntl.h>
19
+ #endif
20
+ #include <sys/stat.h>
21
+
22
+ #ifdef WANT_WIN32_UNICODE
23
+ #include <wchar.h>
24
+ #include <windows.h>
25
+ #include <winnls.h>
26
+ #endif
27
+
28
+ #include "debug.h"
29
+
30
+ /* A safe realloc also for very old systems where realloc(NULL, size) returns NULL. */
31
+ void *safe_realloc(void *ptr, size_t size)
32
+ {
33
+ if(ptr == NULL) return malloc(size);
34
+ else return realloc(ptr, size);
35
+ }
36
+
37
+ #ifndef HAVE_STRERROR
38
+ const char *strerror(int errnum)
39
+ {
40
+ extern int sys_nerr;
41
+ extern char *sys_errlist[];
42
+
43
+ return (errnum < sys_nerr) ? sys_errlist[errnum] : "";
44
+ }
45
+ #endif
46
+
47
+ #ifndef HAVE_STRDUP
48
+ char *strdup(const char *src)
49
+ {
50
+ char *dest;
51
+
52
+ if (!(dest = (char *) malloc(strlen(src)+1)))
53
+ return NULL;
54
+ else
55
+ return strcpy(dest, src);
56
+ }
57
+ #endif
58
+
59
+ int compat_open(const char *filename, int flags)
60
+ {
61
+ int ret;
62
+ #if defined (WANT_WIN32_UNICODE)
63
+ wchar_t *frag = NULL;
64
+
65
+ ret = win32_utf8_wide(filename, &frag, NULL);
66
+ if ((frag == NULL) || (ret == 0)) goto fallback; /* Fallback to plain open when ucs-2 conversion fails */
67
+
68
+ ret = _wopen(frag, flags); /*Try _wopen */
69
+ if (ret != -1 ) goto open_ok; /* msdn says -1 means failure */
70
+
71
+ fallback:
72
+ #endif
73
+
74
+ #if (defined(WIN32) && !defined (__CYGWIN__)) /* MSDN says POSIX function is deprecated beginning in Visual C++ 2005 */
75
+ ret = _open(filename, flags); /* Try plain old _open(), if it fails, do nothing */
76
+ #else
77
+ /* On UNIX, we always add a default permission mask in case flags|O_CREAT. */
78
+ ret = open(filename, flags, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
79
+ #endif
80
+
81
+ #if defined (WANT_WIN32_UNICODE)
82
+ open_ok:
83
+ free ((void *)frag); /* Freeing a NULL should be OK */
84
+ #endif
85
+
86
+ return ret;
87
+ }
88
+
89
+ int compat_close(int infd)
90
+ {
91
+ #if (defined(WIN32) && !defined (__CYGWIN__)) /* MSDN says POSIX function is deprecated beginning in Visual C++ 2005 */
92
+ return _close(infd);
93
+ #else
94
+ return close(infd);
95
+ #endif
96
+ }
97
+
98
+ /* Windows Unicode stuff */
99
+
100
+ #ifdef WANT_WIN32_UNICODE
101
+ int win32_wide_utf8(const wchar_t * const wptr, char **mbptr, size_t * buflen)
102
+ {
103
+ size_t len;
104
+ char *buf;
105
+ int ret = 0;
106
+
107
+ len = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, NULL, 0, NULL, NULL); /* Get utf-8 string length */
108
+ buf = calloc(len + 1, sizeof (char)); /* Can we assume sizeof char always = 1? */
109
+
110
+ if(!buf) len = 0;
111
+ else {
112
+ if (len != 0) ret = WideCharToMultiByte(CP_UTF8, 0, wptr, -1, buf, len, NULL, NULL); /*Do actual conversion*/
113
+ buf[len] = '0'; /* Must terminate */
114
+ }
115
+ *mbptr = buf; /* Set string pointer to allocated buffer */
116
+ if(buflen != NULL) *buflen = (len) * sizeof (char); /* Give length of allocated memory if needed. */
117
+ return ret;
118
+ }
119
+
120
+ int win32_utf8_wide(const char *const mbptr, wchar_t **wptr, size_t *buflen)
121
+ {
122
+ size_t len;
123
+ wchar_t *buf;
124
+ int ret = 0;
125
+
126
+ len = MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, NULL, 0); /* Get converted size */
127
+ buf = calloc(len + 1, sizeof (wchar_t)); /* Allocate memory accordingly */
128
+
129
+ if(!buf) len = 0;
130
+ else {
131
+ if (len != 0) ret = MultiByteToWideChar (CP_UTF8, MB_ERR_INVALID_CHARS, mbptr, -1, buf, len); /* Do conversion */
132
+ buf[len] = L'0'; /* Must terminate */
133
+ }
134
+ *wptr = buf; /* Set string pointer to allocated buffer */
135
+ if (buflen != NULL) *buflen = len * sizeof (wchar_t); /* Give length of allocated memory if needed. */
136
+ return ret; /* Number of characters written */
137
+ }
138
+ #endif
@@ -0,0 +1,178 @@
1
+ /*
2
+ compat: Some compatibility functions and header inclusions.
3
+ Basic standard C stuff, that may barely be above/around C89.
4
+
5
+ The mpg123 code is determined to keep it's legacy. A legacy of old, old UNIX.
6
+ It is envisioned to include this compat header instead of any of the "standard" headers, to catch compatibility issues.
7
+ So, don't include stdlib.h or string.h ... include compat.h.
8
+
9
+ copyright 2007-8 by the mpg123 project - free software under the terms of the LGPL 2.1
10
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
11
+ initially written by Thomas Orgis
12
+ */
13
+
14
+ #ifndef MPG123_COMPAT_H
15
+ #define MPG123_COMPAT_H
16
+
17
+ #include "config.h"
18
+ #include "intsym.h"
19
+
20
+ #ifdef HAVE_STDLIB_H
21
+ /* realloc, size_t */
22
+ #include <stdlib.h>
23
+ #endif
24
+
25
+ #include <stdio.h>
26
+ #include <math.h>
27
+
28
+ #ifdef HAVE_SIGNAL_H
29
+ #include <signal.h>
30
+ #else
31
+ #ifdef HAVE_SYS_SIGNAL_H
32
+ #include <sys/signal.h>
33
+ #endif
34
+ #endif
35
+
36
+ #ifdef HAVE_UNISTD_H
37
+ #include <unistd.h>
38
+ #endif
39
+
40
+ /* Types, types, types. */
41
+ /* Do we actually need these two in addition to sys/types.h? As replacement? */
42
+ #ifdef HAVE_SYS_TYPES_H
43
+ #include <sys/types.h>
44
+ #endif
45
+ #ifdef HAVE_INTTYPES_H
46
+ #include <inttypes.h>
47
+ #endif
48
+ #ifdef HAVE_STDINT_H
49
+ #include <stdint.h>
50
+ #endif
51
+ /* We want SIZE_MAX, etc. */
52
+ #ifdef HAVE_LIMITS_H
53
+ #include <limits.h>
54
+ #endif
55
+
56
+ #ifndef SIZE_MAX
57
+ #define SIZE_MAX ((size_t)-1)
58
+ #endif
59
+ #ifndef ULONG_MAX
60
+ #define ULONG_MAX ((unsigned long)-1)
61
+ #endif
62
+
63
+ #ifdef HAVE_STRING_H
64
+ #include <string.h>
65
+ #endif
66
+
67
+ #ifdef OS2
68
+ #include <float.h>
69
+ #endif
70
+
71
+ #ifdef HAVE_SYS_TIME_H
72
+ #include <sys/time.h>
73
+ #endif
74
+ /* For select(), I need select.h according to POSIX 2001, else: sys/time.h sys/types.h unistd.h */
75
+ #ifdef HAVE_SYS_SELECT_H
76
+ #include <sys/select.h>
77
+ #endif
78
+
79
+ /* To parse big numbers... */
80
+ #ifdef HAVE_ATOLL
81
+ #define atobigint atoll
82
+ #else
83
+ #define atobigint atol
84
+ #endif
85
+
86
+ typedef unsigned char byte;
87
+
88
+ /* A safe realloc also for very old systems where realloc(NULL, size) returns NULL. */
89
+ void *safe_realloc(void *ptr, size_t size);
90
+ #ifndef HAVE_STRERROR
91
+ const char *strerror(int errnum);
92
+ #endif
93
+
94
+ #ifndef HAVE_STRDUP
95
+ char *strdup(const char *s);
96
+ #endif
97
+
98
+ /* If we have the size checks enabled, try to derive some sane printfs.
99
+ Simple start: Use max integer type and format if long is not big enough.
100
+ I am hesitating to use %ll without making sure that it's there... */
101
+ #if !(defined PLAIN_C89) && (defined SIZEOF_OFF_T) && (SIZEOF_OFF_T > SIZEOF_LONG) && (defined PRIiMAX)
102
+ # define OFF_P PRIiMAX
103
+ typedef intmax_t off_p;
104
+ #else
105
+ # define OFF_P "li"
106
+ typedef long off_p;
107
+ #endif
108
+
109
+ #if !(defined PLAIN_C89) && (defined SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > SIZEOF_LONG) && (defined PRIuMAX)
110
+ # define SIZE_P PRIuMAX
111
+ typedef uintmax_t size_p;
112
+ #else
113
+ # define SIZE_P "lu"
114
+ typedef unsigned long size_p;
115
+ #endif
116
+
117
+ #if !(defined PLAIN_C89) && (defined SIZEOF_SSIZE_T) && (SIZEOF_SSIZE_T > SIZEOF_LONG) && (defined PRIiMAX)
118
+ # define SSIZE_P PRIuMAX
119
+ typedef intmax_t ssize_p;
120
+ #else
121
+ # define SSIZE_P "li"
122
+ typedef long ssize_p;
123
+ #endif
124
+
125
+ /**
126
+ * Opening a file handle can be different.
127
+ * This function here is defined to take a path in native encoding (ISO8859 / UTF-8 / ...), or, when MS Windows Unicode support is enabled, an UTF-8 string that will be converted back to native UCS-2 (wide character) before calling the system's open function.
128
+ * @param[in] wptr Pointer to wide string.
129
+ * @param[in] mbptr Pointer to multibyte string.
130
+ * @return file descriptor (>=0) or error code.
131
+ */
132
+ int compat_open(const char *filename, int flags);
133
+
134
+ /**
135
+ * Closing a file handle can be platform specific.
136
+ * This function takes a file descriptor that is to be closed.
137
+ * @param[in] infd File descriptor to be closed.
138
+ * @return 0 if the file was successfully closed. A return value of -1 indicates an error.
139
+ */
140
+ int compat_close(int infd);
141
+
142
+ /* Those do make sense in a separate file, but I chose to include them in compat.c because that's the one source whose object is shared between mpg123 and libmpg123 -- and both need the functionality internally. */
143
+
144
+ #ifdef WANT_WIN32_UNICODE
145
+ /**
146
+ * win32_uni2mbc
147
+ * Converts a null terminated UCS-2 string to a multibyte (UTF-8) equivalent.
148
+ * Caller is supposed to free allocated buffer.
149
+ * @param[in] wptr Pointer to wide string.
150
+ * @param[out] mbptr Pointer to multibyte string.
151
+ * @param[out] buflen Optional parameter for length of allocated buffer.
152
+ * @return status of WideCharToMultiByte conversion.
153
+ *
154
+ * WideCharToMultiByte - http://msdn.microsoft.com/en-us/library/dd374130(VS.85).aspx
155
+ */
156
+ int win32_wide_utf8(const wchar_t * const wptr, char **mbptr, size_t * buflen);
157
+
158
+ /**
159
+ * win32_mbc2uni
160
+ * Converts a null terminated UTF-8 string to a UCS-2 equivalent.
161
+ * Caller is supposed to free allocated buffer.
162
+ * @param[out] mbptr Pointer to multibyte string.
163
+ * @param[in] wptr Pointer to wide string.
164
+ * @param[out] buflen Optional parameter for length of allocated buffer.
165
+ * @return status of WideCharToMultiByte conversion.
166
+ *
167
+ * MultiByteToWideChar - http://msdn.microsoft.com/en-us/library/dd319072(VS.85).aspx
168
+ */
169
+
170
+ int win32_utf8_wide(const char *const mbptr, wchar_t **wptr, size_t *buflen);
171
+ #endif
172
+
173
+ /* That one comes from Tellie on OS/2, needed in resolver. */
174
+ #ifdef __KLIBC__
175
+ typedef int socklen_t;
176
+ #endif
177
+
178
+ #endif
@@ -0,0 +1,505 @@
1
+ /*
2
+ dct64_3dnow.s: Replacement of dct36() with AMD's 3DNow! SIMD operations support
3
+
4
+ copyright ?-2006 by the mpg123 project - free software under the terms of the LGPL 2.1
5
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
6
+ initially written by Syuuhei Kashiyama
7
+
8
+ This code based 'dct36_3dnow.s' by Syuuhei Kashiyama
9
+ <squash@mb.kcom.ne.jp>,only two types of changes have been made:
10
+
11
+ - remove PREFETCH instruction for speedup
12
+ - change function name for support 3DNow! automatic detect
13
+
14
+ You can find Kashiyama's original 3dnow! support patch
15
+ (for mpg123-0.59o) at
16
+ http://user.ecc.u-tokyo.ac.jp/~g810370/linux-simd/ (Japanese).
17
+
18
+ by KIMURA Takuhiro <kim@hannah.ipc.miyakyo-u.ac.jp> - until 31.Mar.1999
19
+ <kim@comtec.co.jp> - after 1.Apr.1999
20
+
21
+ Replacement of dct36() with AMD's 3DNow! SIMD operations support
22
+
23
+ Syuuhei Kashiyama <squash@mb.kcom.ne.jp>
24
+
25
+ The author of this program disclaim whole expressed or implied
26
+ warranties with regard to this program, and in no event shall the
27
+ author of this program liable to whatever resulted from the use of
28
+ this program. Use it at your own risk.
29
+ */
30
+
31
+ #include "mangle.h"
32
+
33
+ .globl ASM_NAME(dct36_3dnow)
34
+ /* .type ASM_NAME(dct36_3dnow),@function */
35
+ ASM_NAME(dct36_3dnow):
36
+ pushl %ebp
37
+ movl %esp,%ebp
38
+ subl $120,%esp
39
+ pushl %esi
40
+ pushl %ebx
41
+ movl 8(%ebp),%eax
42
+ movl 12(%ebp),%esi
43
+ movl 16(%ebp),%ecx
44
+ movl 20(%ebp),%edx
45
+ movl 24(%ebp),%ebx
46
+ leal -128(%ebp),%esp
47
+
48
+ femms
49
+ movq (%eax),%mm0
50
+ movq 4(%eax),%mm1
51
+ pfadd %mm1,%mm0
52
+ movq %mm0,4(%eax)
53
+ psrlq $32,%mm1
54
+ movq 12(%eax),%mm2
55
+ punpckldq %mm2,%mm1
56
+ pfadd %mm2,%mm1
57
+ movq %mm1,12(%eax)
58
+ psrlq $32,%mm2
59
+ movq 20(%eax),%mm3
60
+ punpckldq %mm3,%mm2
61
+ pfadd %mm3,%mm2
62
+ movq %mm2,20(%eax)
63
+ psrlq $32,%mm3
64
+ movq 28(%eax),%mm4
65
+ punpckldq %mm4,%mm3
66
+ pfadd %mm4,%mm3
67
+ movq %mm3,28(%eax)
68
+ psrlq $32,%mm4
69
+ movq 36(%eax),%mm5
70
+ punpckldq %mm5,%mm4
71
+ pfadd %mm5,%mm4
72
+ movq %mm4,36(%eax)
73
+ psrlq $32,%mm5
74
+ movq 44(%eax),%mm6
75
+ punpckldq %mm6,%mm5
76
+ pfadd %mm6,%mm5
77
+ movq %mm5,44(%eax)
78
+ psrlq $32,%mm6
79
+ movq 52(%eax),%mm7
80
+ punpckldq %mm7,%mm6
81
+ pfadd %mm7,%mm6
82
+ movq %mm6,52(%eax)
83
+ psrlq $32,%mm7
84
+ movq 60(%eax),%mm0
85
+ punpckldq %mm0,%mm7
86
+ pfadd %mm0,%mm7
87
+ movq %mm7,60(%eax)
88
+ psrlq $32,%mm0
89
+ movd 68(%eax),%mm1
90
+ pfadd %mm1,%mm0
91
+ movd %mm0,68(%eax)
92
+ movd 4(%eax),%mm0
93
+ movd 12(%eax),%mm1
94
+ punpckldq %mm1,%mm0
95
+ punpckldq 20(%eax),%mm1
96
+ pfadd %mm1,%mm0
97
+ movd %mm0,12(%eax)
98
+ psrlq $32,%mm0
99
+ movd %mm0,20(%eax)
100
+ psrlq $32,%mm1
101
+ movd 28(%eax),%mm2
102
+ punpckldq %mm2,%mm1
103
+ punpckldq 36(%eax),%mm2
104
+ pfadd %mm2,%mm1
105
+ movd %mm1,28(%eax)
106
+ psrlq $32,%mm1
107
+ movd %mm1,36(%eax)
108
+ psrlq $32,%mm2
109
+ movd 44(%eax),%mm3
110
+ punpckldq %mm3,%mm2
111
+ punpckldq 52(%eax),%mm3
112
+ pfadd %mm3,%mm2
113
+ movd %mm2,44(%eax)
114
+ psrlq $32,%mm2
115
+ movd %mm2,52(%eax)
116
+ psrlq $32,%mm3
117
+ movd 60(%eax),%mm4
118
+ punpckldq %mm4,%mm3
119
+ punpckldq 68(%eax),%mm4
120
+ pfadd %mm4,%mm3
121
+ movd %mm3,60(%eax)
122
+ psrlq $32,%mm3
123
+ movd %mm3,68(%eax)
124
+
125
+ movq 24(%eax),%mm0
126
+ movq 48(%eax),%mm1
127
+ movd ASM_NAME(COS9)+12,%mm2
128
+ punpckldq %mm2,%mm2
129
+ movd ASM_NAME(COS9)+24,%mm3
130
+ punpckldq %mm3,%mm3
131
+ pfmul %mm2,%mm0
132
+ pfmul %mm3,%mm1
133
+ pushl %eax
134
+ movl $1,%eax
135
+ movd %eax,%mm7
136
+ pi2fd %mm7,%mm7
137
+ popl %eax
138
+ movq 8(%eax),%mm2
139
+ movd ASM_NAME(COS9)+4,%mm3
140
+ punpckldq %mm3,%mm3
141
+ pfmul %mm3,%mm2
142
+ pfadd %mm0,%mm2
143
+ movq 40(%eax),%mm3
144
+ movd ASM_NAME(COS9)+20,%mm4
145
+ punpckldq %mm4,%mm4
146
+ pfmul %mm4,%mm3
147
+ pfadd %mm3,%mm2
148
+ movq 56(%eax),%mm3
149
+ movd ASM_NAME(COS9)+28,%mm4
150
+ punpckldq %mm4,%mm4
151
+ pfmul %mm4,%mm3
152
+ pfadd %mm3,%mm2
153
+ movq (%eax),%mm3
154
+ movq 16(%eax),%mm4
155
+ movd ASM_NAME(COS9)+8,%mm5
156
+ punpckldq %mm5,%mm5
157
+ pfmul %mm5,%mm4
158
+ pfadd %mm4,%mm3
159
+ movq 32(%eax),%mm4
160
+ movd ASM_NAME(COS9)+16,%mm5
161
+ punpckldq %mm5,%mm5
162
+ pfmul %mm5,%mm4
163
+ pfadd %mm4,%mm3
164
+ pfadd %mm1,%mm3
165
+ movq 64(%eax),%mm4
166
+ movd ASM_NAME(COS9)+32,%mm5
167
+ punpckldq %mm5,%mm5
168
+ pfmul %mm5,%mm4
169
+ pfadd %mm4,%mm3
170
+ movq %mm2,%mm4
171
+ pfadd %mm3,%mm4
172
+ movq %mm7,%mm5
173
+ punpckldq ASM_NAME(tfcos36)+0,%mm5
174
+ pfmul %mm5,%mm4
175
+ movq %mm4,%mm5
176
+ pfacc %mm5,%mm5
177
+ movd 108(%edx),%mm6
178
+ punpckldq 104(%edx),%mm6
179
+ pfmul %mm6,%mm5
180
+ movd %mm5,36(%ecx)
181
+ psrlq $32,%mm5
182
+ movd %mm5,32(%ecx)
183
+ movq %mm4,%mm6
184
+ punpckldq %mm6,%mm5
185
+ pfsub %mm6,%mm5
186
+ punpckhdq %mm5,%mm5
187
+ movd 32(%edx),%mm6
188
+ punpckldq 36(%edx),%mm6
189
+ pfmul %mm6,%mm5
190
+ movd 32(%esi),%mm6
191
+ punpckldq 36(%esi),%mm6
192
+ pfadd %mm6,%mm5
193
+ movd %mm5,1024(%ebx)
194
+ psrlq $32,%mm5
195
+ movd %mm5,1152(%ebx)
196
+ movq %mm3,%mm4
197
+ pfsub %mm2,%mm4
198
+ movq %mm7,%mm5
199
+ punpckldq ASM_NAME(tfcos36)+32,%mm5
200
+ pfmul %mm5,%mm4
201
+ movq %mm4,%mm5
202
+ pfacc %mm5,%mm5
203
+ movd 140(%edx),%mm6
204
+ punpckldq 72(%edx),%mm6
205
+ pfmul %mm6,%mm5
206
+ movd %mm5,68(%ecx)
207
+ psrlq $32,%mm5
208
+ movd %mm5,0(%ecx)
209
+ movq %mm4,%mm6
210
+ punpckldq %mm6,%mm5
211
+ pfsub %mm6,%mm5
212
+ punpckhdq %mm5,%mm5
213
+ movd 0(%edx),%mm6
214
+ punpckldq 68(%edx),%mm6
215
+ pfmul %mm6,%mm5
216
+ movd 0(%esi),%mm6
217
+ punpckldq 68(%esi),%mm6
218
+ pfadd %mm6,%mm5
219
+ movd %mm5,0(%ebx)
220
+ psrlq $32,%mm5
221
+ movd %mm5,2176(%ebx)
222
+ movq 8(%eax),%mm2
223
+ movq 40(%eax),%mm3
224
+ pfsub %mm3,%mm2
225
+ movq 56(%eax),%mm3
226
+ pfsub %mm3,%mm2
227
+ movd ASM_NAME(COS9)+12,%mm3
228
+ punpckldq %mm3,%mm3
229
+ pfmul %mm3,%mm2
230
+ movq 16(%eax),%mm3
231
+ movq 32(%eax),%mm4
232
+ pfsub %mm4,%mm3
233
+ movq 64(%eax),%mm4
234
+ pfsub %mm4,%mm3
235
+ movd ASM_NAME(COS9)+24,%mm4
236
+ punpckldq %mm4,%mm4
237
+ pfmul %mm4,%mm3
238
+ movq 48(%eax),%mm4
239
+ pfsub %mm4,%mm3
240
+ movq (%eax),%mm4
241
+ pfadd %mm4,%mm3
242
+ movq %mm2,%mm4
243
+ pfadd %mm3,%mm4
244
+ movq %mm7,%mm5
245
+ punpckldq ASM_NAME(tfcos36)+4,%mm5
246
+ pfmul %mm5,%mm4
247
+ movq %mm4,%mm5
248
+ pfacc %mm5,%mm5
249
+ movd 112(%edx),%mm6
250
+ punpckldq 100(%edx),%mm6
251
+ pfmul %mm6,%mm5
252
+ movd %mm5,40(%ecx)
253
+ psrlq $32,%mm5
254
+ movd %mm5,28(%ecx)
255
+ movq %mm4,%mm6
256
+ punpckldq %mm6,%mm5
257
+ pfsub %mm6,%mm5
258
+ punpckhdq %mm5,%mm5
259
+ movd 28(%edx),%mm6
260
+ punpckldq 40(%edx),%mm6
261
+ pfmul %mm6,%mm5
262
+ movd 28(%esi),%mm6
263
+ punpckldq 40(%esi),%mm6
264
+ pfadd %mm6,%mm5
265
+ movd %mm5,896(%ebx)
266
+ psrlq $32,%mm5
267
+ movd %mm5,1280(%ebx)
268
+ movq %mm3,%mm4
269
+ pfsub %mm2,%mm4
270
+ movq %mm7,%mm5
271
+ punpckldq ASM_NAME(tfcos36)+28,%mm5
272
+ pfmul %mm5,%mm4
273
+ movq %mm4,%mm5
274
+ pfacc %mm5,%mm5
275
+ movd 136(%edx),%mm6
276
+ punpckldq 76(%edx),%mm6
277
+ pfmul %mm6,%mm5
278
+ movd %mm5,64(%ecx)
279
+ psrlq $32,%mm5
280
+ movd %mm5,4(%ecx)
281
+ movq %mm4,%mm6
282
+ punpckldq %mm6,%mm5
283
+ pfsub %mm6,%mm5
284
+ punpckhdq %mm5,%mm5
285
+ movd 4(%edx),%mm6
286
+ punpckldq 64(%edx),%mm6
287
+ pfmul %mm6,%mm5
288
+ movd 4(%esi),%mm6
289
+ punpckldq 64(%esi),%mm6
290
+ pfadd %mm6,%mm5
291
+ movd %mm5,128(%ebx)
292
+ psrlq $32,%mm5
293
+ movd %mm5,2048(%ebx)
294
+
295
+ movq 8(%eax),%mm2
296
+ movd ASM_NAME(COS9)+20,%mm3
297
+ punpckldq %mm3,%mm3
298
+ pfmul %mm3,%mm2
299
+ pfsub %mm0,%mm2
300
+ movq 40(%eax),%mm3
301
+ movd ASM_NAME(COS9)+28,%mm4
302
+ punpckldq %mm4,%mm4
303
+ pfmul %mm4,%mm3
304
+ pfsub %mm3,%mm2
305
+ movq 56(%eax),%mm3
306
+ movd ASM_NAME(COS9)+4,%mm4
307
+ punpckldq %mm4,%mm4
308
+ pfmul %mm4,%mm3
309
+ pfadd %mm3,%mm2
310
+ movq (%eax),%mm3
311
+ movq 16(%eax),%mm4
312
+ movd ASM_NAME(COS9)+32,%mm5
313
+ punpckldq %mm5,%mm5
314
+ pfmul %mm5,%mm4
315
+ pfsub %mm4,%mm3
316
+ movq 32(%eax),%mm4
317
+ movd ASM_NAME(COS9)+8,%mm5
318
+ punpckldq %mm5,%mm5
319
+ pfmul %mm5,%mm4
320
+ pfsub %mm4,%mm3
321
+ pfadd %mm1,%mm3
322
+ movq 64(%eax),%mm4
323
+ movd ASM_NAME(COS9)+16,%mm5
324
+ punpckldq %mm5,%mm5
325
+ pfmul %mm5,%mm4
326
+ pfadd %mm4,%mm3
327
+ movq %mm2,%mm4
328
+ pfadd %mm3,%mm4
329
+ movq %mm7,%mm5
330
+ punpckldq ASM_NAME(tfcos36)+8,%mm5
331
+ pfmul %mm5,%mm4
332
+ movq %mm4,%mm5
333
+ pfacc %mm5,%mm5
334
+ movd 116(%edx),%mm6
335
+ punpckldq 96(%edx),%mm6
336
+ pfmul %mm6,%mm5
337
+ movd %mm5,44(%ecx)
338
+ psrlq $32,%mm5
339
+ movd %mm5,24(%ecx)
340
+ movq %mm4,%mm6
341
+ punpckldq %mm6,%mm5
342
+ pfsub %mm6,%mm5
343
+ punpckhdq %mm5,%mm5
344
+ movd 24(%edx),%mm6
345
+ punpckldq 44(%edx),%mm6
346
+ pfmul %mm6,%mm5
347
+ movd 24(%esi),%mm6
348
+ punpckldq 44(%esi),%mm6
349
+ pfadd %mm6,%mm5
350
+ movd %mm5,768(%ebx)
351
+ psrlq $32,%mm5
352
+ movd %mm5,1408(%ebx)
353
+ movq %mm3,%mm4
354
+ pfsub %mm2,%mm4
355
+ movq %mm7,%mm5
356
+ punpckldq ASM_NAME(tfcos36)+24,%mm5
357
+ pfmul %mm5,%mm4
358
+ movq %mm4,%mm5
359
+ pfacc %mm5,%mm5
360
+ movd 132(%edx),%mm6
361
+ punpckldq 80(%edx),%mm6
362
+ pfmul %mm6,%mm5
363
+ movd %mm5,60(%ecx)
364
+ psrlq $32,%mm5
365
+ movd %mm5,8(%ecx)
366
+ movq %mm4,%mm6
367
+ punpckldq %mm6,%mm5
368
+ pfsub %mm6,%mm5
369
+ punpckhdq %mm5,%mm5
370
+ movd 8(%edx),%mm6
371
+ punpckldq 60(%edx),%mm6
372
+ pfmul %mm6,%mm5
373
+ movd 8(%esi),%mm6
374
+ punpckldq 60(%esi),%mm6
375
+ pfadd %mm6,%mm5
376
+ movd %mm5,256(%ebx)
377
+ psrlq $32,%mm5
378
+ movd %mm5,1920(%ebx)
379
+ movq 8(%eax),%mm2
380
+ movd ASM_NAME(COS9)+28,%mm3
381
+ punpckldq %mm3,%mm3
382
+ pfmul %mm3,%mm2
383
+ pfsub %mm0,%mm2
384
+ movq 40(%eax),%mm3
385
+ movd ASM_NAME(COS9)+4,%mm4
386
+ punpckldq %mm4,%mm4
387
+ pfmul %mm4,%mm3
388
+ pfadd %mm3,%mm2
389
+ movq 56(%eax),%mm3
390
+ movd ASM_NAME(COS9)+20,%mm4
391
+ punpckldq %mm4,%mm4
392
+ pfmul %mm4,%mm3
393
+ pfsub %mm3,%mm2
394
+ movq (%eax),%mm3
395
+ movq 16(%eax),%mm4
396
+ movd ASM_NAME(COS9)+16,%mm5
397
+ punpckldq %mm5,%mm5
398
+ pfmul %mm5,%mm4
399
+ pfsub %mm4,%mm3
400
+ movq 32(%eax),%mm4
401
+ movd ASM_NAME(COS9)+32,%mm5
402
+ punpckldq %mm5,%mm5
403
+ pfmul %mm5,%mm4
404
+ pfadd %mm4,%mm3
405
+ pfadd %mm1,%mm3
406
+ movq 64(%eax),%mm4
407
+ movd ASM_NAME(COS9)+8,%mm5
408
+ punpckldq %mm5,%mm5
409
+ pfmul %mm5,%mm4
410
+ pfsub %mm4,%mm3
411
+ movq %mm2,%mm4
412
+ pfadd %mm3,%mm4
413
+ movq %mm7,%mm5
414
+ punpckldq ASM_NAME(tfcos36)+12,%mm5
415
+ pfmul %mm5,%mm4
416
+ movq %mm4,%mm5
417
+ pfacc %mm5,%mm5
418
+ movd 120(%edx),%mm6
419
+ punpckldq 92(%edx),%mm6
420
+ pfmul %mm6,%mm5
421
+ movd %mm5,48(%ecx)
422
+ psrlq $32,%mm5
423
+ movd %mm5,20(%ecx)
424
+ movq %mm4,%mm6
425
+ punpckldq %mm6,%mm5
426
+ pfsub %mm6,%mm5
427
+ punpckhdq %mm5,%mm5
428
+ movd 20(%edx),%mm6
429
+ punpckldq 48(%edx),%mm6
430
+ pfmul %mm6,%mm5
431
+ movd 20(%esi),%mm6
432
+ punpckldq 48(%esi),%mm6
433
+ pfadd %mm6,%mm5
434
+ movd %mm5,640(%ebx)
435
+ psrlq $32,%mm5
436
+ movd %mm5,1536(%ebx)
437
+ movq %mm3,%mm4
438
+ pfsub %mm2,%mm4
439
+ movq %mm7,%mm5
440
+ punpckldq ASM_NAME(tfcos36)+20,%mm5
441
+ pfmul %mm5,%mm4
442
+ movq %mm4,%mm5
443
+ pfacc %mm5,%mm5
444
+ movd 128(%edx),%mm6
445
+ punpckldq 84(%edx),%mm6
446
+ pfmul %mm6,%mm5
447
+ movd %mm5,56(%ecx)
448
+ psrlq $32,%mm5
449
+ movd %mm5,12(%ecx)
450
+ movq %mm4,%mm6
451
+ punpckldq %mm6,%mm5
452
+ pfsub %mm6,%mm5
453
+ punpckhdq %mm5,%mm5
454
+ movd 12(%edx),%mm6
455
+ punpckldq 56(%edx),%mm6
456
+ pfmul %mm6,%mm5
457
+ movd 12(%esi),%mm6
458
+ punpckldq 56(%esi),%mm6
459
+ pfadd %mm6,%mm5
460
+ movd %mm5,384(%ebx)
461
+ psrlq $32,%mm5
462
+ movd %mm5,1792(%ebx)
463
+
464
+ movq (%eax),%mm4
465
+ movq 16(%eax),%mm3
466
+ pfsub %mm3,%mm4
467
+ movq 32(%eax),%mm3
468
+ pfadd %mm3,%mm4
469
+ movq 48(%eax),%mm3
470
+ pfsub %mm3,%mm4
471
+ movq 64(%eax),%mm3
472
+ pfadd %mm3,%mm4
473
+ movq %mm7,%mm5
474
+ punpckldq ASM_NAME(tfcos36)+16,%mm5
475
+ pfmul %mm5,%mm4
476
+ movq %mm4,%mm5
477
+ pfacc %mm5,%mm5
478
+ movd 124(%edx),%mm6
479
+ punpckldq 88(%edx),%mm6
480
+ pfmul %mm6,%mm5
481
+ movd %mm5,52(%ecx)
482
+ psrlq $32,%mm5
483
+ movd %mm5,16(%ecx)
484
+ movq %mm4,%mm6
485
+ punpckldq %mm6,%mm5
486
+ pfsub %mm6,%mm5
487
+ punpckhdq %mm5,%mm5
488
+ movd 16(%edx),%mm6
489
+ punpckldq 52(%edx),%mm6
490
+ pfmul %mm6,%mm5
491
+ movd 16(%esi),%mm6
492
+ punpckldq 52(%esi),%mm6
493
+ pfadd %mm6,%mm5
494
+ movd %mm5,512(%ebx)
495
+ psrlq $32,%mm5
496
+ movd %mm5,1664(%ebx)
497
+
498
+ femms
499
+ popl %ebx
500
+ popl %esi
501
+ movl %ebp,%esp
502
+ popl %ebp
503
+ ret
504
+
505
+ NONEXEC_STACK