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,271 @@
1
+ /*
2
+ synth_arm: ARM optimized synth
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
+ #define WINDOW r0
12
+ #define B0 r1
13
+ #define SAMPLES r2
14
+ #define REG_CLIP r4
15
+ #define REG_MAX r12
16
+
17
+ /*
18
+ int synth_1to1_arm_asm(real *window, real *b0, short *samples, int bo1);
19
+ return value: number of clipped samples
20
+ */
21
+
22
+ .text
23
+ ALIGN4
24
+ .globl ASM_NAME(synth_1to1_arm_asm)
25
+ ASM_NAME(synth_1to1_arm_asm):
26
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr}
27
+
28
+ add WINDOW, WINDOW, #64
29
+ sub WINDOW, WINDOW, r3, lsl #2
30
+ eor REG_CLIP, REG_CLIP, REG_CLIP
31
+ mov REG_MAX, #1073741824
32
+ sub REG_MAX, REG_MAX, #32768
33
+
34
+ mov r3, #16
35
+
36
+ ldr r5, [WINDOW], #4
37
+ ldr r6, [B0], #4
38
+ .Loop_start_1:
39
+ ldr r8, [WINDOW], #4
40
+ ldr r9, [B0], #4
41
+ mul r7, r5, r6
42
+ ldr r5, [WINDOW], #4
43
+ ldr r6, [B0], #4
44
+ mul r10, r8, r9
45
+ ldr r8, [WINDOW], #4
46
+ ldr r9, [B0], #4
47
+ mla r7, r5, r6, r7
48
+ ldr r5, [WINDOW], #4
49
+ ldr r6, [B0], #4
50
+ mla r10, r8, r9, r10
51
+ ldr r8, [WINDOW], #4
52
+ ldr r9, [B0], #4
53
+ mla r7, r5, r6, r7
54
+ ldr r5, [WINDOW], #4
55
+ ldr r6, [B0], #4
56
+ mla r10, r8, r9, r10
57
+ ldr r8, [WINDOW], #4
58
+ ldr r9, [B0], #4
59
+ mla r7, r5, r6, r7
60
+ ldr r5, [WINDOW], #4
61
+ ldr r6, [B0], #4
62
+ mla r10, r8, r9, r10
63
+ ldr r8, [WINDOW], #4
64
+ ldr r9, [B0], #4
65
+ mla r7, r5, r6, r7
66
+ ldr r5, [WINDOW], #4
67
+ ldr r6, [B0], #4
68
+ mla r10, r8, r9, r10
69
+ ldr r8, [WINDOW], #4
70
+ ldr r9, [B0], #4
71
+ mla r7, r5, r6, r7
72
+ ldr r5, [WINDOW], #4
73
+ ldr r6, [B0], #4
74
+ mla r10, r8, r9, r10
75
+ ldr r8, [WINDOW], #4
76
+ ldr r9, [B0], #4
77
+ mla r7, r5, r6, r7
78
+ ldr r5, [WINDOW], #4
79
+ ldr r6, [B0], #4
80
+ mla r10, r8, r9, r10
81
+ ldr r8, [WINDOW], #68
82
+ ldr r9, [B0], #4
83
+ mla r7, r5, r6, r7
84
+ ldr r5, [WINDOW], #4
85
+ ldr r6, [B0], #4
86
+ mla r10, r8, r9, r10
87
+
88
+ sub r7, r7, r10
89
+
90
+ cmp r7, REG_MAX
91
+ movgt r7, REG_MAX
92
+ addgt REG_CLIP, REG_CLIP, #1
93
+ cmp r7, #-1073741824
94
+ movlt r7, #-1073741824
95
+ addlt REG_CLIP, REG_CLIP, #1
96
+ movs r7, r7, asr #15
97
+ adc r7, r7, #0
98
+ strh r7, [SAMPLES], #4
99
+
100
+ subs r3, r3, #1
101
+ bne .Loop_start_1
102
+
103
+ add WINDOW, WINDOW, #4
104
+ add B0, B0, #4
105
+
106
+ ldr r8, [WINDOW], #8
107
+ ldr r9, [B0], #8
108
+ mul r7, r5, r6
109
+ ldr r5, [WINDOW], #8
110
+ ldr r6, [B0], #8
111
+ mul r10, r8, r9
112
+ ldr r8, [WINDOW], #8
113
+ ldr r9, [B0], #8
114
+ mla r7, r5, r6, r7
115
+ ldr r5, [WINDOW], #8
116
+ ldr r6, [B0], #8
117
+ mla r10, r8, r9, r10
118
+ ldr r8, [WINDOW], #8
119
+ ldr r9, [B0], #8
120
+ mla r7, r5, r6, r7
121
+ ldr r5, [WINDOW], #8
122
+ ldr r6, [B0], #8
123
+ mla r10, r8, r9, r10
124
+ ldr r8, [WINDOW], #72
125
+ ldr r9, [B0], #-120
126
+ mla r7, r5, r6, r7
127
+ ldr r5, [WINDOW], #4
128
+ ldr r6, [B0], #4
129
+ mla r10, r8, r9, r10
130
+
131
+ add r7, r7, r10
132
+
133
+ cmp r7, REG_MAX
134
+ movgt r7, REG_MAX
135
+ addgt REG_CLIP, REG_CLIP, #1
136
+ cmp r7, #-1073741824
137
+ movlt r7, #-1073741824
138
+ addlt REG_CLIP, REG_CLIP, #1
139
+ movs r7, r7, asr #15
140
+ adc r7, r7, #0
141
+ strh r7, [SAMPLES], #4
142
+
143
+ mov r3, #14
144
+
145
+ .Loop_start_2:
146
+ ldr r8, [WINDOW], #4
147
+ ldr r9, [B0], #4
148
+ mul r7, r5, r6
149
+ ldr r5, [WINDOW], #4
150
+ ldr r6, [B0], #4
151
+ mul r10, r8, r9
152
+ ldr r8, [WINDOW], #4
153
+ ldr r9, [B0], #4
154
+ mla r7, r5, r6, r7
155
+ ldr r5, [WINDOW], #4
156
+ ldr r6, [B0], #4
157
+ mla r10, r8, r9, r10
158
+ ldr r8, [WINDOW], #4
159
+ ldr r9, [B0], #4
160
+ mla r7, r5, r6, r7
161
+ ldr r5, [WINDOW], #4
162
+ ldr r6, [B0], #4
163
+ mla r10, r8, r9, r10
164
+ ldr r8, [WINDOW], #4
165
+ ldr r9, [B0], #4
166
+ mla r7, r5, r6, r7
167
+ ldr r5, [WINDOW], #4
168
+ ldr r6, [B0], #4
169
+ mla r10, r8, r9, r10
170
+ ldr r8, [WINDOW], #4
171
+ ldr r9, [B0], #4
172
+ mla r7, r5, r6, r7
173
+ ldr r5, [WINDOW], #4
174
+ ldr r6, [B0], #4
175
+ mla r10, r8, r9, r10
176
+ ldr r8, [WINDOW], #4
177
+ ldr r9, [B0], #4
178
+ mla r7, r5, r6, r7
179
+ ldr r5, [WINDOW], #4
180
+ ldr r6, [B0], #4
181
+ mla r10, r8, r9, r10
182
+ ldr r8, [WINDOW], #4
183
+ ldr r9, [B0], #4
184
+ mla r7, r5, r6, r7
185
+ ldr r5, [WINDOW], #4
186
+ ldr r6, [B0], #4
187
+ mla r10, r8, r9, r10
188
+ ldr r8, [WINDOW], #68
189
+ ldr r9, [B0], #-124
190
+ mla r7, r5, r6, r7
191
+ ldr r5, [WINDOW], #4
192
+ ldr r6, [B0], #4
193
+ mla r10, r8, r9, r10
194
+
195
+ add r7, r7, r10
196
+
197
+ cmp r7, REG_MAX
198
+ movgt r7, REG_MAX
199
+ addgt REG_CLIP, REG_CLIP, #1
200
+ cmp r7, #-1073741824
201
+ movlt r7, #-1073741824
202
+ addlt REG_CLIP, REG_CLIP, #1
203
+ movs r7, r7, asr #15
204
+ adc r7, r7, #0
205
+ strh r7, [SAMPLES], #4
206
+
207
+ subs r3, r3, #1
208
+ bne .Loop_start_2
209
+
210
+ ldr r8, [WINDOW], #4
211
+ ldr r9, [B0], #4
212
+ mul r7, r5, r6
213
+ ldr r5, [WINDOW], #4
214
+ ldr r6, [B0], #4
215
+ mul r10, r8, r9
216
+ ldr r8, [WINDOW], #4
217
+ ldr r9, [B0], #4
218
+ mla r7, r5, r6, r7
219
+ ldr r5, [WINDOW], #4
220
+ ldr r6, [B0], #4
221
+ mla r10, r8, r9, r10
222
+ ldr r8, [WINDOW], #4
223
+ ldr r9, [B0], #4
224
+ mla r7, r5, r6, r7
225
+ ldr r5, [WINDOW], #4
226
+ ldr r6, [B0], #4
227
+ mla r10, r8, r9, r10
228
+ ldr r8, [WINDOW], #4
229
+ ldr r9, [B0], #4
230
+ mla r7, r5, r6, r7
231
+ ldr r5, [WINDOW], #4
232
+ ldr r6, [B0], #4
233
+ mla r10, r8, r9, r10
234
+ ldr r8, [WINDOW], #4
235
+ ldr r9, [B0], #4
236
+ mla r7, r5, r6, r7
237
+ ldr r5, [WINDOW], #4
238
+ ldr r6, [B0], #4
239
+ mla r10, r8, r9, r10
240
+ ldr r8, [WINDOW], #4
241
+ ldr r9, [B0], #4
242
+ mla r7, r5, r6, r7
243
+ ldr r5, [WINDOW], #4
244
+ ldr r6, [B0], #4
245
+ mla r10, r8, r9, r10
246
+ ldr r8, [WINDOW], #4
247
+ ldr r9, [B0], #4
248
+ mla r7, r5, r6, r7
249
+ ldr r5, [WINDOW], #4
250
+ ldr r6, [B0], #4
251
+ mla r10, r8, r9, r10
252
+ ldr r8, [WINDOW]
253
+ ldr r9, [B0]
254
+ mla r7, r5, r6, r7
255
+ mla r10, r8, r9, r10
256
+
257
+ add r7, r7, r10
258
+
259
+ cmp r7, REG_MAX
260
+ movgt r7, REG_MAX
261
+ addgt REG_CLIP, REG_CLIP, #1
262
+ cmp r7, #-1073741824
263
+ movlt r7, #-1073741824
264
+ addlt REG_CLIP, REG_CLIP, #1
265
+ movs r7, r7, asr #15
266
+ adc r7, r7, #0
267
+ strh r7, [SAMPLES]
268
+
269
+ mov r0, REG_CLIP
270
+
271
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc}
@@ -0,0 +1,287 @@
1
+ /*
2
+ synth_arm_accurate: ARM optimized synth (ISO 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
+ #define WINDOW r0
12
+ #define B0 r1
13
+ #define SAMPLES r2
14
+ #define REG_CLIP r4
15
+ #define REG_MAX r14
16
+
17
+ /*
18
+ int synth_1to1_arm_accurate_asm(real *window, real *b0, short *samples, int bo1);
19
+ return value: number of clipped samples
20
+ */
21
+
22
+ .text
23
+ ALIGN4
24
+ .globl ASM_NAME(synth_1to1_arm_accurate_asm)
25
+ ASM_NAME(synth_1to1_arm_accurate_asm):
26
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
27
+
28
+ add WINDOW, WINDOW, #64
29
+ sub WINDOW, WINDOW, r3, lsl #2
30
+ eor REG_CLIP, REG_CLIP, REG_CLIP
31
+ mov REG_MAX, #1073741824
32
+ sub REG_MAX, REG_MAX, #32768
33
+
34
+ mov r3, #16
35
+
36
+ ldr r5, [WINDOW], #4
37
+ ldr r6, [B0], #4
38
+ .Loop_start_1:
39
+ ldr r9, [WINDOW], #4
40
+ ldr r10, [B0], #4
41
+ smull r8, r7, r5, r6
42
+ ldr r5, [WINDOW], #4
43
+ ldr r6, [B0], #4
44
+ smull r12, r11, r9, r10
45
+ ldr r9, [WINDOW], #4
46
+ ldr r10, [B0], #4
47
+ smlal r8, r7, r5, r6
48
+ ldr r5, [WINDOW], #4
49
+ ldr r6, [B0], #4
50
+ smlal r12, r11, r9, r10
51
+ ldr r9, [WINDOW], #4
52
+ ldr r10, [B0], #4
53
+ smlal r8, r7, r5, r6
54
+ ldr r5, [WINDOW], #4
55
+ ldr r6, [B0], #4
56
+ smlal r12, r11, r9, r10
57
+ ldr r9, [WINDOW], #4
58
+ ldr r10, [B0], #4
59
+ smlal r8, r7, r5, r6
60
+ ldr r5, [WINDOW], #4
61
+ ldr r6, [B0], #4
62
+ smlal r12, r11, r9, r10
63
+ ldr r9, [WINDOW], #4
64
+ ldr r10, [B0], #4
65
+ smlal r8, r7, r5, r6
66
+ ldr r5, [WINDOW], #4
67
+ ldr r6, [B0], #4
68
+ smlal r12, r11, r9, r10
69
+ ldr r9, [WINDOW], #4
70
+ ldr r10, [B0], #4
71
+ smlal r8, r7, r5, r6
72
+ ldr r5, [WINDOW], #4
73
+ ldr r6, [B0], #4
74
+ smlal r12, r11, r9, r10
75
+ ldr r9, [WINDOW], #4
76
+ ldr r10, [B0], #4
77
+ smlal r8, r7, r5, r6
78
+ ldr r5, [WINDOW], #4
79
+ ldr r6, [B0], #4
80
+ smlal r12, r11, r9, r10
81
+ ldr r9, [WINDOW], #68
82
+ ldr r10, [B0], #4
83
+ smlal r8, r7, r5, r6
84
+ ldr r5, [WINDOW], #4
85
+ ldr r6, [B0], #4
86
+ smlal r12, r11, r9, r10
87
+
88
+ mov r8, r8, lsr #24
89
+ mov r12, r12, lsr #24
90
+ orr r8, r8, r7, lsl #8
91
+ orr r12, r12, r11, lsl #8
92
+ sub r8, r8, r12
93
+
94
+ cmp r8, REG_MAX
95
+ movgt r8, REG_MAX
96
+ addgt REG_CLIP, REG_CLIP, #1
97
+ cmp r8, #-1073741824
98
+ movlt r8, #-1073741824
99
+ addlt REG_CLIP, REG_CLIP, #1
100
+ movs r8, r8, asr #15
101
+ adc r8, r8, #0
102
+ strh r8, [SAMPLES], #4
103
+
104
+ subs r3, r3, #1
105
+ bne .Loop_start_1
106
+
107
+ add WINDOW, WINDOW, #4
108
+ add B0, B0, #4
109
+
110
+ ldr r9, [WINDOW], #8
111
+ ldr r10, [B0], #8
112
+ smull r8, r7, r5, r6
113
+ ldr r5, [WINDOW], #8
114
+ ldr r6, [B0], #8
115
+ smull r12, r11, r9, r10
116
+ ldr r9, [WINDOW], #8
117
+ ldr r10, [B0], #8
118
+ smlal r8, r7, r5, r6
119
+ ldr r5, [WINDOW], #8
120
+ ldr r6, [B0], #8
121
+ smlal r12, r11, r9, r10
122
+ ldr r9, [WINDOW], #8
123
+ ldr r10, [B0], #8
124
+ smlal r8, r7, r5, r6
125
+ ldr r5, [WINDOW], #8
126
+ ldr r6, [B0], #8
127
+ smlal r12, r11, r9, r10
128
+ ldr r9, [WINDOW], #72
129
+ ldr r10, [B0], #-120
130
+ smlal r8, r7, r5, r6
131
+ ldr r5, [WINDOW], #4
132
+ ldr r6, [B0], #4
133
+ smlal r12, r11, r9, r10
134
+
135
+ mov r8, r8, lsr #24
136
+ mov r12, r12, lsr #24
137
+ orr r8, r8, r7, lsl #8
138
+ orr r12, r12, r11, lsl #8
139
+ add r8, r8, r12
140
+
141
+ cmp r8, REG_MAX
142
+ movgt r8, REG_MAX
143
+ addgt REG_CLIP, REG_CLIP, #1
144
+ cmp r8, #-1073741824
145
+ movlt r8, #-1073741824
146
+ addlt REG_CLIP, REG_CLIP, #1
147
+ movs r8, r8, asr #15
148
+ adc r8, r8, #0
149
+ strh r8, [SAMPLES], #4
150
+
151
+ mov r3, #14
152
+
153
+ .Loop_start_2:
154
+ ldr r9, [WINDOW], #4
155
+ ldr r10, [B0], #4
156
+ smull r8, r7, r5, r6
157
+ ldr r5, [WINDOW], #4
158
+ ldr r6, [B0], #4
159
+ smull r12, r11, r9, r10
160
+ ldr r9, [WINDOW], #4
161
+ ldr r10, [B0], #4
162
+ smlal r8, r7, r5, r6
163
+ ldr r5, [WINDOW], #4
164
+ ldr r6, [B0], #4
165
+ smlal r12, r11, r9, r10
166
+ ldr r9, [WINDOW], #4
167
+ ldr r10, [B0], #4
168
+ smlal r8, r7, r5, r6
169
+ ldr r5, [WINDOW], #4
170
+ ldr r6, [B0], #4
171
+ smlal r12, r11, r9, r10
172
+ ldr r9, [WINDOW], #4
173
+ ldr r10, [B0], #4
174
+ smlal r8, r7, r5, r6
175
+ ldr r5, [WINDOW], #4
176
+ ldr r6, [B0], #4
177
+ smlal r12, r11, r9, r10
178
+ ldr r9, [WINDOW], #4
179
+ ldr r10, [B0], #4
180
+ smlal r8, r7, r5, r6
181
+ ldr r5, [WINDOW], #4
182
+ ldr r6, [B0], #4
183
+ smlal r12, r11, r9, r10
184
+ ldr r9, [WINDOW], #4
185
+ ldr r10, [B0], #4
186
+ smlal r8, r7, r5, r6
187
+ ldr r5, [WINDOW], #4
188
+ ldr r6, [B0], #4
189
+ smlal r12, r11, r9, r10
190
+ ldr r9, [WINDOW], #4
191
+ ldr r10, [B0], #4
192
+ smlal r8, r7, r5, r6
193
+ ldr r5, [WINDOW], #4
194
+ ldr r6, [B0], #4
195
+ smlal r12, r11, r9, r10
196
+ ldr r9, [WINDOW], #68
197
+ ldr r10, [B0], #-124
198
+ smlal r8, r7, r5, r6
199
+ ldr r5, [WINDOW], #4
200
+ ldr r6, [B0], #4
201
+ smlal r12, r11, r9, r10
202
+
203
+ mov r8, r8, lsr #24
204
+ mov r12, r12, lsr #24
205
+ orr r8, r8, r7, lsl #8
206
+ orr r12, r12, r11, lsl #8
207
+ add r8, r8, r12
208
+
209
+ cmp r8, REG_MAX
210
+ movgt r8, REG_MAX
211
+ addgt REG_CLIP, REG_CLIP, #1
212
+ cmp r8, #-1073741824
213
+ movlt r8, #-1073741824
214
+ addlt REG_CLIP, REG_CLIP, #1
215
+ movs r8, r8, asr #15
216
+ adc r8, r8, #0
217
+ strh r8, [SAMPLES], #4
218
+
219
+ subs r3, r3, #1
220
+ bne .Loop_start_2
221
+
222
+ ldr r9, [WINDOW], #4
223
+ ldr r10, [B0], #4
224
+ smull r8, r7, r5, r6
225
+ ldr r5, [WINDOW], #4
226
+ ldr r6, [B0], #4
227
+ smull r12, r11, r9, r10
228
+ ldr r9, [WINDOW], #4
229
+ ldr r10, [B0], #4
230
+ smlal r8, r7, r5, r6
231
+ ldr r5, [WINDOW], #4
232
+ ldr r6, [B0], #4
233
+ smlal r12, r11, r9, r10
234
+ ldr r9, [WINDOW], #4
235
+ ldr r10, [B0], #4
236
+ smlal r8, r7, r5, r6
237
+ ldr r5, [WINDOW], #4
238
+ ldr r6, [B0], #4
239
+ smlal r12, r11, r9, r10
240
+ ldr r9, [WINDOW], #4
241
+ ldr r10, [B0], #4
242
+ smlal r8, r7, r5, r6
243
+ ldr r5, [WINDOW], #4
244
+ ldr r6, [B0], #4
245
+ smlal r12, r11, r9, r10
246
+ ldr r9, [WINDOW], #4
247
+ ldr r10, [B0], #4
248
+ smlal r8, r7, r5, r6
249
+ ldr r5, [WINDOW], #4
250
+ ldr r6, [B0], #4
251
+ smlal r12, r11, r9, r10
252
+ ldr r9, [WINDOW], #4
253
+ ldr r10, [B0], #4
254
+ smlal r8, r7, r5, r6
255
+ ldr r5, [WINDOW], #4
256
+ ldr r6, [B0], #4
257
+ smlal r12, r11, r9, r10
258
+ ldr r9, [WINDOW], #4
259
+ ldr r10, [B0], #4
260
+ smlal r8, r7, r5, r6
261
+ ldr r5, [WINDOW], #4
262
+ ldr r6, [B0], #4
263
+ smlal r12, r11, r9, r10
264
+ ldr r9, [WINDOW], #68
265
+ ldr r10, [B0], #-124
266
+ smlal r8, r7, r5, r6
267
+ smlal r12, r11, r9, r10
268
+
269
+ mov r8, r8, lsr #24
270
+ mov r12, r12, lsr #24
271
+ orr r8, r8, r7, lsl #8
272
+ orr r12, r12, r11, lsl #8
273
+ add r8, r8, r12
274
+
275
+ cmp r8, REG_MAX
276
+ movgt r8, REG_MAX
277
+ addgt REG_CLIP, REG_CLIP, #1
278
+ cmp r8, #-1073741824
279
+ movlt r8, #-1073741824
280
+ addlt REG_CLIP, REG_CLIP, #1
281
+ movs r8, r8, asr #15
282
+ adc r8, r8, #0
283
+ strh r8, [SAMPLES]
284
+
285
+ mov r0, REG_CLIP
286
+
287
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc}