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,247 @@
1
+ /*
2
+ synth_stereo_neon_s32: ARM NEON optimized synth (stereo specific, 32-bit output version)
3
+
4
+ copyright 1995-2010 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
+ #define WINDOW r0
12
+ #define B0L r1
13
+ #define B0R r2
14
+ #define SAMPLES r3
15
+
16
+ /*
17
+ int synth_1to1_s32_s_neon_asm(real *window, real *b0l, real *b0r, real *samples, int bo1);
18
+ return value: number of clipped samples
19
+ */
20
+
21
+ .text
22
+ .globl ASM_NAME(synth_1to1_s32_s_neon_asm)
23
+ ALIGN4
24
+ ASM_NAME(synth_1to1_s32_s_neon_asm):
25
+ push {r4-r7, lr}
26
+ vpush {q4-q7}
27
+ ldr r4, [sp, #84]
28
+ mov r7, sp
29
+ sub sp, sp, #16
30
+ bic sp, #0xff
31
+
32
+ add WINDOW, WINDOW, #64
33
+ sub WINDOW, WINDOW, r4, lsl #2
34
+
35
+ mov r4, #4
36
+ mov r5, #128
37
+ mov r6, #64
38
+ .Loop_start_1:
39
+ vld1.32 {q0,q1}, [WINDOW], r5
40
+ vld1.32 {q2,q3}, [WINDOW]
41
+ vld1.32 {q4,q5}, [B0L, :128], r6
42
+ vld1.32 {q6,q7}, [B0R, :128], r6
43
+ vld1.32 {q8,q9}, [B0L, :128]
44
+ vld1.32 {q10,q11}, [B0R, :128]
45
+ vmul.f32 q12, q0, q4
46
+ vmul.f32 q13, q0, q6
47
+ vmul.f32 q14, q2, q8
48
+ vmul.f32 q15, q2, q10
49
+ vmla.f32 q12, q1, q5
50
+ vmla.f32 q13, q1, q7
51
+ vmla.f32 q14, q3, q9
52
+ vmla.f32 q15, q3, q11
53
+ sub WINDOW, WINDOW, #96
54
+ sub B0L, B0L, #32
55
+ sub B0R, B0R, #32
56
+ vld1.32 {q0,q1}, [WINDOW], r5
57
+ vld1.32 {q2,q3}, [WINDOW]
58
+ vld1.32 {q4,q5}, [B0L, :128], r6
59
+ vld1.32 {q6,q7}, [B0R, :128], r6
60
+ vld1.32 {q8,q9}, [B0L, :128]!
61
+ vld1.32 {q10,q11}, [B0R, :128]!
62
+ vmla.f32 q12, q0, q4
63
+ vmla.f32 q13, q0, q6
64
+ vmla.f32 q14, q2, q8
65
+ vmla.f32 q15, q2, q10
66
+ add WINDOW, WINDOW, #96
67
+ vmla.f32 q12, q1, q5
68
+ vmla.f32 q13, q1, q7
69
+ vmla.f32 q14, q3, q9
70
+ vmla.f32 q15, q3, q11
71
+
72
+ vld1.32 {q0,q1}, [WINDOW], r5
73
+ vld1.32 {q2,q3}, [WINDOW]
74
+ vld1.32 {q4,q5}, [B0L, :128], r6
75
+ vld1.32 {q6,q7}, [B0R, :128], r6
76
+ vld1.32 {q8,q9}, [B0L, :128]
77
+ vld1.32 {q10,q11}, [B0R, :128]
78
+ vpadd.f32 d24, d24, d25
79
+ vpadd.f32 d25, d26, d27
80
+ vpadd.f32 d26, d28, d29
81
+ vpadd.f32 d27, d30, d31
82
+ vmvn.i32 q14, #0xb9000000
83
+ vld1.32 {q15}, [sp, :128]
84
+ vpadd.f32 d24, d24, d25
85
+ vpadd.f32 d25, d26, d27
86
+ vacgt.f32 q14, q12, q14
87
+ vcvt.s32.f32 q13, q12, #16
88
+ vshr.u32 q14, q14, #31
89
+ vst1.32 {q13}, [SAMPLES]!
90
+ vadd.i32 q14, q14, q15
91
+ vst1.32 {q14}, [sp, :128]
92
+ vmul.f32 q12, q0, q4
93
+ vmul.f32 q13, q0, q6
94
+ vmul.f32 q14, q2, q8
95
+ vmul.f32 q15, q2, q10
96
+ vmla.f32 q12, q1, q5
97
+ vmla.f32 q13, q1, q7
98
+ vmla.f32 q14, q3, q9
99
+ vmla.f32 q15, q3, q11
100
+ sub WINDOW, WINDOW, #96
101
+ sub B0L, B0L, #32
102
+ sub B0R, B0R, #32
103
+ vld1.32 {q0,q1}, [WINDOW], r5
104
+ vld1.32 {q2,q3}, [WINDOW]
105
+ vld1.32 {q4,q5}, [B0L, :128], r6
106
+ vld1.32 {q6,q7}, [B0R, :128], r6
107
+ vld1.32 {q8,q9}, [B0L, :128]!
108
+ vld1.32 {q10,q11}, [B0R, :128]!
109
+ vmla.f32 q12, q0, q4
110
+ vmla.f32 q13, q0, q6
111
+ vmla.f32 q14, q2, q8
112
+ vmla.f32 q15, q2, q10
113
+ add WINDOW, WINDOW, #96
114
+ vmla.f32 q12, q1, q5
115
+ vmla.f32 q13, q1, q7
116
+ vmla.f32 q14, q3, q9
117
+ vmla.f32 q15, q3, q11
118
+ vpadd.f32 d24, d24, d25
119
+ vpadd.f32 d25, d26, d27
120
+ vpadd.f32 d26, d28, d29
121
+ vpadd.f32 d27, d30, d31
122
+ vmvn.i32 q14, #0xb9000000
123
+ vld1.32 {q15}, [sp, :128]
124
+ vpadd.f32 d24, d24, d25
125
+ vpadd.f32 d25, d26, d27
126
+ vacgt.f32 q14, q12, q14
127
+ vcvt.s32.f32 q13, q12, #16
128
+ vshr.u32 q14, q14, #31
129
+ vst1.32 {q13}, [SAMPLES]!
130
+ vadd.i32 q14, q14, q15
131
+ vst1.32 {q14}, [sp, :128]
132
+
133
+ subs r4, r4, #1
134
+ bne .Loop_start_1
135
+
136
+ mov r4, #4
137
+ mov r6, #-64
138
+ .Loop_start_2:
139
+ vld1.32 {q0,q1}, [WINDOW], r5
140
+ vld1.32 {q2,q3}, [WINDOW]
141
+ vld1.32 {q4,q5}, [B0L, :128], r6
142
+ vld1.32 {q6,q7}, [B0R, :128], r6
143
+ vld1.32 {q8,q9}, [B0L, :128]
144
+ vld1.32 {q10,q11}, [B0R, :128]
145
+ vmul.f32 q12, q0, q4
146
+ vmul.f32 q13, q0, q6
147
+ vmul.f32 q14, q2, q8
148
+ vmul.f32 q15, q2, q10
149
+ vmla.f32 q12, q1, q5
150
+ vmla.f32 q13, q1, q7
151
+ vmla.f32 q14, q3, q9
152
+ vmla.f32 q15, q3, q11
153
+ sub WINDOW, WINDOW, #96
154
+ add B0L, B0L, #96
155
+ add B0R, B0R, #96
156
+ vld1.32 {q0,q1}, [WINDOW], r5
157
+ vld1.32 {q2,q3}, [WINDOW]
158
+ vld1.32 {q4,q5}, [B0L, :128], r6
159
+ vld1.32 {q6,q7}, [B0R, :128], r6
160
+ vld1.32 {q8,q9}, [B0L, :128]
161
+ vld1.32 {q10,q11}, [B0R, :128]
162
+ vmla.f32 q12, q0, q4
163
+ vmla.f32 q13, q0, q6
164
+ vmla.f32 q14, q2, q8
165
+ vmla.f32 q15, q2, q10
166
+ add WINDOW, WINDOW, #96
167
+ sub B0L, B0L, #96
168
+ sub B0R, B0R, #96
169
+ vmla.f32 q12, q1, q5
170
+ vmla.f32 q13, q1, q7
171
+ vmla.f32 q14, q3, q9
172
+ vmla.f32 q15, q3, q11
173
+
174
+ vld1.32 {q0,q1}, [WINDOW], r5
175
+ vld1.32 {q2,q3}, [WINDOW]
176
+ vld1.32 {q4,q5}, [B0L, :128], r6
177
+ vld1.32 {q6,q7}, [B0R, :128], r6
178
+ vld1.32 {q8,q9}, [B0L, :128]
179
+ vld1.32 {q10,q11}, [B0R, :128]
180
+ vpadd.f32 d24, d24, d25
181
+ vpadd.f32 d25, d26, d27
182
+ vpadd.f32 d26, d28, d29
183
+ vpadd.f32 d27, d30, d31
184
+ vmvn.i32 q14, #0xb9000000
185
+ vld1.32 {q15}, [sp, :128]
186
+ vpadd.f32 d24, d24, d25
187
+ vpadd.f32 d25, d26, d27
188
+ vacgt.f32 q14, q12, q14
189
+ vcvt.s32.f32 q13, q12, #16
190
+ vshr.u32 q14, q14, #31
191
+ vst1.32 {q13}, [SAMPLES]!
192
+ vadd.i32 q14, q14, q15
193
+ vst1.32 {q14}, [sp, :128]
194
+ vmul.f32 q12, q0, q4
195
+ vmul.f32 q13, q0, q6
196
+ vmul.f32 q14, q2, q8
197
+ vmul.f32 q15, q2, q10
198
+ vmla.f32 q12, q1, q5
199
+ vmla.f32 q13, q1, q7
200
+ vmla.f32 q14, q3, q9
201
+ vmla.f32 q15, q3, q11
202
+ sub WINDOW, WINDOW, #96
203
+ add B0L, B0L, #96
204
+ add B0R, B0R, #96
205
+ vld1.32 {q0,q1}, [WINDOW], r5
206
+ vld1.32 {q2,q3}, [WINDOW]
207
+ vld1.32 {q4,q5}, [B0L, :128], r6
208
+ vld1.32 {q6,q7}, [B0R, :128], r6
209
+ vld1.32 {q8,q9}, [B0L, :128]
210
+ vld1.32 {q10,q11}, [B0R, :128]
211
+ vmla.f32 q12, q0, q4
212
+ vmla.f32 q13, q0, q6
213
+ vmla.f32 q14, q2, q8
214
+ vmla.f32 q15, q2, q10
215
+ add WINDOW, WINDOW, #96
216
+ sub B0L, B0L, #96
217
+ sub B0R, B0R, #96
218
+ vmla.f32 q12, q1, q5
219
+ vmla.f32 q13, q1, q7
220
+ vmla.f32 q14, q3, q9
221
+ vmla.f32 q15, q3, q11
222
+ vpadd.f32 d24, d24, d25
223
+ vpadd.f32 d25, d26, d27
224
+ vpadd.f32 d26, d28, d29
225
+ vpadd.f32 d27, d30, d31
226
+ vmvn.i32 q14, #0xb9000000
227
+ vld1.32 {q15}, [sp, :128]
228
+ vpadd.f32 d24, d24, d25
229
+ vpadd.f32 d25, d26, d27
230
+ vacgt.f32 q14, q12, q14
231
+ vcvt.s32.f32 q13, q12, #16
232
+ vshr.u32 q14, q14, #31
233
+ vst1.32 {q13}, [SAMPLES]!
234
+ vadd.i32 q14, q14, q15
235
+ vst1.32 {q14}, [sp, :128]
236
+
237
+ subs r4, r4, #1
238
+ bne .Loop_start_2
239
+
240
+ vld1.32 {q0}, [sp, :128]
241
+ vpadd.i32 d0, d0, d1
242
+ vpadd.i32 d0, d0, d0
243
+ vmov.32 r0, d0[0]
244
+
245
+ mov sp, r7
246
+ vpop {q4-q7}
247
+ pop {r4-r7, pc}
@@ -0,0 +1,508 @@
1
+ /*
2
+ synth_stereo_sse_accurate: SSE optimized synth (stereo specific, 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 *b0l; */
14
+ #define B0L %edx
15
+ /* real *b0r; */
16
+ #define B0R %esi
17
+ /* real *samples; */
18
+ #define SAMPLES %edi
19
+
20
+ #define TEMP(n) (12+16*n)(%esp)
21
+ #define MMREG_CLIP %mm7
22
+
23
+ /*
24
+ int synth_1to1_s_sse_accurate_asm(real *window, real *b0l, real *b0r, short *samples, int bo1);
25
+ return value: number of clipped samples
26
+ */
27
+
28
+ #ifndef __APPLE__
29
+ .section .rodata
30
+ #else
31
+ .data
32
+ #endif
33
+ ALIGN32
34
+ ASM_NAME(maxmin_s16):
35
+ .long 1191181824 /* 32767.0 */
36
+ .long 1191181824
37
+ .long 1191181824
38
+ .long 1191181824
39
+ .long -956301312 /* -32768.0 */
40
+ .long -956301312
41
+ .long -956301312
42
+ .long -956301312
43
+ .text
44
+ ALIGN16
45
+ .globl ASM_NAME(synth_1to1_s_sse_accurate_asm)
46
+ ASM_NAME(synth_1to1_s_sse_accurate_asm):
47
+ pushl %ebp
48
+ movl %esp, %ebp
49
+ andl $-16, %esp
50
+ subl $128, %esp
51
+ pushl %ebx
52
+ pushl %esi
53
+ pushl %edi
54
+
55
+ pxor MMREG_CLIP, MMREG_CLIP
56
+
57
+ movl 8(%ebp), WINDOW
58
+ movl 12(%ebp), B0L
59
+ movl 16(%ebp), B0R
60
+ movl 20(%ebp), SAMPLES
61
+ movl 24(%ebp), %eax
62
+ shll $2, %eax
63
+
64
+ leal 64(WINDOW), WINDOW
65
+ subl %eax, WINDOW
66
+
67
+ movl $4, %ecx
68
+
69
+ ALIGN16
70
+ Loop_start_1:
71
+ movups (WINDOW), %xmm0
72
+ movups 16(WINDOW), %xmm1
73
+ movups 32(WINDOW), %xmm2
74
+ movups 48(WINDOW), %xmm3
75
+ movaps %xmm0, %xmm4
76
+ movaps %xmm1, %xmm5
77
+ movaps %xmm2, %xmm6
78
+ movaps %xmm3, %xmm7
79
+ mulps 0(B0L), %xmm0
80
+ mulps 16(B0L), %xmm1
81
+ mulps 32(B0L), %xmm2
82
+ mulps 48(B0L), %xmm3
83
+ mulps 0(B0R), %xmm4
84
+ mulps 16(B0R), %xmm5
85
+ mulps 32(B0R), %xmm6
86
+ mulps 48(B0R), %xmm7
87
+ addps %xmm1, %xmm0
88
+ addps %xmm3, %xmm2
89
+ addps %xmm5, %xmm4
90
+ addps %xmm7, %xmm6
91
+ addps %xmm2, %xmm0
92
+ addps %xmm6, %xmm4
93
+ movaps %xmm0, TEMP(0)
94
+ movaps %xmm4, TEMP(4)
95
+
96
+ leal 128(WINDOW), WINDOW
97
+ leal 64(B0L), B0L
98
+ leal 64(B0R), B0R
99
+
100
+ movups (WINDOW), %xmm0
101
+ movups 16(WINDOW), %xmm1
102
+ movups 32(WINDOW), %xmm2
103
+ movups 48(WINDOW), %xmm3
104
+ movaps %xmm0, %xmm4
105
+ movaps %xmm1, %xmm5
106
+ movaps %xmm2, %xmm6
107
+ movaps %xmm3, %xmm7
108
+ mulps 0(B0L), %xmm0
109
+ mulps 16(B0L), %xmm1
110
+ mulps 32(B0L), %xmm2
111
+ mulps 48(B0L), %xmm3
112
+ mulps 0(B0R), %xmm4
113
+ mulps 16(B0R), %xmm5
114
+ mulps 32(B0R), %xmm6
115
+ mulps 48(B0R), %xmm7
116
+ addps %xmm1, %xmm0
117
+ addps %xmm3, %xmm2
118
+ addps %xmm5, %xmm4
119
+ addps %xmm7, %xmm6
120
+ addps %xmm2, %xmm0
121
+ addps %xmm6, %xmm4
122
+ movaps %xmm0, TEMP(1)
123
+ movaps %xmm4, TEMP(5)
124
+
125
+ leal 128(WINDOW), WINDOW
126
+ leal 64(B0L), B0L
127
+ leal 64(B0R), B0R
128
+
129
+ movups (WINDOW), %xmm0
130
+ movups 16(WINDOW), %xmm1
131
+ movups 32(WINDOW), %xmm2
132
+ movups 48(WINDOW), %xmm3
133
+ movaps %xmm0, %xmm4
134
+ movaps %xmm1, %xmm5
135
+ movaps %xmm2, %xmm6
136
+ movaps %xmm3, %xmm7
137
+ mulps 0(B0L), %xmm0
138
+ mulps 16(B0L), %xmm1
139
+ mulps 32(B0L), %xmm2
140
+ mulps 48(B0L), %xmm3
141
+ mulps 0(B0R), %xmm4
142
+ mulps 16(B0R), %xmm5
143
+ mulps 32(B0R), %xmm6
144
+ mulps 48(B0R), %xmm7
145
+ addps %xmm1, %xmm0
146
+ addps %xmm3, %xmm2
147
+ addps %xmm5, %xmm4
148
+ addps %xmm7, %xmm6
149
+ addps %xmm2, %xmm0
150
+ addps %xmm6, %xmm4
151
+ movaps %xmm0, TEMP(2)
152
+ movaps %xmm4, TEMP(6)
153
+
154
+ leal 128(WINDOW), WINDOW
155
+ leal 64(B0L), B0L
156
+ leal 64(B0R), B0R
157
+
158
+ movups (WINDOW), %xmm0
159
+ movups 16(WINDOW), %xmm1
160
+ movups 32(WINDOW), %xmm2
161
+ movups 48(WINDOW), %xmm3
162
+ movaps %xmm0, %xmm4
163
+ movaps %xmm1, %xmm5
164
+ movaps %xmm2, %xmm6
165
+ movaps %xmm3, %xmm7
166
+ mulps 0(B0L), %xmm0
167
+ mulps 16(B0L), %xmm1
168
+ mulps 32(B0L), %xmm2
169
+ mulps 48(B0L), %xmm3
170
+ mulps 0(B0R), %xmm4
171
+ mulps 16(B0R), %xmm5
172
+ mulps 32(B0R), %xmm6
173
+ mulps 48(B0R), %xmm7
174
+ addps %xmm1, %xmm0
175
+ addps %xmm3, %xmm2
176
+ addps %xmm5, %xmm4
177
+ addps %xmm7, %xmm6
178
+ addps %xmm2, %xmm0
179
+ addps %xmm6, %xmm4
180
+ movaps %xmm0, %xmm7
181
+ movaps %xmm4, TEMP(7)
182
+
183
+ leal 128(WINDOW), WINDOW
184
+ leal 64(B0L), B0L
185
+ leal 64(B0R), B0R
186
+
187
+ movaps TEMP(0), %xmm4
188
+ movaps TEMP(1), %xmm5
189
+ movaps TEMP(2), %xmm6
190
+ movaps %xmm4, %xmm0
191
+ movaps %xmm6, %xmm1
192
+ unpcklps %xmm5, %xmm4
193
+ unpcklps %xmm7, %xmm6
194
+ unpckhps %xmm5, %xmm0
195
+ unpckhps %xmm7, %xmm1
196
+ movaps %xmm4, %xmm2
197
+ movaps %xmm0, %xmm3
198
+ movlhps %xmm6, %xmm4
199
+ movhlps %xmm2, %xmm6
200
+ movlhps %xmm1, %xmm0
201
+ movhlps %xmm3, %xmm1
202
+ subps %xmm6, %xmm4
203
+ subps %xmm1, %xmm0
204
+ addps %xmm4, %xmm0
205
+ movaps %xmm0, %xmm2
206
+
207
+ movaps TEMP(4), %xmm4
208
+ movaps TEMP(5), %xmm5
209
+ movaps TEMP(6), %xmm6
210
+ movaps TEMP(7), %xmm7
211
+ movaps %xmm4, %xmm0
212
+ movaps %xmm6, %xmm1
213
+ unpcklps %xmm5, %xmm4
214
+ unpcklps %xmm7, %xmm6
215
+ unpckhps %xmm5, %xmm0
216
+ unpckhps %xmm7, %xmm1
217
+ movaps %xmm2, %xmm5
218
+ movaps %xmm4, %xmm2
219
+ movaps %xmm0, %xmm3
220
+ movlhps %xmm6, %xmm4
221
+ movhlps %xmm2, %xmm6
222
+ movlhps %xmm1, %xmm0
223
+ movhlps %xmm3, %xmm1
224
+ subps %xmm6, %xmm4
225
+ subps %xmm1, %xmm0
226
+ addps %xmm4, %xmm0
227
+
228
+ movaps %xmm5, %xmm1
229
+ movaps %xmm5, %xmm2
230
+ movaps %xmm0, %xmm3
231
+ movaps %xmm0, %xmm4
232
+ cmpnleps ASM_NAME(maxmin_s16), %xmm1
233
+ cmpltps ASM_NAME(maxmin_s16)+16, %xmm2
234
+ cmpnleps ASM_NAME(maxmin_s16), %xmm3
235
+ cmpltps ASM_NAME(maxmin_s16)+16, %xmm4
236
+ cvtps2pi %xmm5, %mm0
237
+ cvtps2pi %xmm0, %mm1
238
+ movhlps %xmm5, %xmm5
239
+ movhlps %xmm0, %xmm0
240
+ cvtps2pi %xmm5, %mm2
241
+ cvtps2pi %xmm0, %mm3
242
+ packssdw %mm2, %mm0
243
+ packssdw %mm3, %mm1
244
+ movq %mm0, %mm2
245
+ punpcklwd %mm1, %mm0
246
+ punpckhwd %mm1, %mm2
247
+ movq %mm0, (SAMPLES)
248
+ movq %mm2, 8(SAMPLES)
249
+
250
+ cvtps2pi %xmm1, %mm2
251
+ cvtps2pi %xmm3, %mm3
252
+ movhlps %xmm1, %xmm1
253
+ movhlps %xmm3, %xmm3
254
+ cvtps2pi %xmm1, %mm4
255
+ cvtps2pi %xmm3, %mm5
256
+ packssdw %mm4, %mm2
257
+ packssdw %mm5, %mm3
258
+ psrlw $15, %mm2
259
+ psrlw $15, %mm3
260
+ cvtps2pi %xmm2, %mm0
261
+ cvtps2pi %xmm4, %mm1
262
+ movhlps %xmm2, %xmm2
263
+ movhlps %xmm4, %xmm4
264
+ cvtps2pi %xmm2, %mm4
265
+ cvtps2pi %xmm4, %mm5
266
+ packssdw %mm4, %mm0
267
+ packssdw %mm5, %mm1
268
+ psrlw $15, %mm0
269
+ psrlw $15, %mm1
270
+ paddw %mm3, %mm2
271
+ paddw %mm1, %mm0
272
+ paddw %mm2, %mm0
273
+ paddw %mm0, MMREG_CLIP
274
+
275
+ leal 16(SAMPLES), SAMPLES
276
+ decl %ecx
277
+ jnz Loop_start_1
278
+
279
+ movl $4, %ecx
280
+
281
+ ALIGN16
282
+ Loop_start_2:
283
+ movups (WINDOW), %xmm0
284
+ movups 16(WINDOW), %xmm1
285
+ movups 32(WINDOW), %xmm2
286
+ movups 48(WINDOW), %xmm3
287
+ movaps %xmm0, %xmm4
288
+ movaps %xmm1, %xmm5
289
+ movaps %xmm2, %xmm6
290
+ movaps %xmm3, %xmm7
291
+ mulps 0(B0L), %xmm0
292
+ mulps 16(B0L), %xmm1
293
+ mulps 32(B0L), %xmm2
294
+ mulps 48(B0L), %xmm3
295
+ mulps 0(B0R), %xmm4
296
+ mulps 16(B0R), %xmm5
297
+ mulps 32(B0R), %xmm6
298
+ mulps 48(B0R), %xmm7
299
+ addps %xmm1, %xmm0
300
+ addps %xmm3, %xmm2
301
+ addps %xmm5, %xmm4
302
+ addps %xmm7, %xmm6
303
+ addps %xmm2, %xmm0
304
+ addps %xmm6, %xmm4
305
+ movaps %xmm0, TEMP(0)
306
+ movaps %xmm4, TEMP(4)
307
+
308
+ leal 128(WINDOW), WINDOW
309
+ leal -64(B0L), B0L
310
+ leal -64(B0R), B0R
311
+
312
+ movups (WINDOW), %xmm0
313
+ movups 16(WINDOW), %xmm1
314
+ movups 32(WINDOW), %xmm2
315
+ movups 48(WINDOW), %xmm3
316
+ movaps %xmm0, %xmm4
317
+ movaps %xmm1, %xmm5
318
+ movaps %xmm2, %xmm6
319
+ movaps %xmm3, %xmm7
320
+ mulps 0(B0L), %xmm0
321
+ mulps 16(B0L), %xmm1
322
+ mulps 32(B0L), %xmm2
323
+ mulps 48(B0L), %xmm3
324
+ mulps 0(B0R), %xmm4
325
+ mulps 16(B0R), %xmm5
326
+ mulps 32(B0R), %xmm6
327
+ mulps 48(B0R), %xmm7
328
+ addps %xmm1, %xmm0
329
+ addps %xmm3, %xmm2
330
+ addps %xmm5, %xmm4
331
+ addps %xmm7, %xmm6
332
+ addps %xmm2, %xmm0
333
+ addps %xmm6, %xmm4
334
+ movaps %xmm0, TEMP(1)
335
+ movaps %xmm4, TEMP(5)
336
+
337
+ leal 128(WINDOW), WINDOW
338
+ leal -64(B0L), B0L
339
+ leal -64(B0R), B0R
340
+
341
+ movups (WINDOW), %xmm0
342
+ movups 16(WINDOW), %xmm1
343
+ movups 32(WINDOW), %xmm2
344
+ movups 48(WINDOW), %xmm3
345
+ movaps %xmm0, %xmm4
346
+ movaps %xmm1, %xmm5
347
+ movaps %xmm2, %xmm6
348
+ movaps %xmm3, %xmm7
349
+ mulps 0(B0L), %xmm0
350
+ mulps 16(B0L), %xmm1
351
+ mulps 32(B0L), %xmm2
352
+ mulps 48(B0L), %xmm3
353
+ mulps 0(B0R), %xmm4
354
+ mulps 16(B0R), %xmm5
355
+ mulps 32(B0R), %xmm6
356
+ mulps 48(B0R), %xmm7
357
+ addps %xmm1, %xmm0
358
+ addps %xmm3, %xmm2
359
+ addps %xmm5, %xmm4
360
+ addps %xmm7, %xmm6
361
+ addps %xmm2, %xmm0
362
+ addps %xmm6, %xmm4
363
+ movaps %xmm0, TEMP(2)
364
+ movaps %xmm4, TEMP(6)
365
+
366
+ leal 128(WINDOW), WINDOW
367
+ leal -64(B0L), B0L
368
+ leal -64(B0R), B0R
369
+
370
+ movups (WINDOW), %xmm0
371
+ movups 16(WINDOW), %xmm1
372
+ movups 32(WINDOW), %xmm2
373
+ movups 48(WINDOW), %xmm3
374
+ movaps %xmm0, %xmm4
375
+ movaps %xmm1, %xmm5
376
+ movaps %xmm2, %xmm6
377
+ movaps %xmm3, %xmm7
378
+ mulps 0(B0L), %xmm0
379
+ mulps 16(B0L), %xmm1
380
+ mulps 32(B0L), %xmm2
381
+ mulps 48(B0L), %xmm3
382
+ mulps 0(B0R), %xmm4
383
+ mulps 16(B0R), %xmm5
384
+ mulps 32(B0R), %xmm6
385
+ mulps 48(B0R), %xmm7
386
+ addps %xmm1, %xmm0
387
+ addps %xmm3, %xmm2
388
+ addps %xmm5, %xmm4
389
+ addps %xmm7, %xmm6
390
+ addps %xmm2, %xmm0
391
+ addps %xmm6, %xmm4
392
+ movaps %xmm0, %xmm7
393
+ movaps %xmm4, TEMP(7)
394
+
395
+ leal 128(WINDOW), WINDOW
396
+ leal -64(B0L), B0L
397
+ leal -64(B0R), B0R
398
+
399
+ movaps TEMP(0), %xmm4
400
+ movaps TEMP(1), %xmm5
401
+ movaps TEMP(2), %xmm6
402
+ movaps %xmm4, %xmm0
403
+ movaps %xmm6, %xmm1
404
+ unpcklps %xmm5, %xmm4
405
+ unpcklps %xmm7, %xmm6
406
+ unpckhps %xmm5, %xmm0
407
+ unpckhps %xmm7, %xmm1
408
+ movaps %xmm4, %xmm2
409
+ movaps %xmm0, %xmm3
410
+ movlhps %xmm6, %xmm4
411
+ movhlps %xmm2, %xmm6
412
+ movlhps %xmm1, %xmm0
413
+ movhlps %xmm3, %xmm1
414
+ addps %xmm6, %xmm4
415
+ addps %xmm1, %xmm0
416
+ addps %xmm4, %xmm0
417
+ movaps %xmm0, %xmm2
418
+
419
+ movaps TEMP(4), %xmm4
420
+ movaps TEMP(5), %xmm5
421
+ movaps TEMP(6), %xmm6
422
+ movaps TEMP(7), %xmm7
423
+ movaps %xmm4, %xmm0
424
+ movaps %xmm6, %xmm1
425
+ unpcklps %xmm5, %xmm4
426
+ unpcklps %xmm7, %xmm6
427
+ unpckhps %xmm5, %xmm0
428
+ unpckhps %xmm7, %xmm1
429
+ movaps %xmm2, %xmm5
430
+ movaps %xmm4, %xmm2
431
+ movaps %xmm0, %xmm3
432
+ movlhps %xmm6, %xmm4
433
+ movhlps %xmm2, %xmm6
434
+ movlhps %xmm1, %xmm0
435
+ movhlps %xmm3, %xmm1
436
+ addps %xmm6, %xmm4
437
+ addps %xmm1, %xmm0
438
+ addps %xmm4, %xmm0
439
+
440
+ movaps %xmm5, %xmm1
441
+ movaps %xmm5, %xmm2
442
+ movaps %xmm0, %xmm3
443
+ movaps %xmm0, %xmm4
444
+ cmpnleps ASM_NAME(maxmin_s16), %xmm1
445
+ cmpltps ASM_NAME(maxmin_s16)+16, %xmm2
446
+ cmpnleps ASM_NAME(maxmin_s16), %xmm3
447
+ cmpltps ASM_NAME(maxmin_s16)+16, %xmm4
448
+ cvtps2pi %xmm5, %mm0
449
+ cvtps2pi %xmm0, %mm1
450
+ movhlps %xmm5, %xmm5
451
+ movhlps %xmm0, %xmm0
452
+ cvtps2pi %xmm5, %mm2
453
+ cvtps2pi %xmm0, %mm3
454
+ packssdw %mm2, %mm0
455
+ packssdw %mm3, %mm1
456
+ movq %mm0, %mm2
457
+ punpcklwd %mm1, %mm0
458
+ punpckhwd %mm1, %mm2
459
+ movq %mm0, (SAMPLES)
460
+ movq %mm2, 8(SAMPLES)
461
+
462
+ cvtps2pi %xmm1, %mm2
463
+ cvtps2pi %xmm3, %mm3
464
+ movhlps %xmm1, %xmm1
465
+ movhlps %xmm3, %xmm3
466
+ cvtps2pi %xmm1, %mm4
467
+ cvtps2pi %xmm3, %mm5
468
+ packssdw %mm4, %mm2
469
+ packssdw %mm5, %mm3
470
+ psrlw $15, %mm2
471
+ psrlw $15, %mm3
472
+ cvtps2pi %xmm2, %mm0
473
+ cvtps2pi %xmm4, %mm1
474
+ movhlps %xmm2, %xmm2
475
+ movhlps %xmm4, %xmm4
476
+ cvtps2pi %xmm2, %mm4
477
+ cvtps2pi %xmm4, %mm5
478
+ packssdw %mm4, %mm0
479
+ packssdw %mm5, %mm1
480
+ psrlw $15, %mm0
481
+ psrlw $15, %mm1
482
+ paddw %mm3, %mm2
483
+ paddw %mm1, %mm0
484
+ paddw %mm2, %mm0
485
+ paddw %mm0, MMREG_CLIP
486
+
487
+ leal 16(SAMPLES), SAMPLES
488
+ decl %ecx
489
+ jnz Loop_start_2
490
+
491
+ pshufw $0xee, MMREG_CLIP, %mm0
492
+ paddw MMREG_CLIP, %mm0
493
+ pshufw $0x55, %mm0, %mm1
494
+ paddw %mm1, %mm0
495
+ movd %mm0, %eax
496
+ andl $0xffff, %eax
497
+
498
+ popl %edi
499
+ popl %esi
500
+ popl %ebx
501
+ movl %ebp, %esp
502
+ popl %ebp
503
+
504
+ emms
505
+
506
+ ret
507
+
508
+ NONEXEC_STACK