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