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,259 @@
1
+ /*
2
+ synth_x86_64_float: SSE optimized synth for x86-64 (float output version)
3
+
4
+ copyright 1995-2009 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 Taihei Monma
7
+ */
8
+
9
+ #include "mangle.h"
10
+
11
+ #ifdef _WIN64
12
+ /* short *window; */
13
+ #define ARG0 %r10
14
+ /* short *b0; */
15
+ #define ARG1 %rdx
16
+ /* short *samples; */
17
+ #define ARG2 %r8
18
+ /* int bo1; */
19
+ #define ARG3 %r9
20
+ #else
21
+ /* real *window; */
22
+ #define ARG0 %rdi
23
+ /* real *b0; */
24
+ #define ARG1 %rsi
25
+ /* real *samples; */
26
+ #define ARG2 %rdx
27
+ /* int bo1; */
28
+ #define ARG3 %rcx
29
+ #endif
30
+
31
+ #define XMMREG_SCALE %xmm15 /* {1/32768.0, 1/32768.0, 1/32768.0, 1/32768.0} */
32
+
33
+ /*
34
+ int synth_1to1_real_x86_64_asm(real *window, real *b0, real *samples, int bo1);
35
+ return value: number of clipped samples (0)
36
+ */
37
+
38
+ #ifndef __APPLE__
39
+ .section .rodata
40
+ #else
41
+ .data
42
+ #endif
43
+ ALIGN32
44
+ ASM_NAME(scale_x86_64):
45
+ .long 939524096
46
+ .long 939524096
47
+ .long 939524096
48
+ .long 939524096
49
+ .text
50
+ ALIGN16
51
+ .globl ASM_NAME(synth_1to1_real_x86_64_asm)
52
+ ASM_NAME(synth_1to1_real_x86_64_asm):
53
+ #ifdef _WIN64 /* should save xmm6-15 */
54
+ movq %rcx, ARG0
55
+ subq $120, %rsp /* stack alignment + 7 xmm registers */
56
+ movaps %xmm6, (%rsp)
57
+ movaps %xmm7, 16(%rsp)
58
+ movaps %xmm8, 32(%rsp)
59
+ movaps %xmm9, 48(%rsp)
60
+ movaps %xmm10, 64(%rsp)
61
+ movaps %xmm11, 80(%rsp)
62
+ movaps %xmm15, 96(%rsp)
63
+ #endif
64
+
65
+ leaq ASM_NAME(scale_x86_64)(%rip), %rax
66
+ movaps (%rax), XMMREG_SCALE
67
+
68
+ andq $0xf, ARG3
69
+ shlq $2, ARG3
70
+ leaq 64(ARG0), ARG0
71
+ subq ARG3, ARG0
72
+
73
+ movl $4, %ecx
74
+
75
+ ALIGN16
76
+ Loop_start_1:
77
+ movups (ARG0), %xmm8
78
+ movups 16(ARG0), %xmm1
79
+ movups 32(ARG0), %xmm2
80
+ movups 48(ARG0), %xmm3
81
+ movups 128(ARG0), %xmm9
82
+ movups 144(ARG0), %xmm5
83
+ movups 160(ARG0), %xmm6
84
+ movups 176(ARG0), %xmm7
85
+ mulps (ARG1), %xmm8
86
+ mulps 16(ARG1), %xmm1
87
+ mulps 32(ARG1), %xmm2
88
+ mulps 48(ARG1), %xmm3
89
+ mulps 64(ARG1), %xmm9
90
+ mulps 80(ARG1), %xmm5
91
+ mulps 96(ARG1), %xmm6
92
+ mulps 112(ARG1), %xmm7
93
+
94
+ addps %xmm1, %xmm8
95
+ addps %xmm2, %xmm3
96
+ addps %xmm5, %xmm9
97
+ addps %xmm7, %xmm6
98
+ addps %xmm3, %xmm8
99
+ addps %xmm6, %xmm9
100
+ leaq 256(ARG0), ARG0
101
+ leaq 128(ARG1), ARG1
102
+
103
+ movups (ARG0), %xmm10
104
+ movups 16(ARG0), %xmm1
105
+ movups 32(ARG0), %xmm2
106
+ movups 48(ARG0), %xmm3
107
+ movups 128(ARG0), %xmm11
108
+ movups 144(ARG0), %xmm5
109
+ movups 160(ARG0), %xmm6
110
+ movups 176(ARG0), %xmm7
111
+ mulps (ARG1), %xmm10
112
+ mulps 16(ARG1), %xmm1
113
+ mulps 32(ARG1), %xmm2
114
+ mulps 48(ARG1), %xmm3
115
+ mulps 64(ARG1), %xmm11
116
+ mulps 80(ARG1), %xmm5
117
+ mulps 96(ARG1), %xmm6
118
+ mulps 112(ARG1), %xmm7
119
+
120
+ addps %xmm1, %xmm10
121
+ addps %xmm2, %xmm3
122
+ addps %xmm5, %xmm11
123
+ addps %xmm7, %xmm6
124
+ addps %xmm3, %xmm10
125
+ addps %xmm6, %xmm11
126
+ leaq 256(ARG0), ARG0
127
+ leaq 128(ARG1), ARG1
128
+
129
+ movaps %xmm8, %xmm0
130
+ movaps %xmm10, %xmm1
131
+ unpcklps %xmm9, %xmm8
132
+ unpcklps %xmm11, %xmm10
133
+ unpckhps %xmm9, %xmm0
134
+ unpckhps %xmm11, %xmm1
135
+ movaps %xmm8, %xmm2
136
+ movaps %xmm0, %xmm3
137
+ movlhps %xmm10, %xmm8
138
+ movhlps %xmm2, %xmm10
139
+ movlhps %xmm1, %xmm0
140
+ movhlps %xmm3, %xmm1
141
+ subps %xmm10, %xmm8
142
+ subps %xmm1, %xmm0
143
+ addps %xmm8, %xmm0
144
+
145
+ movups (ARG2), %xmm1
146
+ movups 16(ARG2), %xmm2
147
+ mulps XMMREG_SCALE, %xmm0
148
+ shufps $0xdd, %xmm2, %xmm1
149
+ movaps %xmm0, %xmm2
150
+ unpcklps %xmm1, %xmm0
151
+ unpckhps %xmm1, %xmm2
152
+ movups %xmm0, (ARG2)
153
+ movups %xmm2, 16(ARG2)
154
+
155
+ leaq 32(ARG2), ARG2
156
+ decl %ecx
157
+ jnz Loop_start_1
158
+
159
+ movl $4, %ecx
160
+
161
+ ALIGN16
162
+ Loop_start_2:
163
+ movups (ARG0), %xmm8
164
+ movups 16(ARG0), %xmm1
165
+ movups 32(ARG0), %xmm2
166
+ movups 48(ARG0), %xmm3
167
+ movups 128(ARG0), %xmm9
168
+ movups 144(ARG0), %xmm5
169
+ movups 160(ARG0), %xmm6
170
+ movups 176(ARG0), %xmm7
171
+ mulps (ARG1), %xmm8
172
+ mulps 16(ARG1), %xmm1
173
+ mulps 32(ARG1), %xmm2
174
+ mulps 48(ARG1), %xmm3
175
+ mulps -64(ARG1), %xmm9
176
+ mulps -48(ARG1), %xmm5
177
+ mulps -32(ARG1), %xmm6
178
+ mulps -16(ARG1), %xmm7
179
+
180
+ addps %xmm1, %xmm8
181
+ addps %xmm2, %xmm3
182
+ addps %xmm5, %xmm9
183
+ addps %xmm7, %xmm6
184
+ addps %xmm3, %xmm8
185
+ addps %xmm6, %xmm9
186
+ leaq 256(ARG0), ARG0
187
+ leaq -128(ARG1), ARG1
188
+
189
+ movups (ARG0), %xmm10
190
+ movups 16(ARG0), %xmm1
191
+ movups 32(ARG0), %xmm2
192
+ movups 48(ARG0), %xmm3
193
+ movups 128(ARG0), %xmm11
194
+ movups 144(ARG0), %xmm5
195
+ movups 160(ARG0), %xmm6
196
+ movups 176(ARG0), %xmm7
197
+ mulps (ARG1), %xmm10
198
+ mulps 16(ARG1), %xmm1
199
+ mulps 32(ARG1), %xmm2
200
+ mulps 48(ARG1), %xmm3
201
+ mulps -64(ARG1), %xmm11
202
+ mulps -48(ARG1), %xmm5
203
+ mulps -32(ARG1), %xmm6
204
+ mulps -16(ARG1), %xmm7
205
+
206
+ addps %xmm1, %xmm10
207
+ addps %xmm2, %xmm3
208
+ addps %xmm5, %xmm11
209
+ addps %xmm7, %xmm6
210
+ addps %xmm3, %xmm10
211
+ addps %xmm6, %xmm11
212
+ leaq 256(ARG0), ARG0
213
+ leaq -128(ARG1), ARG1
214
+
215
+ movaps %xmm8, %xmm0
216
+ movaps %xmm10, %xmm1
217
+ unpcklps %xmm9, %xmm8
218
+ unpcklps %xmm11, %xmm10
219
+ unpckhps %xmm9, %xmm0
220
+ unpckhps %xmm11, %xmm1
221
+ movaps %xmm8, %xmm2
222
+ movaps %xmm0, %xmm3
223
+ movlhps %xmm10, %xmm8
224
+ movhlps %xmm2, %xmm10
225
+ movlhps %xmm1, %xmm0
226
+ movhlps %xmm3, %xmm1
227
+ addps %xmm10, %xmm8
228
+ addps %xmm1, %xmm0
229
+ addps %xmm8, %xmm0
230
+
231
+ movups (ARG2), %xmm1
232
+ movups 16(ARG2), %xmm2
233
+ mulps XMMREG_SCALE, %xmm0
234
+ shufps $0xdd, %xmm2, %xmm1
235
+ movaps %xmm0, %xmm2
236
+ unpcklps %xmm1, %xmm0
237
+ unpckhps %xmm1, %xmm2
238
+ movups %xmm0, (ARG2)
239
+ movups %xmm2, 16(ARG2)
240
+
241
+ leaq 32(ARG2), ARG2
242
+ decl %ecx
243
+ jnz Loop_start_2
244
+
245
+ xorl %eax, %eax
246
+
247
+ #ifdef _WIN64
248
+ movaps (%rsp), %xmm6
249
+ movaps 16(%rsp), %xmm7
250
+ movaps 32(%rsp), %xmm8
251
+ movaps 48(%rsp), %xmm9
252
+ movaps 64(%rsp), %xmm10
253
+ movaps 80(%rsp), %xmm11
254
+ movaps 96(%rsp), %xmm15
255
+ addq $120, %rsp
256
+ #endif
257
+ ret
258
+
259
+ NONEXEC_STACK
@@ -0,0 +1,312 @@
1
+ /*
2
+ synth_x86_64_s32: SSE optimized synth for x86-64 (s32 output version)
3
+
4
+ copyright 1995-2009 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 Taihei Monma
7
+ */
8
+
9
+ #include "mangle.h"
10
+
11
+ #ifdef _WIN64
12
+ /* short *window; */
13
+ #define ARG0 %r10
14
+ /* short *b0; */
15
+ #define ARG1 %rdx
16
+ /* short *samples; */
17
+ #define ARG2 %r8
18
+ /* int bo1; */
19
+ #define ARG3 %r9
20
+ #else
21
+ /* real *window; */
22
+ #define ARG0 %rdi
23
+ /* real *b0; */
24
+ #define ARG1 %rsi
25
+ /* real *samples; */
26
+ #define ARG2 %rdx
27
+ /* int bo1; */
28
+ #define ARG3 %rcx
29
+ #endif
30
+
31
+ #define XMMREG_SCALE %xmm15 /* {65536.0, 65536.0, 65536.0, 65536.0} */
32
+ #define XMMREG_MAX %xmm14 /* {32767.999, 32767.999, 32767.999, 32767.999} */
33
+ #define XMMREG_MIN %xmm13 /* {-32768.0, -32768.0, -32768.0, -32768.0} */
34
+ #define XMMREG_CLIP %xmm12
35
+
36
+ /*
37
+ int synth_1to1_s32_x86_64_asm(real *window, real *b0, int32_t *samples, int bo1);
38
+ return value: number of clipped samples
39
+ */
40
+
41
+ #ifndef __APPLE__
42
+ .section .rodata
43
+ #else
44
+ .data
45
+ #endif
46
+ ALIGN32
47
+ ASM_NAME(scale_s32):
48
+ .long 1199570944
49
+ .long 1199570944
50
+ .long 1199570944
51
+ .long 1199570944
52
+ ALIGN16
53
+ ASM_NAME(maxmin_s32):
54
+ .long 1191182335
55
+ .long 1191182335
56
+ .long 1191182335
57
+ .long 1191182335
58
+ .long -956301312
59
+ .long -956301312
60
+ .long -956301312
61
+ .long -956301312
62
+ .text
63
+ ALIGN16
64
+ .globl ASM_NAME(synth_1to1_s32_x86_64_asm)
65
+ ASM_NAME(synth_1to1_s32_x86_64_asm):
66
+ #ifdef _WIN64 /* should save xmm6-15 */
67
+ movq %rcx, ARG0
68
+ subq $168, %rsp /* stack alignment + 10 xmm registers */
69
+ movaps %xmm6, (%rsp)
70
+ movaps %xmm7, 16(%rsp)
71
+ movaps %xmm8, 32(%rsp)
72
+ movaps %xmm9, 48(%rsp)
73
+ movaps %xmm10, 64(%rsp)
74
+ movaps %xmm11, 80(%rsp)
75
+ movaps %xmm12, 96(%rsp)
76
+ movaps %xmm13, 112(%rsp)
77
+ movaps %xmm14, 128(%rsp)
78
+ movaps %xmm15, 144(%rsp)
79
+ #endif
80
+
81
+ leaq ASM_NAME(scale_s32)(%rip), %rax
82
+ movaps (%rax), XMMREG_SCALE
83
+ leaq ASM_NAME(maxmin_s32)(%rip), %rax
84
+ movaps (%rax), XMMREG_MAX
85
+ movaps 16(%rax), XMMREG_MIN
86
+
87
+ xorps XMMREG_CLIP, XMMREG_CLIP
88
+
89
+ andq $0xf, ARG3
90
+ shlq $2, ARG3
91
+ leaq 64(ARG0), ARG0
92
+ subq ARG3, ARG0
93
+
94
+ movl $4, %ecx
95
+
96
+ ALIGN16
97
+ Loop_start_1:
98
+ movups (ARG0), %xmm8
99
+ movups 16(ARG0), %xmm1
100
+ movups 32(ARG0), %xmm2
101
+ movups 48(ARG0), %xmm3
102
+ movups 128(ARG0), %xmm9
103
+ movups 144(ARG0), %xmm5
104
+ movups 160(ARG0), %xmm6
105
+ movups 176(ARG0), %xmm7
106
+ mulps (ARG1), %xmm8
107
+ mulps 16(ARG1), %xmm1
108
+ mulps 32(ARG1), %xmm2
109
+ mulps 48(ARG1), %xmm3
110
+ mulps 64(ARG1), %xmm9
111
+ mulps 80(ARG1), %xmm5
112
+ mulps 96(ARG1), %xmm6
113
+ mulps 112(ARG1), %xmm7
114
+
115
+ addps %xmm1, %xmm8
116
+ addps %xmm2, %xmm3
117
+ addps %xmm5, %xmm9
118
+ addps %xmm7, %xmm6
119
+ addps %xmm3, %xmm8
120
+ addps %xmm6, %xmm9
121
+ leaq 256(ARG0), ARG0
122
+ leaq 128(ARG1), ARG1
123
+
124
+ movups (ARG0), %xmm10
125
+ movups 16(ARG0), %xmm1
126
+ movups 32(ARG0), %xmm2
127
+ movups 48(ARG0), %xmm3
128
+ movups 128(ARG0), %xmm11
129
+ movups 144(ARG0), %xmm5
130
+ movups 160(ARG0), %xmm6
131
+ movups 176(ARG0), %xmm7
132
+ mulps (ARG1), %xmm10
133
+ mulps 16(ARG1), %xmm1
134
+ mulps 32(ARG1), %xmm2
135
+ mulps 48(ARG1), %xmm3
136
+ mulps 64(ARG1), %xmm11
137
+ mulps 80(ARG1), %xmm5
138
+ mulps 96(ARG1), %xmm6
139
+ mulps 112(ARG1), %xmm7
140
+
141
+ addps %xmm1, %xmm10
142
+ addps %xmm2, %xmm3
143
+ addps %xmm5, %xmm11
144
+ addps %xmm7, %xmm6
145
+ addps %xmm3, %xmm10
146
+ addps %xmm6, %xmm11
147
+ leaq 256(ARG0), ARG0
148
+ leaq 128(ARG1), ARG1
149
+
150
+ movaps %xmm8, %xmm0
151
+ movaps %xmm10, %xmm1
152
+ unpcklps %xmm9, %xmm8
153
+ unpcklps %xmm11, %xmm10
154
+ unpckhps %xmm9, %xmm0
155
+ unpckhps %xmm11, %xmm1
156
+ movaps %xmm8, %xmm2
157
+ movaps %xmm0, %xmm3
158
+ movlhps %xmm10, %xmm8
159
+ movhlps %xmm2, %xmm10
160
+ movlhps %xmm1, %xmm0
161
+ movhlps %xmm3, %xmm1
162
+ subps %xmm10, %xmm8
163
+ subps %xmm1, %xmm0
164
+ addps %xmm8, %xmm0
165
+
166
+ movups (ARG2), %xmm1
167
+ movups 16(ARG2), %xmm2
168
+ movaps %xmm0, %xmm3
169
+ movaps %xmm0, %xmm4
170
+ mulps XMMREG_SCALE, %xmm0
171
+ cmpnleps XMMREG_MAX, %xmm3
172
+ cmpltps XMMREG_MIN, %xmm4
173
+ cvtps2dq %xmm0, %xmm0
174
+ xorps %xmm3, %xmm0
175
+ shufps $0xdd, %xmm2, %xmm1
176
+ movaps %xmm0, %xmm2
177
+ unpcklps %xmm1, %xmm0
178
+ unpckhps %xmm1, %xmm2
179
+ movups %xmm0, (ARG2)
180
+ movups %xmm2, 16(ARG2)
181
+
182
+ psrld $31, %xmm3
183
+ psrld $31, %xmm4
184
+ paddd %xmm4, %xmm3
185
+ paddd %xmm3, XMMREG_CLIP
186
+
187
+ leaq 32(ARG2), ARG2
188
+ decl %ecx
189
+ jnz Loop_start_1
190
+
191
+ movl $4, %ecx
192
+
193
+ ALIGN16
194
+ Loop_start_2:
195
+ movups (ARG0), %xmm8
196
+ movups 16(ARG0), %xmm1
197
+ movups 32(ARG0), %xmm2
198
+ movups 48(ARG0), %xmm3
199
+ movups 128(ARG0), %xmm9
200
+ movups 144(ARG0), %xmm5
201
+ movups 160(ARG0), %xmm6
202
+ movups 176(ARG0), %xmm7
203
+ mulps (ARG1), %xmm8
204
+ mulps 16(ARG1), %xmm1
205
+ mulps 32(ARG1), %xmm2
206
+ mulps 48(ARG1), %xmm3
207
+ mulps -64(ARG1), %xmm9
208
+ mulps -48(ARG1), %xmm5
209
+ mulps -32(ARG1), %xmm6
210
+ mulps -16(ARG1), %xmm7
211
+
212
+ addps %xmm1, %xmm8
213
+ addps %xmm2, %xmm3
214
+ addps %xmm5, %xmm9
215
+ addps %xmm7, %xmm6
216
+ addps %xmm3, %xmm8
217
+ addps %xmm6, %xmm9
218
+ leaq 256(ARG0), ARG0
219
+ leaq -128(ARG1), ARG1
220
+
221
+ movups (ARG0), %xmm10
222
+ movups 16(ARG0), %xmm1
223
+ movups 32(ARG0), %xmm2
224
+ movups 48(ARG0), %xmm3
225
+ movups 128(ARG0), %xmm11
226
+ movups 144(ARG0), %xmm5
227
+ movups 160(ARG0), %xmm6
228
+ movups 176(ARG0), %xmm7
229
+ mulps (ARG1), %xmm10
230
+ mulps 16(ARG1), %xmm1
231
+ mulps 32(ARG1), %xmm2
232
+ mulps 48(ARG1), %xmm3
233
+ mulps -64(ARG1), %xmm11
234
+ mulps -48(ARG1), %xmm5
235
+ mulps -32(ARG1), %xmm6
236
+ mulps -16(ARG1), %xmm7
237
+
238
+ addps %xmm1, %xmm10
239
+ addps %xmm2, %xmm3
240
+ addps %xmm5, %xmm11
241
+ addps %xmm7, %xmm6
242
+ addps %xmm3, %xmm10
243
+ addps %xmm6, %xmm11
244
+ leaq 256(ARG0), ARG0
245
+ leaq -128(ARG1), ARG1
246
+
247
+ movaps %xmm8, %xmm0
248
+ movaps %xmm10, %xmm1
249
+ unpcklps %xmm9, %xmm8
250
+ unpcklps %xmm11, %xmm10
251
+ unpckhps %xmm9, %xmm0
252
+ unpckhps %xmm11, %xmm1
253
+ movaps %xmm8, %xmm2
254
+ movaps %xmm0, %xmm3
255
+ movlhps %xmm10, %xmm8
256
+ movhlps %xmm2, %xmm10
257
+ movlhps %xmm1, %xmm0
258
+ movhlps %xmm3, %xmm1
259
+ addps %xmm10, %xmm8
260
+ addps %xmm1, %xmm0
261
+ addps %xmm8, %xmm0
262
+
263
+ movups (ARG2), %xmm1
264
+ movups 16(ARG2), %xmm2
265
+ movaps %xmm0, %xmm3
266
+ movaps %xmm0, %xmm4
267
+ mulps XMMREG_SCALE, %xmm0
268
+ cmpnleps XMMREG_MAX, %xmm3
269
+ cmpltps XMMREG_MIN, %xmm4
270
+ cvtps2dq %xmm0, %xmm0
271
+ xorps %xmm3, %xmm0
272
+ shufps $0xdd, %xmm2, %xmm1
273
+ movaps %xmm0, %xmm2
274
+ unpcklps %xmm1, %xmm0
275
+ unpckhps %xmm1, %xmm2
276
+ movups %xmm0, (ARG2)
277
+ movups %xmm2, 16(ARG2)
278
+
279
+ psrld $31, %xmm3
280
+ psrld $31, %xmm4
281
+ paddd %xmm4, %xmm3
282
+ paddd %xmm3, XMMREG_CLIP
283
+
284
+ leaq 32(ARG2), ARG2
285
+ decl %ecx
286
+ jnz Loop_start_2
287
+
288
+ pshuflw $0xee, XMMREG_CLIP, %xmm0
289
+ movhlps XMMREG_CLIP, %xmm1
290
+ pshuflw $0xee, %xmm1, %xmm2
291
+ paddd %xmm0, XMMREG_CLIP
292
+ paddd %xmm1, XMMREG_CLIP
293
+ paddd %xmm2, XMMREG_CLIP
294
+
295
+ movd XMMREG_CLIP, %eax
296
+
297
+ #ifdef _WIN64
298
+ movaps (%rsp), %xmm6
299
+ movaps 16(%rsp), %xmm7
300
+ movaps 32(%rsp), %xmm8
301
+ movaps 48(%rsp), %xmm9
302
+ movaps 64(%rsp), %xmm10
303
+ movaps 80(%rsp), %xmm11
304
+ movaps 96(%rsp), %xmm12
305
+ movaps 112(%rsp), %xmm13
306
+ movaps 128(%rsp), %xmm14
307
+ movaps 144(%rsp), %xmm15
308
+ addq $168, %rsp
309
+ #endif
310
+ ret
311
+
312
+ NONEXEC_STACK