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,262 @@
1
+ /*
2
+ synth_stereo_neon_accurate: ARM NEON optimized synth (stereo specific, MPEG compliant 16-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_s_neon_accurate_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_s_neon_accurate_asm)
23
+ ASM_NAME(synth_1to1_s_neon_accurate_asm):
24
+ push {r4-r7, lr}
25
+ vpush {q4-q7}
26
+ ldr r4, [sp, #84]
27
+ mov r7, sp
28
+ sub sp, sp, #16
29
+ bic sp, #0xff
30
+
31
+ add WINDOW, WINDOW, #64
32
+ sub WINDOW, WINDOW, r4, lsl #2
33
+
34
+ mov r4, #4
35
+ mov r5, #128
36
+ mov r6, #64
37
+ .Loop_start_1:
38
+ vld1.32 {q0,q1}, [WINDOW], r5
39
+ vld1.32 {q2,q3}, [WINDOW]
40
+ vld1.32 {q4,q5}, [B0L, :128], r6
41
+ vld1.32 {q6,q7}, [B0R, :128], r6
42
+ vld1.32 {q8,q9}, [B0L, :128]
43
+ vld1.32 {q10,q11}, [B0R, :128]
44
+ vmul.f32 q12, q0, q4
45
+ vmul.f32 q13, q0, q6
46
+ vmul.f32 q14, q2, q8
47
+ vmul.f32 q15, q2, q10
48
+ vmla.f32 q12, q1, q5
49
+ vmla.f32 q13, q1, q7
50
+ vmla.f32 q14, q3, q9
51
+ vmla.f32 q15, q3, q11
52
+ sub WINDOW, WINDOW, #96
53
+ sub B0L, B0L, #32
54
+ sub B0R, B0R, #32
55
+ vld1.32 {q0,q1}, [WINDOW], r5
56
+ vld1.32 {q2,q3}, [WINDOW]
57
+ vld1.32 {q4,q5}, [B0L, :128], r6
58
+ vld1.32 {q6,q7}, [B0R, :128], r6
59
+ vld1.32 {q8,q9}, [B0L, :128]!
60
+ vld1.32 {q10,q11}, [B0R, :128]!
61
+ vmla.f32 q12, q0, q4
62
+ vmla.f32 q13, q0, q6
63
+ vmla.f32 q14, q2, q8
64
+ vmla.f32 q15, q2, q10
65
+ add WINDOW, WINDOW, #96
66
+ vmla.f32 q12, q1, q5
67
+ vmla.f32 q13, q1, q7
68
+ vmla.f32 q14, q3, q9
69
+ vmla.f32 q15, q3, q11
70
+
71
+ vld1.32 {q0,q1}, [WINDOW], r5
72
+ vld1.32 {q2,q3}, [WINDOW]
73
+ vld1.32 {q4,q5}, [B0L, :128], r6
74
+ vld1.32 {q6,q7}, [B0R, :128], r6
75
+ vld1.32 {q8,q9}, [B0L, :128]
76
+ vld1.32 {q10,q11}, [B0R, :128]
77
+ vpadd.f32 d24, d24, d25
78
+ vpadd.f32 d25, d26, d27
79
+ vpadd.f32 d26, d28, d29
80
+ vpadd.f32 d27, d30, d31
81
+ vmov.i32 q15, #0x4b000000
82
+ vmvn.i32 q14, #0xb9000000
83
+ vorr.i32 q15, #0x00400000
84
+ vpadd.f32 d24, d24, d25
85
+ vpadd.f32 d25, d26, d27
86
+ vacgt.f32 q14, q12, q14
87
+ vadd.f32 q13, q12, q15
88
+ vld1.32 {q15}, [sp, :128]
89
+ vshr.u32 q14, q14, #31
90
+ vshl.i32 q13, q13, #10
91
+ vadd.i32 q14, q14, q15
92
+ vqshrn.s32 d26, q13, #10
93
+ vst1.32 {q14}, [sp, :128]
94
+ vst1.16 {d26}, [SAMPLES]!
95
+ vmul.f32 q12, q0, q4
96
+ vmul.f32 q13, q0, q6
97
+ vmul.f32 q14, q2, q8
98
+ vmul.f32 q15, q2, q10
99
+ vmla.f32 q12, q1, q5
100
+ vmla.f32 q13, q1, q7
101
+ vmla.f32 q14, q3, q9
102
+ vmla.f32 q15, q3, q11
103
+ sub WINDOW, WINDOW, #96
104
+ sub B0L, B0L, #32
105
+ sub B0R, B0R, #32
106
+ vld1.32 {q0,q1}, [WINDOW], r5
107
+ vld1.32 {q2,q3}, [WINDOW]
108
+ vld1.32 {q4,q5}, [B0L, :128], r6
109
+ vld1.32 {q6,q7}, [B0R, :128], r6
110
+ vld1.32 {q8,q9}, [B0L, :128]!
111
+ vld1.32 {q10,q11}, [B0R, :128]!
112
+ vmla.f32 q12, q0, q4
113
+ vmla.f32 q13, q0, q6
114
+ vmla.f32 q14, q2, q8
115
+ vmla.f32 q15, q2, q10
116
+ add WINDOW, WINDOW, #96
117
+ vmla.f32 q12, q1, q5
118
+ vmla.f32 q13, q1, q7
119
+ vmla.f32 q14, q3, q9
120
+ vmla.f32 q15, q3, q11
121
+ vpadd.f32 d24, d24, d25
122
+ vpadd.f32 d25, d26, d27
123
+ vpadd.f32 d26, d28, d29
124
+ vpadd.f32 d27, d30, d31
125
+ vmov.i32 q15, #0x4b000000
126
+ vmvn.i32 q14, #0xb9000000
127
+ vorr.i32 q15, #0x00400000
128
+ vpadd.f32 d24, d24, d25
129
+ vpadd.f32 d25, d26, d27
130
+ vacgt.f32 q14, q12, q14
131
+ vadd.f32 q13, q12, q15
132
+ vld1.32 {q15}, [sp, :128]
133
+ vshr.u32 q14, q14, #31
134
+ vshl.i32 q13, q13, #10
135
+ vadd.i32 q14, q14, q15
136
+ vqshrn.s32 d26, q13, #10
137
+ vst1.32 {q14}, [sp, :128]
138
+ vst1.16 {d26}, [SAMPLES]!
139
+
140
+ subs r4, r4, #1
141
+ bne .Loop_start_1
142
+
143
+ mov r4, #4
144
+ mov r6, #-64
145
+ .Loop_start_2:
146
+ vld1.32 {q0,q1}, [WINDOW], r5
147
+ vld1.32 {q2,q3}, [WINDOW]
148
+ vld1.32 {q4,q5}, [B0L, :128], r6
149
+ vld1.32 {q6,q7}, [B0R, :128], r6
150
+ vld1.32 {q8,q9}, [B0L, :128]
151
+ vld1.32 {q10,q11}, [B0R, :128]
152
+ vmul.f32 q12, q0, q4
153
+ vmul.f32 q13, q0, q6
154
+ vmul.f32 q14, q2, q8
155
+ vmul.f32 q15, q2, q10
156
+ vmla.f32 q12, q1, q5
157
+ vmla.f32 q13, q1, q7
158
+ vmla.f32 q14, q3, q9
159
+ vmla.f32 q15, q3, q11
160
+ sub WINDOW, WINDOW, #96
161
+ add B0L, B0L, #96
162
+ add B0R, B0R, #96
163
+ vld1.32 {q0,q1}, [WINDOW], r5
164
+ vld1.32 {q2,q3}, [WINDOW]
165
+ vld1.32 {q4,q5}, [B0L, :128], r6
166
+ vld1.32 {q6,q7}, [B0R, :128], r6
167
+ vld1.32 {q8,q9}, [B0L, :128]
168
+ vld1.32 {q10,q11}, [B0R, :128]
169
+ vmla.f32 q12, q0, q4
170
+ vmla.f32 q13, q0, q6
171
+ vmla.f32 q14, q2, q8
172
+ vmla.f32 q15, q2, q10
173
+ add WINDOW, WINDOW, #96
174
+ sub B0L, B0L, #96
175
+ sub B0R, B0R, #96
176
+ vmla.f32 q12, q1, q5
177
+ vmla.f32 q13, q1, q7
178
+ vmla.f32 q14, q3, q9
179
+ vmla.f32 q15, q3, q11
180
+
181
+ vld1.32 {q0,q1}, [WINDOW], r5
182
+ vld1.32 {q2,q3}, [WINDOW]
183
+ vld1.32 {q4,q5}, [B0L, :128], r6
184
+ vld1.32 {q6,q7}, [B0R, :128], r6
185
+ vld1.32 {q8,q9}, [B0L, :128]
186
+ vld1.32 {q10,q11}, [B0R, :128]
187
+ vpadd.f32 d24, d24, d25
188
+ vpadd.f32 d25, d26, d27
189
+ vpadd.f32 d26, d28, d29
190
+ vpadd.f32 d27, d30, d31
191
+ vmov.i32 q15, #0x4b000000
192
+ vmvn.i32 q14, #0xb9000000
193
+ vorr.i32 q15, #0x00400000
194
+ vpadd.f32 d24, d24, d25
195
+ vpadd.f32 d25, d26, d27
196
+ vacgt.f32 q14, q12, q14
197
+ vadd.f32 q13, q12, q15
198
+ vld1.32 {q15}, [sp, :128]
199
+ vshr.u32 q14, q14, #31
200
+ vshl.i32 q13, q13, #10
201
+ vadd.i32 q14, q14, q15
202
+ vqshrn.s32 d26, q13, #10
203
+ vst1.32 {q14}, [sp, :128]
204
+ vst1.16 {d26}, [SAMPLES]!
205
+ vmul.f32 q12, q0, q4
206
+ vmul.f32 q13, q0, q6
207
+ vmul.f32 q14, q2, q8
208
+ vmul.f32 q15, q2, q10
209
+ vmla.f32 q12, q1, q5
210
+ vmla.f32 q13, q1, q7
211
+ vmla.f32 q14, q3, q9
212
+ vmla.f32 q15, q3, q11
213
+ sub WINDOW, WINDOW, #96
214
+ add B0L, B0L, #96
215
+ add B0R, B0R, #96
216
+ vld1.32 {q0,q1}, [WINDOW], r5
217
+ vld1.32 {q2,q3}, [WINDOW]
218
+ vld1.32 {q4,q5}, [B0L, :128], r6
219
+ vld1.32 {q6,q7}, [B0R, :128], r6
220
+ vld1.32 {q8,q9}, [B0L, :128]
221
+ vld1.32 {q10,q11}, [B0R, :128]
222
+ vmla.f32 q12, q0, q4
223
+ vmla.f32 q13, q0, q6
224
+ vmla.f32 q14, q2, q8
225
+ vmla.f32 q15, q2, q10
226
+ add WINDOW, WINDOW, #96
227
+ sub B0L, B0L, #96
228
+ sub B0R, B0R, #96
229
+ vmla.f32 q12, q1, q5
230
+ vmla.f32 q13, q1, q7
231
+ vmla.f32 q14, q3, q9
232
+ vmla.f32 q15, q3, q11
233
+ vpadd.f32 d24, d24, d25
234
+ vpadd.f32 d25, d26, d27
235
+ vpadd.f32 d26, d28, d29
236
+ vpadd.f32 d27, d30, d31
237
+ vmov.i32 q15, #0x4b000000
238
+ vmvn.i32 q14, #0xb9000000
239
+ vorr.i32 q15, #0x00400000
240
+ vpadd.f32 d24, d24, d25
241
+ vpadd.f32 d25, d26, d27
242
+ vacgt.f32 q14, q12, q14
243
+ vadd.f32 q13, q12, q15
244
+ vld1.32 {q15}, [sp, :128]
245
+ vshr.u32 q14, q14, #31
246
+ vshl.i32 q13, q13, #10
247
+ vadd.i32 q14, q14, q15
248
+ vqshrn.s32 d26, q13, #10
249
+ vst1.32 {q14}, [sp, :128]
250
+ vst1.16 {d26}, [SAMPLES]!
251
+
252
+ subs r4, r4, #1
253
+ bne .Loop_start_2
254
+
255
+ vld1.32 {q0}, [sp, :128]
256
+ vpadd.i32 d0, d0, d1
257
+ vpadd.i32 d0, d0, d0
258
+ vmov.32 r0, d0[0]
259
+
260
+ mov sp, r7
261
+ vpop {q4-q7}
262
+ pop {r4-r7, pc}
@@ -0,0 +1,220 @@
1
+ /*
2
+ synth_stereo_neon_float: ARM NEON optimized synth (stereo specific, float 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_real_s_neon_asm(real *window, real *b0l, real *b0r, real *samples, int bo1);
18
+ return value: number of clipped samples (0)
19
+ */
20
+
21
+ .text
22
+ .globl ASM_NAME(synth_1to1_real_s_neon_asm)
23
+ ALIGN4
24
+ ASM_NAME(synth_1to1_real_s_neon_asm):
25
+ push {r4-r6, lr}
26
+ vpush {q4-q7}
27
+
28
+ ldr r4, [sp, #80]
29
+ add WINDOW, WINDOW, #64
30
+ sub WINDOW, WINDOW, r4, lsl #2
31
+
32
+ mov r4, #4
33
+ mov r5, #128
34
+ mov r6, #64
35
+ .Loop_start_1:
36
+ vld1.32 {q0,q1}, [WINDOW], r5
37
+ vld1.32 {q2,q3}, [WINDOW]
38
+ vld1.32 {q4,q5}, [B0L, :128], r6
39
+ vld1.32 {q6,q7}, [B0R, :128], r6
40
+ vld1.32 {q8,q9}, [B0L, :128]
41
+ vld1.32 {q10,q11}, [B0R, :128]
42
+ vmul.f32 q12, q0, q4
43
+ vmul.f32 q13, q0, q6
44
+ vmul.f32 q14, q2, q8
45
+ vmul.f32 q15, q2, q10
46
+ vmla.f32 q12, q1, q5
47
+ vmla.f32 q13, q1, q7
48
+ vmla.f32 q14, q3, q9
49
+ vmla.f32 q15, q3, q11
50
+ sub WINDOW, WINDOW, #96
51
+ sub B0L, B0L, #32
52
+ sub B0R, B0R, #32
53
+ vld1.32 {q0,q1}, [WINDOW], r5
54
+ vld1.32 {q2,q3}, [WINDOW]
55
+ vld1.32 {q4,q5}, [B0L, :128], r6
56
+ vld1.32 {q6,q7}, [B0R, :128], r6
57
+ vld1.32 {q8,q9}, [B0L, :128]!
58
+ vld1.32 {q10,q11}, [B0R, :128]!
59
+ vmla.f32 q12, q0, q4
60
+ vmla.f32 q13, q0, q6
61
+ vmla.f32 q14, q2, q8
62
+ vmla.f32 q15, q2, q10
63
+ add WINDOW, WINDOW, #96
64
+ vmla.f32 q12, q1, q5
65
+ vmla.f32 q13, q1, q7
66
+ vmla.f32 q14, q3, q9
67
+ vmla.f32 q15, q3, q11
68
+
69
+ vld1.32 {q0,q1}, [WINDOW], r5
70
+ vld1.32 {q2,q3}, [WINDOW]
71
+ vld1.32 {q4,q5}, [B0L, :128], r6
72
+ vld1.32 {q6,q7}, [B0R, :128], r6
73
+ vld1.32 {q8,q9}, [B0L, :128]
74
+ vld1.32 {q10,q11}, [B0R, :128]
75
+ vpadd.f32 d24, d24, d25
76
+ vpadd.f32 d25, d26, d27
77
+ vpadd.f32 d26, d28, d29
78
+ vpadd.f32 d27, d30, d31
79
+ vmov.i32 q14, #0x38000000
80
+ vpadd.f32 d24, d24, d25
81
+ vpadd.f32 d25, d26, d27
82
+ vmul.f32 q15, q12, q14
83
+ vmul.f32 q12, q0, q4
84
+ vmul.f32 q13, q0, q6
85
+ vmul.f32 q14, q2, q8
86
+ vst1.32 {q15}, [SAMPLES]!
87
+ vmul.f32 q15, q2, q10
88
+ vmla.f32 q12, q1, q5
89
+ vmla.f32 q13, q1, q7
90
+ vmla.f32 q14, q3, q9
91
+ vmla.f32 q15, q3, q11
92
+ sub WINDOW, WINDOW, #96
93
+ sub B0L, B0L, #32
94
+ sub B0R, B0R, #32
95
+ vld1.32 {q0,q1}, [WINDOW], r5
96
+ vld1.32 {q2,q3}, [WINDOW]
97
+ vld1.32 {q4,q5}, [B0L, :128], r6
98
+ vld1.32 {q6,q7}, [B0R, :128], r6
99
+ vld1.32 {q8,q9}, [B0L, :128]!
100
+ vld1.32 {q10,q11}, [B0R, :128]!
101
+ vmla.f32 q12, q0, q4
102
+ vmla.f32 q13, q0, q6
103
+ vmla.f32 q14, q2, q8
104
+ vmla.f32 q15, q2, q10
105
+ add WINDOW, WINDOW, #96
106
+ vmla.f32 q12, q1, q5
107
+ vmla.f32 q13, q1, q7
108
+ vmla.f32 q14, q3, q9
109
+ vmla.f32 q15, q3, q11
110
+ vpadd.f32 d24, d24, d25
111
+ vpadd.f32 d25, d26, d27
112
+ vpadd.f32 d26, d28, d29
113
+ vpadd.f32 d27, d30, d31
114
+ vmov.i32 q14, #0x38000000
115
+ vpadd.f32 d24, d24, d25
116
+ vpadd.f32 d25, d26, d27
117
+ vmul.f32 q12, q12, q14
118
+ vst1.32 {q12}, [SAMPLES]!
119
+
120
+ subs r4, r4, #1
121
+ bne .Loop_start_1
122
+
123
+ mov r4, #4
124
+ mov r6, #-64
125
+ .Loop_start_2:
126
+ vld1.32 {q0,q1}, [WINDOW], r5
127
+ vld1.32 {q2,q3}, [WINDOW]
128
+ vld1.32 {q4,q5}, [B0L, :128], r6
129
+ vld1.32 {q6,q7}, [B0R, :128], r6
130
+ vld1.32 {q8,q9}, [B0L, :128]
131
+ vld1.32 {q10,q11}, [B0R, :128]
132
+ vmul.f32 q12, q0, q4
133
+ vmul.f32 q13, q0, q6
134
+ vmul.f32 q14, q2, q8
135
+ vmul.f32 q15, q2, q10
136
+ vmla.f32 q12, q1, q5
137
+ vmla.f32 q13, q1, q7
138
+ vmla.f32 q14, q3, q9
139
+ vmla.f32 q15, q3, q11
140
+ sub WINDOW, WINDOW, #96
141
+ add B0L, B0L, #96
142
+ add B0R, B0R, #96
143
+ vld1.32 {q0,q1}, [WINDOW], r5
144
+ vld1.32 {q2,q3}, [WINDOW]
145
+ vld1.32 {q4,q5}, [B0L, :128], r6
146
+ vld1.32 {q6,q7}, [B0R, :128], r6
147
+ vld1.32 {q8,q9}, [B0L, :128]
148
+ vld1.32 {q10,q11}, [B0R, :128]
149
+ vmla.f32 q12, q0, q4
150
+ vmla.f32 q13, q0, q6
151
+ vmla.f32 q14, q2, q8
152
+ vmla.f32 q15, q2, q10
153
+ add WINDOW, WINDOW, #96
154
+ sub B0L, B0L, #96
155
+ sub B0R, B0R, #96
156
+ vmla.f32 q12, q1, q5
157
+ vmla.f32 q13, q1, q7
158
+ vmla.f32 q14, q3, q9
159
+ vmla.f32 q15, q3, q11
160
+
161
+ vld1.32 {q0,q1}, [WINDOW], r5
162
+ vld1.32 {q2,q3}, [WINDOW]
163
+ vld1.32 {q4,q5}, [B0L, :128], r6
164
+ vld1.32 {q6,q7}, [B0R, :128], r6
165
+ vld1.32 {q8,q9}, [B0L, :128]
166
+ vld1.32 {q10,q11}, [B0R, :128]
167
+ vpadd.f32 d24, d24, d25
168
+ vpadd.f32 d25, d26, d27
169
+ vpadd.f32 d26, d28, d29
170
+ vpadd.f32 d27, d30, d31
171
+ vmov.i32 q14, #0x38000000
172
+ vpadd.f32 d24, d24, d25
173
+ vpadd.f32 d25, d26, d27
174
+ vmul.f32 q15, q12, q14
175
+ vmul.f32 q12, q0, q4
176
+ vmul.f32 q13, q0, q6
177
+ vmul.f32 q14, q2, q8
178
+ vst1.32 {q15}, [SAMPLES]!
179
+ vmul.f32 q15, q2, q10
180
+ vmla.f32 q12, q1, q5
181
+ vmla.f32 q13, q1, q7
182
+ vmla.f32 q14, q3, q9
183
+ vmla.f32 q15, q3, q11
184
+ sub WINDOW, WINDOW, #96
185
+ add B0L, B0L, #96
186
+ add B0R, B0R, #96
187
+ vld1.32 {q0,q1}, [WINDOW], r5
188
+ vld1.32 {q2,q3}, [WINDOW]
189
+ vld1.32 {q4,q5}, [B0L, :128], r6
190
+ vld1.32 {q6,q7}, [B0R, :128], r6
191
+ vld1.32 {q8,q9}, [B0L, :128]
192
+ vld1.32 {q10,q11}, [B0R, :128]
193
+ vmla.f32 q12, q0, q4
194
+ vmla.f32 q13, q0, q6
195
+ vmla.f32 q14, q2, q8
196
+ vmla.f32 q15, q2, q10
197
+ add WINDOW, WINDOW, #96
198
+ sub B0L, B0L, #96
199
+ sub B0R, B0R, #96
200
+ vmla.f32 q12, q1, q5
201
+ vmla.f32 q13, q1, q7
202
+ vmla.f32 q14, q3, q9
203
+ vmla.f32 q15, q3, q11
204
+ vpadd.f32 d24, d24, d25
205
+ vpadd.f32 d25, d26, d27
206
+ vpadd.f32 d26, d28, d29
207
+ vpadd.f32 d27, d30, d31
208
+ vmov.i32 q14, #0x38000000
209
+ vpadd.f32 d24, d24, d25
210
+ vpadd.f32 d25, d26, d27
211
+ vmul.f32 q12, q12, q14
212
+ vst1.32 {q12}, [SAMPLES]!
213
+
214
+ subs r4, r4, #1
215
+ bne .Loop_start_2
216
+
217
+ mov r0, #0
218
+
219
+ vpop {q4-q7}
220
+ pop {r4-r6, pc}