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,294 @@
1
+ /*
2
+ synth_sse_accurate: SSE optimized synth (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
+ /* real *window; */
12
+ #define WINDOW %ebx
13
+ /* real *b0; */
14
+ #define B0 %edx
15
+ /* real *samples; */
16
+ #define SAMPLES %esi
17
+
18
+ #define MMREG_CLIP %mm7
19
+
20
+ /*
21
+ int synth_1to1_sse_accurate_asm(real *window, real *b0, short *samples, int bo1);
22
+ return value: number of clipped samples
23
+ */
24
+
25
+ #ifndef __APPLE__
26
+ .section .rodata
27
+ #else
28
+ .data
29
+ #endif
30
+ ALIGN32
31
+ ASM_NAME(maxmin_s16):
32
+ .long 1191181824 /* 32767.0 */
33
+ .long 1191181824
34
+ .long 1191181824
35
+ .long 1191181824
36
+ .long -956301312 /* -32768.0 */
37
+ .long -956301312
38
+ .long -956301312
39
+ .long -956301312
40
+ .text
41
+ ALIGN16
42
+ .globl ASM_NAME(synth_1to1_sse_accurate_asm)
43
+ ASM_NAME(synth_1to1_sse_accurate_asm):
44
+ pushl %ebp
45
+ movl %esp, %ebp
46
+ pushl %ebx
47
+ pushl %esi
48
+
49
+ pxor MMREG_CLIP, MMREG_CLIP
50
+
51
+ movl 8(%ebp), WINDOW
52
+ movl 12(%ebp), B0
53
+ movl 16(%ebp), SAMPLES
54
+ movl 20(%ebp), %eax
55
+ shll $2, %eax
56
+
57
+ leal 64(WINDOW), WINDOW
58
+ subl %eax, WINDOW
59
+
60
+ movl $4, %ecx
61
+
62
+ ALIGN16
63
+ Loop_start_1:
64
+ movups (WINDOW), %xmm0
65
+ movups 16(WINDOW), %xmm1
66
+ movups 32(WINDOW), %xmm2
67
+ movups 48(WINDOW), %xmm3
68
+ movups 128(WINDOW), %xmm4
69
+ movups 144(WINDOW), %xmm5
70
+ movups 160(WINDOW), %xmm6
71
+ movups 176(WINDOW), %xmm7
72
+ mulps 0(B0), %xmm0
73
+ mulps 16(B0), %xmm1
74
+ mulps 32(B0), %xmm2
75
+ mulps 48(B0), %xmm3
76
+ mulps 64(B0), %xmm4
77
+ mulps 80(B0), %xmm5
78
+ mulps 96(B0), %xmm6
79
+ mulps 112(B0), %xmm7
80
+ addps %xmm1, %xmm0
81
+ addps %xmm3, %xmm2
82
+ addps %xmm5, %xmm4
83
+ addps %xmm7, %xmm6
84
+ addps %xmm2, %xmm0
85
+ addps %xmm6, %xmm4
86
+ movaps %xmm4, %xmm5
87
+ movaps %xmm0, %xmm4
88
+
89
+ leal 256(WINDOW), WINDOW
90
+ leal 128(B0), B0
91
+
92
+ movups (WINDOW), %xmm0
93
+ movups 16(WINDOW), %xmm1
94
+ movups 32(WINDOW), %xmm2
95
+ movups 48(WINDOW), %xmm3
96
+ movups 128(WINDOW), %xmm6
97
+ movups 144(WINDOW), %xmm7
98
+ mulps (B0), %xmm0
99
+ mulps 16(B0), %xmm1
100
+ mulps 32(B0), %xmm2
101
+ mulps 48(B0), %xmm3
102
+ mulps 64(B0), %xmm6
103
+ mulps 80(B0), %xmm7
104
+ addps %xmm1, %xmm0
105
+ addps %xmm3, %xmm2
106
+ addps %xmm7, %xmm6
107
+ movups 160(WINDOW), %xmm1
108
+ movups 176(WINDOW), %xmm3
109
+ mulps 96(B0), %xmm1
110
+ mulps 112(B0), %xmm3
111
+ addps %xmm2, %xmm0
112
+ addps %xmm3, %xmm1
113
+ addps %xmm1, %xmm6
114
+ movaps %xmm6, %xmm7
115
+ movaps %xmm0, %xmm6
116
+
117
+ leal 256(WINDOW), WINDOW
118
+ leal 128(B0), B0
119
+
120
+ movaps %xmm4, %xmm0
121
+ movaps %xmm6, %xmm1
122
+ unpcklps %xmm5, %xmm4
123
+ unpcklps %xmm7, %xmm6
124
+ unpckhps %xmm5, %xmm0
125
+ unpckhps %xmm7, %xmm1
126
+ movaps %xmm4, %xmm2
127
+ movaps %xmm0, %xmm3
128
+ movlhps %xmm6, %xmm4
129
+ movhlps %xmm2, %xmm6
130
+ movlhps %xmm1, %xmm0
131
+ movhlps %xmm3, %xmm1
132
+ subps %xmm6, %xmm4
133
+ subps %xmm1, %xmm0
134
+ addps %xmm4, %xmm0
135
+
136
+ movaps %xmm0, %xmm1
137
+ movaps %xmm0, %xmm2
138
+ pshufw $0xdd, (SAMPLES), %mm2
139
+ pshufw $0xdd, 8(SAMPLES), %mm3
140
+ cmpnleps ASM_NAME(maxmin_s16), %xmm1
141
+ cmpltps ASM_NAME(maxmin_s16)+16, %xmm2
142
+ cvtps2pi %xmm0, %mm0
143
+ movhlps %xmm0, %xmm0
144
+ cvtps2pi %xmm0, %mm1
145
+ packssdw %mm1, %mm0
146
+ movq %mm0, %mm1
147
+ punpcklwd %mm2, %mm0
148
+ punpckhwd %mm3, %mm1
149
+ movq %mm0, (SAMPLES)
150
+ movq %mm1, 8(SAMPLES)
151
+
152
+ cvtps2pi %xmm1, %mm0
153
+ cvtps2pi %xmm2, %mm1
154
+ movhlps %xmm1, %xmm1
155
+ movhlps %xmm2, %xmm2
156
+ cvtps2pi %xmm1, %mm2
157
+ cvtps2pi %xmm2, %mm3
158
+ packssdw %mm2, %mm0
159
+ packssdw %mm3, %mm1
160
+ psrlw $15, %mm0
161
+ psrlw $15, %mm1
162
+ paddw %mm1, %mm0
163
+ paddw %mm0, MMREG_CLIP
164
+
165
+ leal 16(SAMPLES), SAMPLES
166
+ decl %ecx
167
+ jnz Loop_start_1
168
+
169
+ movl $4, %ecx
170
+
171
+ ALIGN16
172
+ Loop_start_2:
173
+ movups (WINDOW), %xmm0
174
+ movups 16(WINDOW), %xmm1
175
+ movups 32(WINDOW), %xmm2
176
+ movups 48(WINDOW), %xmm3
177
+ movups 128(WINDOW), %xmm4
178
+ movups 144(WINDOW), %xmm5
179
+ movups 160(WINDOW), %xmm6
180
+ movups 176(WINDOW), %xmm7
181
+ mulps 0(B0), %xmm0
182
+ mulps 16(B0), %xmm1
183
+ mulps 32(B0), %xmm2
184
+ mulps 48(B0), %xmm3
185
+ mulps -64(B0), %xmm4
186
+ mulps -48(B0), %xmm5
187
+ mulps -32(B0), %xmm6
188
+ mulps -16(B0), %xmm7
189
+ addps %xmm1, %xmm0
190
+ addps %xmm3, %xmm2
191
+ addps %xmm5, %xmm4
192
+ addps %xmm7, %xmm6
193
+ addps %xmm2, %xmm0
194
+ addps %xmm6, %xmm4
195
+ movaps %xmm4, %xmm5
196
+ movaps %xmm0, %xmm4
197
+
198
+ leal 256(WINDOW), WINDOW
199
+ leal -128(B0), B0
200
+
201
+ movups (WINDOW), %xmm0
202
+ movups 16(WINDOW), %xmm1
203
+ movups 32(WINDOW), %xmm2
204
+ movups 48(WINDOW), %xmm3
205
+ movups 128(WINDOW), %xmm6
206
+ movups 144(WINDOW), %xmm7
207
+ mulps (B0), %xmm0
208
+ mulps 16(B0), %xmm1
209
+ mulps 32(B0), %xmm2
210
+ mulps 48(B0), %xmm3
211
+ mulps -64(B0), %xmm6
212
+ mulps -48(B0), %xmm7
213
+ addps %xmm1, %xmm0
214
+ addps %xmm3, %xmm2
215
+ addps %xmm7, %xmm6
216
+ movups 160(WINDOW), %xmm1
217
+ movups 176(WINDOW), %xmm3
218
+ mulps -32(B0), %xmm1
219
+ mulps -16(B0), %xmm3
220
+ addps %xmm2, %xmm0
221
+ addps %xmm3, %xmm1
222
+ addps %xmm1, %xmm6
223
+ movaps %xmm6, %xmm7
224
+ movaps %xmm0, %xmm6
225
+
226
+ leal 256(WINDOW), WINDOW
227
+ leal -128(B0), B0
228
+
229
+ movaps %xmm4, %xmm0
230
+ movaps %xmm6, %xmm1
231
+ unpcklps %xmm5, %xmm4
232
+ unpcklps %xmm7, %xmm6
233
+ unpckhps %xmm5, %xmm0
234
+ unpckhps %xmm7, %xmm1
235
+ movaps %xmm4, %xmm2
236
+ movaps %xmm0, %xmm3
237
+ movlhps %xmm6, %xmm4
238
+ movhlps %xmm2, %xmm6
239
+ movlhps %xmm1, %xmm0
240
+ movhlps %xmm3, %xmm1
241
+ addps %xmm6, %xmm4
242
+ addps %xmm1, %xmm0
243
+ addps %xmm4, %xmm0
244
+
245
+ movaps %xmm0, %xmm1
246
+ movaps %xmm0, %xmm2
247
+ pshufw $0xdd, (SAMPLES), %mm2
248
+ pshufw $0xdd, 8(SAMPLES), %mm3
249
+ cmpnleps ASM_NAME(maxmin_s16), %xmm1
250
+ cmpltps ASM_NAME(maxmin_s16)+16, %xmm2
251
+ cvtps2pi %xmm0, %mm0
252
+ movhlps %xmm0, %xmm0
253
+ cvtps2pi %xmm0, %mm1
254
+ packssdw %mm1, %mm0
255
+ movq %mm0, %mm1
256
+ punpcklwd %mm2, %mm0
257
+ punpckhwd %mm3, %mm1
258
+ movq %mm0, (SAMPLES)
259
+ movq %mm1, 8(SAMPLES)
260
+
261
+ cvtps2pi %xmm1, %mm0
262
+ cvtps2pi %xmm2, %mm1
263
+ movhlps %xmm1, %xmm1
264
+ movhlps %xmm2, %xmm2
265
+ cvtps2pi %xmm1, %mm2
266
+ cvtps2pi %xmm2, %mm3
267
+ packssdw %mm2, %mm0
268
+ packssdw %mm3, %mm1
269
+ psrlw $15, %mm0
270
+ psrlw $15, %mm1
271
+ paddw %mm1, %mm0
272
+ paddw %mm0, MMREG_CLIP
273
+
274
+ leal 16(SAMPLES), SAMPLES
275
+ decl %ecx
276
+ jnz Loop_start_2
277
+
278
+ pshufw $0xee, MMREG_CLIP, %mm0
279
+ paddw MMREG_CLIP, %mm0
280
+ pshufw $0x55, %mm0, %mm1
281
+ paddw %mm1, %mm0
282
+ movd %mm0, %eax
283
+ andl $0xffff, %eax
284
+
285
+ popl %esi
286
+ popl %ebx
287
+ movl %ebp, %esp
288
+ popl %ebp
289
+
290
+ emms
291
+
292
+ ret
293
+
294
+ NONEXEC_STACK
@@ -0,0 +1,241 @@
1
+ /*
2
+ synth_sse_float: SSE optimized synth (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
+ /* real *window; */
12
+ #define WINDOW %ebx
13
+ /* real *b0; */
14
+ #define B0 %edx
15
+ /* real *samples; */
16
+ #define SAMPLES %esi
17
+
18
+ /*
19
+ int synth_1to1_real_sse_asm(real *window, real *b0, real *samples, int bo1);
20
+ return value: number of clipped samples (0)
21
+ */
22
+
23
+ #ifndef __APPLE__
24
+ .section .rodata
25
+ #else
26
+ .data
27
+ #endif
28
+ ALIGN32
29
+ ASM_NAME(scale_sse):
30
+ .long 939524096
31
+ .long 939524096
32
+ .long 939524096
33
+ .long 939524096
34
+ .text
35
+ ALIGN16
36
+ .globl ASM_NAME(synth_1to1_real_sse_asm)
37
+ ASM_NAME(synth_1to1_real_sse_asm):
38
+ pushl %ebp
39
+ movl %esp, %ebp
40
+ pushl %ebx
41
+ pushl %esi
42
+
43
+ movl 8(%ebp), WINDOW
44
+ movl 12(%ebp), B0
45
+ movl 16(%ebp), SAMPLES
46
+ movl 20(%ebp), %eax
47
+ shll $2, %eax
48
+
49
+ leal 64(WINDOW), WINDOW
50
+ subl %eax, WINDOW
51
+
52
+ movl $4, %ecx
53
+
54
+ ALIGN16
55
+ Loop_start_1:
56
+ movups (WINDOW), %xmm0
57
+ movups 16(WINDOW), %xmm1
58
+ movups 32(WINDOW), %xmm2
59
+ movups 48(WINDOW), %xmm3
60
+ movups 128(WINDOW), %xmm4
61
+ movups 144(WINDOW), %xmm5
62
+ movups 160(WINDOW), %xmm6
63
+ movups 176(WINDOW), %xmm7
64
+ mulps 0(B0), %xmm0
65
+ mulps 16(B0), %xmm1
66
+ mulps 32(B0), %xmm2
67
+ mulps 48(B0), %xmm3
68
+ mulps 64(B0), %xmm4
69
+ mulps 80(B0), %xmm5
70
+ mulps 96(B0), %xmm6
71
+ mulps 112(B0), %xmm7
72
+ addps %xmm1, %xmm0
73
+ addps %xmm3, %xmm2
74
+ addps %xmm5, %xmm4
75
+ addps %xmm7, %xmm6
76
+ addps %xmm2, %xmm0
77
+ addps %xmm6, %xmm4
78
+ movaps %xmm4, %xmm5
79
+ movaps %xmm0, %xmm4
80
+
81
+ leal 256(WINDOW), WINDOW
82
+ leal 128(B0), B0
83
+
84
+ movups (WINDOW), %xmm0
85
+ movups 16(WINDOW), %xmm1
86
+ movups 32(WINDOW), %xmm2
87
+ movups 48(WINDOW), %xmm3
88
+ movups 128(WINDOW), %xmm6
89
+ movups 144(WINDOW), %xmm7
90
+ mulps (B0), %xmm0
91
+ mulps 16(B0), %xmm1
92
+ mulps 32(B0), %xmm2
93
+ mulps 48(B0), %xmm3
94
+ mulps 64(B0), %xmm6
95
+ mulps 80(B0), %xmm7
96
+ addps %xmm1, %xmm0
97
+ addps %xmm3, %xmm2
98
+ addps %xmm7, %xmm6
99
+ movups 160(WINDOW), %xmm1
100
+ movups 176(WINDOW), %xmm3
101
+ mulps 96(B0), %xmm1
102
+ mulps 112(B0), %xmm3
103
+ addps %xmm2, %xmm0
104
+ addps %xmm3, %xmm1
105
+ addps %xmm1, %xmm6
106
+ movaps %xmm6, %xmm7
107
+ movaps %xmm0, %xmm6
108
+
109
+ leal 256(WINDOW), WINDOW
110
+ leal 128(B0), B0
111
+
112
+ movaps %xmm4, %xmm0
113
+ movaps %xmm6, %xmm1
114
+ unpcklps %xmm5, %xmm4
115
+ unpcklps %xmm7, %xmm6
116
+ unpckhps %xmm5, %xmm0
117
+ unpckhps %xmm7, %xmm1
118
+ movaps %xmm4, %xmm2
119
+ movaps %xmm0, %xmm3
120
+ movlhps %xmm6, %xmm4
121
+ movhlps %xmm2, %xmm6
122
+ movlhps %xmm1, %xmm0
123
+ movhlps %xmm3, %xmm1
124
+ subps %xmm6, %xmm4
125
+ subps %xmm1, %xmm0
126
+ addps %xmm4, %xmm0
127
+
128
+ movups (SAMPLES), %xmm1
129
+ movups 16(SAMPLES), %xmm2
130
+ mulps ASM_NAME(scale_sse), %xmm0
131
+ shufps $0xdd, %xmm2, %xmm1
132
+ movaps %xmm0, %xmm2
133
+ unpcklps %xmm1, %xmm0
134
+ unpckhps %xmm1, %xmm2
135
+ movups %xmm0, (SAMPLES)
136
+ movups %xmm2, 16(SAMPLES)
137
+
138
+ leal 32(SAMPLES), SAMPLES
139
+ decl %ecx
140
+ jnz Loop_start_1
141
+
142
+ movl $4, %ecx
143
+
144
+ ALIGN16
145
+ Loop_start_2:
146
+ movups (WINDOW), %xmm0
147
+ movups 16(WINDOW), %xmm1
148
+ movups 32(WINDOW), %xmm2
149
+ movups 48(WINDOW), %xmm3
150
+ movups 128(WINDOW), %xmm4
151
+ movups 144(WINDOW), %xmm5
152
+ movups 160(WINDOW), %xmm6
153
+ movups 176(WINDOW), %xmm7
154
+ mulps 0(B0), %xmm0
155
+ mulps 16(B0), %xmm1
156
+ mulps 32(B0), %xmm2
157
+ mulps 48(B0), %xmm3
158
+ mulps -64(B0), %xmm4
159
+ mulps -48(B0), %xmm5
160
+ mulps -32(B0), %xmm6
161
+ mulps -16(B0), %xmm7
162
+ addps %xmm1, %xmm0
163
+ addps %xmm3, %xmm2
164
+ addps %xmm5, %xmm4
165
+ addps %xmm7, %xmm6
166
+ addps %xmm2, %xmm0
167
+ addps %xmm6, %xmm4
168
+ movaps %xmm4, %xmm5
169
+ movaps %xmm0, %xmm4
170
+
171
+ leal 256(WINDOW), WINDOW
172
+ leal -128(B0), B0
173
+
174
+ movups (WINDOW), %xmm0
175
+ movups 16(WINDOW), %xmm1
176
+ movups 32(WINDOW), %xmm2
177
+ movups 48(WINDOW), %xmm3
178
+ movups 128(WINDOW), %xmm6
179
+ movups 144(WINDOW), %xmm7
180
+ mulps (B0), %xmm0
181
+ mulps 16(B0), %xmm1
182
+ mulps 32(B0), %xmm2
183
+ mulps 48(B0), %xmm3
184
+ mulps -64(B0), %xmm6
185
+ mulps -48(B0), %xmm7
186
+ addps %xmm1, %xmm0
187
+ addps %xmm3, %xmm2
188
+ addps %xmm7, %xmm6
189
+ movups 160(WINDOW), %xmm1
190
+ movups 176(WINDOW), %xmm3
191
+ mulps -32(B0), %xmm1
192
+ mulps -16(B0), %xmm3
193
+ addps %xmm2, %xmm0
194
+ addps %xmm3, %xmm1
195
+ addps %xmm1, %xmm6
196
+ movaps %xmm6, %xmm7
197
+ movaps %xmm0, %xmm6
198
+
199
+ leal 256(WINDOW), WINDOW
200
+ leal -128(B0), B0
201
+
202
+ movaps %xmm4, %xmm0
203
+ movaps %xmm6, %xmm1
204
+ unpcklps %xmm5, %xmm4
205
+ unpcklps %xmm7, %xmm6
206
+ unpckhps %xmm5, %xmm0
207
+ unpckhps %xmm7, %xmm1
208
+ movaps %xmm4, %xmm2
209
+ movaps %xmm0, %xmm3
210
+ movlhps %xmm6, %xmm4
211
+ movhlps %xmm2, %xmm6
212
+ movlhps %xmm1, %xmm0
213
+ movhlps %xmm3, %xmm1
214
+ addps %xmm6, %xmm4
215
+ addps %xmm1, %xmm0
216
+ addps %xmm4, %xmm0
217
+
218
+ movups (SAMPLES), %xmm1
219
+ movups 16(SAMPLES), %xmm2
220
+ mulps ASM_NAME(scale_sse), %xmm0
221
+ shufps $0xdd, %xmm2, %xmm1
222
+ movaps %xmm0, %xmm2
223
+ unpcklps %xmm1, %xmm0
224
+ unpckhps %xmm1, %xmm2
225
+ movups %xmm0, (SAMPLES)
226
+ movups %xmm2, 16(SAMPLES)
227
+
228
+ leal 32(SAMPLES), SAMPLES
229
+ decl %ecx
230
+ jnz Loop_start_2
231
+
232
+ xorl %eax, %eax
233
+
234
+ popl %esi
235
+ popl %ebx
236
+ movl %ebp, %esp
237
+ popl %ebp
238
+
239
+ ret
240
+
241
+ NONEXEC_STACK