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,401 @@
1
+ /*
2
+ dct64_sse_float: SSE optimized dct64 (float output version)
3
+
4
+ copyright 1995-2009 by the mpg123 project - free software under the terms of the LGPL 2.1
5
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
6
+ initially written by Taihei Monma
7
+ */
8
+
9
+ #include "mangle.h"
10
+
11
+ #define ARG(n) (8+n*4)(%ebp)
12
+ #define TEMP(n) (4+n*16)(%esp)
13
+ #define TEMP_BYTE(n) (4+n)(%esp)
14
+
15
+ /*
16
+ void dct64_real_sse(real *out0, real *out1, real *samples);
17
+ */
18
+
19
+ #ifndef __APPLE__
20
+ .section .rodata
21
+ #else
22
+ .data
23
+ #endif
24
+ ALIGN16
25
+ pnpn:
26
+ .long 0
27
+ .long -2147483648
28
+ .long 0
29
+ .long -2147483648
30
+ ALIGN16
31
+ mask:
32
+ .long -1
33
+ .long -1
34
+ .long -1
35
+ .long 0
36
+
37
+ .text
38
+ ALIGN16
39
+ .globl ASM_NAME(dct64_real_sse)
40
+ ASM_NAME(dct64_real_sse):
41
+ pushl %ebp
42
+ movl %esp, %ebp
43
+
44
+ andl $-16, %esp /* align the stack at 16 bytes */
45
+ subl $128, %esp /* reserve space for temporal store */
46
+ pushl %ebx
47
+
48
+ movl ARG(0), %ecx
49
+ movl ARG(1), %ebx
50
+ movl ARG(2), %eax
51
+
52
+ MOVUAPS (%eax), %xmm7
53
+ MOVUAPS 16(%eax), %xmm6
54
+ MOVUAPS 112(%eax), %xmm0
55
+ MOVUAPS 96(%eax), %xmm1
56
+ shufps $0x1b, %xmm0, %xmm0
57
+ shufps $0x1b, %xmm1, %xmm1
58
+ movaps %xmm7, %xmm4
59
+ movaps %xmm6, %xmm5
60
+ addps %xmm0, %xmm4
61
+ addps %xmm1, %xmm5
62
+ subps %xmm0, %xmm7
63
+ subps %xmm1, %xmm6
64
+ movaps %xmm4, TEMP(0)
65
+ movaps %xmm5, TEMP(1)
66
+
67
+ MOVUAPS 32(%eax), %xmm2
68
+ MOVUAPS 48(%eax), %xmm3
69
+ MOVUAPS 80(%eax), %xmm0
70
+ MOVUAPS 64(%eax), %xmm1
71
+ shufps $0x1b, %xmm0, %xmm0
72
+ shufps $0x1b, %xmm1, %xmm1
73
+ movaps %xmm2, %xmm5
74
+ movaps %xmm3, %xmm4
75
+ addps %xmm0, %xmm2
76
+ addps %xmm1, %xmm3
77
+ subps %xmm0, %xmm5
78
+ subps %xmm1, %xmm4
79
+
80
+ mulps ASM_NAME(costab_mmxsse), %xmm7
81
+ mulps ASM_NAME(costab_mmxsse)+16, %xmm6
82
+ mulps ASM_NAME(costab_mmxsse)+32, %xmm5
83
+ mulps ASM_NAME(costab_mmxsse)+48, %xmm4
84
+
85
+ shufps $0x1b, %xmm2, %xmm2
86
+ shufps $0x1b, %xmm3, %xmm3
87
+ shufps $0x1b, %xmm4, %xmm4
88
+ shufps $0x1b, %xmm5, %xmm5
89
+ movaps TEMP(0), %xmm0
90
+ movaps TEMP(1), %xmm1
91
+ subps %xmm3, %xmm0
92
+ subps %xmm2, %xmm1
93
+ addps TEMP(0), %xmm3
94
+ addps TEMP(1), %xmm2
95
+ movaps %xmm3, TEMP(0)
96
+ movaps %xmm2, TEMP(1)
97
+ movaps %xmm6, %xmm2
98
+ movaps %xmm7, %xmm3
99
+ subps %xmm5, %xmm6
100
+ subps %xmm4, %xmm7
101
+ addps %xmm3, %xmm4
102
+ addps %xmm2, %xmm5
103
+ mulps ASM_NAME(costab_mmxsse)+64, %xmm0
104
+ mulps ASM_NAME(costab_mmxsse)+80, %xmm1
105
+ mulps ASM_NAME(costab_mmxsse)+80, %xmm6
106
+ mulps ASM_NAME(costab_mmxsse)+64, %xmm7
107
+
108
+ movaps TEMP(0), %xmm2
109
+ movaps TEMP(1), %xmm3
110
+ shufps $0x1b, %xmm3, %xmm3
111
+ shufps $0x1b, %xmm5, %xmm5
112
+ shufps $0x1b, %xmm1, %xmm1
113
+ shufps $0x1b, %xmm6, %xmm6
114
+ movaps %xmm0, TEMP(1)
115
+ subps %xmm3, %xmm2
116
+ subps %xmm1, %xmm0
117
+ addps TEMP(0), %xmm3
118
+ addps TEMP(1), %xmm1
119
+ movaps %xmm3, TEMP(0)
120
+ movaps %xmm1, TEMP(2)
121
+ movaps %xmm5, %xmm1
122
+ movaps %xmm4, %xmm5
123
+ movaps %xmm7, %xmm3
124
+ subps %xmm1, %xmm5
125
+ subps %xmm6, %xmm7
126
+ addps %xmm1, %xmm4
127
+ addps %xmm3, %xmm6
128
+ mulps ASM_NAME(costab_mmxsse)+96, %xmm2
129
+ mulps ASM_NAME(costab_mmxsse)+96, %xmm0
130
+ mulps ASM_NAME(costab_mmxsse)+96, %xmm5
131
+ mulps ASM_NAME(costab_mmxsse)+96, %xmm7
132
+ movaps %xmm2, TEMP(1)
133
+ movaps %xmm0, TEMP(3)
134
+
135
+ movaps %xmm4, %xmm2
136
+ movaps %xmm5, %xmm3
137
+ shufps $0x44, %xmm6, %xmm2
138
+ shufps $0xbb, %xmm7, %xmm5
139
+ shufps $0xbb, %xmm6, %xmm4
140
+ shufps $0x44, %xmm7, %xmm3
141
+ movaps %xmm2, %xmm6
142
+ movaps %xmm3, %xmm7
143
+ subps %xmm4, %xmm2
144
+ subps %xmm5, %xmm3
145
+ addps %xmm6, %xmm4
146
+ addps %xmm7, %xmm5
147
+ movaps ASM_NAME(costab_mmxsse)+112, %xmm0
148
+ movlhps %xmm0, %xmm0
149
+ mulps %xmm0, %xmm2
150
+ mulps %xmm0, %xmm3
151
+ movaps %xmm0, TEMP(4)
152
+ movaps %xmm4, %xmm6
153
+ movaps %xmm5, %xmm7
154
+ shufps $0x14, %xmm2, %xmm4
155
+ shufps $0xbe, %xmm2, %xmm6
156
+ shufps $0x14, %xmm3, %xmm5
157
+ shufps $0xbe, %xmm3, %xmm7
158
+ movaps %xmm5, TEMP(5)
159
+ movaps %xmm7, TEMP(7)
160
+
161
+ movaps TEMP(0), %xmm0
162
+ movaps TEMP(1), %xmm1
163
+ movaps %xmm0, %xmm2
164
+ movaps %xmm1, %xmm3
165
+ shufps $0x44, TEMP(2), %xmm2
166
+ shufps $0xbb, TEMP(3), %xmm1
167
+ shufps $0xbb, TEMP(2), %xmm0
168
+ shufps $0x44, TEMP(3), %xmm3
169
+ movaps %xmm2, %xmm5
170
+ movaps %xmm3, %xmm7
171
+ subps %xmm0, %xmm2
172
+ subps %xmm1, %xmm3
173
+ addps %xmm5, %xmm0
174
+ addps %xmm7, %xmm1
175
+ mulps TEMP(4), %xmm2
176
+ mulps TEMP(4), %xmm3
177
+ movaps %xmm0, %xmm5
178
+ movaps %xmm1, %xmm7
179
+ shufps $0x14, %xmm2, %xmm0
180
+ shufps $0xbe, %xmm2, %xmm5
181
+ shufps $0x14, %xmm3, %xmm1
182
+ shufps $0xbe, %xmm3, %xmm7
183
+
184
+ movaps %xmm0, TEMP(0)
185
+ movaps %xmm1, TEMP(1)
186
+ movaps %xmm5, TEMP(2)
187
+ movaps %xmm7, TEMP(3)
188
+
189
+ movss ASM_NAME(costab_mmxsse)+120, %xmm5
190
+ shufps $0x00, %xmm5, %xmm5
191
+ xorps pnpn, %xmm5
192
+
193
+ movaps %xmm4, %xmm0
194
+ movaps %xmm6, %xmm1
195
+ unpcklps TEMP(5), %xmm4
196
+ unpckhps TEMP(5), %xmm0
197
+ unpcklps TEMP(7), %xmm6
198
+ unpckhps TEMP(7), %xmm1
199
+ movaps %xmm4, %xmm2
200
+ movaps %xmm6, %xmm3
201
+ unpcklps %xmm0, %xmm4
202
+ unpckhps %xmm0, %xmm2
203
+ unpcklps %xmm1, %xmm6
204
+ unpckhps %xmm1, %xmm3
205
+ movaps %xmm4, %xmm0
206
+ movaps %xmm6, %xmm1
207
+ subps %xmm2, %xmm0
208
+ subps %xmm3, %xmm1
209
+ addps %xmm2, %xmm4
210
+ addps %xmm3, %xmm6
211
+ mulps %xmm5, %xmm0
212
+ mulps %xmm5, %xmm1
213
+ movaps %xmm5, TEMP(5)
214
+ movaps %xmm4, %xmm5
215
+ movaps %xmm6, %xmm7
216
+ unpcklps %xmm0, %xmm4
217
+ unpckhps %xmm0, %xmm5
218
+ unpcklps %xmm1, %xmm6
219
+ unpckhps %xmm1, %xmm7
220
+
221
+ movaps TEMP(0), %xmm0
222
+ movaps TEMP(2), %xmm2
223
+ movaps %xmm4, TEMP(4)
224
+ movaps %xmm6, TEMP(6)
225
+
226
+ movaps %xmm0, %xmm4
227
+ movaps %xmm2, %xmm6
228
+ unpcklps TEMP(1), %xmm0
229
+ unpckhps TEMP(1), %xmm4
230
+ unpcklps TEMP(3), %xmm2
231
+ unpckhps TEMP(3), %xmm6
232
+ movaps %xmm0, %xmm1
233
+ movaps %xmm2, %xmm3
234
+ unpcklps %xmm4, %xmm0
235
+ unpckhps %xmm4, %xmm1
236
+ unpcklps %xmm6, %xmm2
237
+ unpckhps %xmm6, %xmm3
238
+ movaps %xmm0, %xmm4
239
+ movaps %xmm2, %xmm6
240
+ subps %xmm1, %xmm4
241
+ subps %xmm3, %xmm6
242
+ addps %xmm1, %xmm0
243
+ addps %xmm3, %xmm2
244
+ mulps TEMP(5), %xmm4
245
+ mulps TEMP(5), %xmm6
246
+ movaps %xmm0, %xmm1
247
+ movaps %xmm2, %xmm3
248
+ unpcklps %xmm4, %xmm0
249
+ unpckhps %xmm4, %xmm1
250
+ unpcklps %xmm6, %xmm2
251
+ unpckhps %xmm6, %xmm3
252
+
253
+ movaps %xmm0, TEMP(0)
254
+ movaps %xmm1, TEMP(1)
255
+ movaps %xmm2, TEMP(2)
256
+ movaps %xmm3, TEMP(3)
257
+ movaps %xmm5, TEMP(5)
258
+ movaps %xmm7, TEMP(7)
259
+
260
+ movss TEMP_BYTE(12), %xmm0
261
+ movss TEMP_BYTE(28), %xmm1
262
+ movss TEMP_BYTE(44), %xmm2
263
+ movss TEMP_BYTE(60), %xmm3
264
+ addss TEMP_BYTE(8), %xmm0
265
+ addss TEMP_BYTE(24), %xmm1
266
+ addss TEMP_BYTE(40), %xmm2
267
+ addss TEMP_BYTE(56), %xmm3
268
+ movss %xmm0, TEMP_BYTE(8)
269
+ movss %xmm1, TEMP_BYTE(24)
270
+ movss %xmm2, TEMP_BYTE(40)
271
+ movss %xmm3, TEMP_BYTE(56)
272
+ movss TEMP_BYTE(76), %xmm0
273
+ movss TEMP_BYTE(92), %xmm1
274
+ movss TEMP_BYTE(108), %xmm2
275
+ movss TEMP_BYTE(124), %xmm3
276
+ addss TEMP_BYTE(72), %xmm0
277
+ addss TEMP_BYTE(88), %xmm1
278
+ addss TEMP_BYTE(104), %xmm2
279
+ addss TEMP_BYTE(120), %xmm3
280
+ movss %xmm0, TEMP_BYTE(72)
281
+ movss %xmm1, TEMP_BYTE(88)
282
+ movss %xmm2, TEMP_BYTE(104)
283
+ movss %xmm3, TEMP_BYTE(120)
284
+
285
+ movaps TEMP_BYTE(16), %xmm1
286
+ movaps TEMP_BYTE(48), %xmm3
287
+ movaps TEMP_BYTE(80), %xmm5
288
+ movaps TEMP_BYTE(112), %xmm7
289
+ movaps %xmm1, %xmm0
290
+ movaps %xmm3, %xmm2
291
+ movaps %xmm5, %xmm4
292
+ movaps %xmm7, %xmm6
293
+ shufps $0x1e, %xmm0, %xmm0
294
+ shufps $0x1e, %xmm2, %xmm2
295
+ shufps $0x1e, %xmm4, %xmm4
296
+ shufps $0x1e, %xmm6, %xmm6
297
+ andps mask, %xmm0
298
+ andps mask, %xmm2
299
+ andps mask, %xmm4
300
+ andps mask, %xmm6
301
+ addps %xmm0, %xmm1
302
+ addps %xmm2, %xmm3
303
+ addps %xmm4, %xmm5
304
+ addps %xmm6, %xmm7
305
+
306
+ movaps TEMP_BYTE(32), %xmm2
307
+ movaps TEMP_BYTE(96), %xmm6
308
+ movaps %xmm2, %xmm0
309
+ movaps %xmm6, %xmm4
310
+ shufps $0x1e, %xmm0, %xmm0
311
+ shufps $0x1e, %xmm4, %xmm4
312
+ andps mask, %xmm0
313
+ andps mask, %xmm4
314
+ addps %xmm3, %xmm2
315
+ addps %xmm0, %xmm3
316
+ addps %xmm7, %xmm6
317
+ addps %xmm4, %xmm7
318
+
319
+ movaps TEMP_BYTE(0), %xmm0
320
+ movaps TEMP_BYTE(64), %xmm4
321
+
322
+ movss %xmm0, 1024(%ecx)
323
+ movss %xmm2, 896(%ecx)
324
+ movss %xmm1, 768(%ecx)
325
+ movss %xmm3, 640(%ecx)
326
+
327
+ shufps $0xe1, %xmm0, %xmm0
328
+ shufps $0xe1, %xmm2, %xmm2
329
+ shufps $0xe1, %xmm1, %xmm1
330
+ shufps $0xe1, %xmm3, %xmm3
331
+ movss %xmm0, (%ecx)
332
+ movss %xmm0, (%ebx)
333
+ movss %xmm2, 128(%ebx)
334
+ movss %xmm1, 256(%ebx)
335
+ movss %xmm3, 384(%ebx)
336
+
337
+ movhlps %xmm0, %xmm0
338
+ movhlps %xmm2, %xmm2
339
+ movhlps %xmm1, %xmm1
340
+ movhlps %xmm3, %xmm3
341
+ movss %xmm0, 512(%ecx)
342
+ movss %xmm2, 384(%ecx)
343
+ movss %xmm1, 256(%ecx)
344
+ movss %xmm3, 128(%ecx)
345
+
346
+ shufps $0xe1, %xmm0, %xmm0
347
+ shufps $0xe1, %xmm2, %xmm2
348
+ shufps $0xe1, %xmm1, %xmm1
349
+ shufps $0xe1, %xmm3, %xmm3
350
+ movss %xmm0, 512(%ebx)
351
+ movss %xmm2, 640(%ebx)
352
+ movss %xmm1, 768(%ebx)
353
+ movss %xmm3, 896(%ebx)
354
+
355
+ movaps %xmm4, %xmm0
356
+ shufps $0x1e, %xmm0, %xmm0
357
+ movaps %xmm5, %xmm1
358
+ andps mask, %xmm0
359
+
360
+ addps %xmm6, %xmm4
361
+ addps %xmm7, %xmm5
362
+ addps %xmm1, %xmm6
363
+ addps %xmm0, %xmm7
364
+
365
+ movss %xmm4, 960(%ecx)
366
+ movss %xmm6, 832(%ecx)
367
+ movss %xmm5, 704(%ecx)
368
+ movss %xmm7, 576(%ecx)
369
+ movhlps %xmm4, %xmm0
370
+ movhlps %xmm6, %xmm1
371
+ movhlps %xmm5, %xmm2
372
+ movhlps %xmm7, %xmm3
373
+ movss %xmm0, 448(%ecx)
374
+ movss %xmm1, 320(%ecx)
375
+ movss %xmm2, 192(%ecx)
376
+ movss %xmm3, 64(%ecx)
377
+
378
+ shufps $0xe1, %xmm4, %xmm4
379
+ shufps $0xe1, %xmm6, %xmm6
380
+ shufps $0xe1, %xmm5, %xmm5
381
+ shufps $0xe1, %xmm7, %xmm7
382
+ movss %xmm4, 64(%ebx)
383
+ movss %xmm6, 192(%ebx)
384
+ movss %xmm5, 320(%ebx)
385
+ movss %xmm7, 448(%ebx)
386
+
387
+ shufps $0xe1, %xmm0, %xmm0
388
+ shufps $0xe1, %xmm1, %xmm1
389
+ shufps $0xe1, %xmm2, %xmm2
390
+ shufps $0xe1, %xmm3, %xmm3
391
+ movss %xmm0, 576(%ebx)
392
+ movss %xmm1, 704(%ebx)
393
+ movss %xmm2, 832(%ebx)
394
+ movss %xmm3, 960(%ebx)
395
+
396
+ popl %ebx
397
+ movl %ebp, %esp
398
+ popl %ebp
399
+ ret
400
+
401
+ NONEXEC_STACK
@@ -0,0 +1,464 @@
1
+ /*
2
+ dct64_x86_64: SSE optimized dct64 for x86-64
3
+
4
+ copyright 1995-2009 by the mpg123 project - free software under the terms of the LGPL 2.1
5
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
6
+ initially written by Taihei Monma
7
+ */
8
+
9
+ #include "mangle.h"
10
+
11
+ #ifdef _WIN64
12
+ /* short *out0 */
13
+ #define ARG0 %r9
14
+ /* short *out1 */
15
+ #define ARG1 %rdx
16
+ /* real *samples */
17
+ #define ARG2 %r8
18
+ #else
19
+ /* short *out0 */
20
+ #define ARG0 %rdi
21
+ /* short *out1 */
22
+ #define ARG1 %rsi
23
+ /* real *samples */
24
+ #define ARG2 %rdx
25
+ #endif
26
+
27
+ /*
28
+ void dct64_x86_64(short *out0, short *out1, real *samples);
29
+ */
30
+
31
+ #ifndef __APPLE__
32
+ .section .rodata
33
+ #else
34
+ .data
35
+ #endif
36
+ ALIGN32
37
+ ASM_NAME(costab_x86_64):
38
+ .long 1056974725
39
+ .long 1057056395
40
+ .long 1057223771
41
+ .long 1057485416
42
+ .long 1057855544
43
+ .long 1058356026
44
+ .long 1059019886
45
+ .long 1059897405
46
+ .long 1061067246
47
+ .long 1062657950
48
+ .long 1064892987
49
+ .long 1066774581
50
+ .long 1069414683
51
+ .long 1073984175
52
+ .long 1079645762
53
+ .long 1092815430
54
+ .long 1057005197
55
+ .long 1057342072
56
+ .long 1058087743
57
+ .long 1059427869
58
+ .long 1061799040
59
+ .long 1065862217
60
+ .long 1071413542
61
+ .long 1084439708
62
+ .long 1057128951
63
+ .long 1058664893
64
+ .long 1063675095
65
+ .long 1076102863
66
+ .long 1057655764
67
+ .long 1067924853
68
+ .long 1060439283
69
+ .long 0
70
+ .text
71
+ ALIGN16
72
+ .globl ASM_NAME(dct64_x86_64)
73
+ ASM_NAME(dct64_x86_64):
74
+ #ifdef _WIN64 /* should save xmm6-15 */
75
+ movq %rcx, ARG0
76
+ subq $168, %rsp /* stack alignment + 10 xmm registers */
77
+ movaps %xmm6, (%rsp)
78
+ movaps %xmm7, 16(%rsp)
79
+ movaps %xmm8, 32(%rsp)
80
+ movaps %xmm9, 48(%rsp)
81
+ movaps %xmm10, 64(%rsp)
82
+ movaps %xmm11, 80(%rsp)
83
+ movaps %xmm12, 96(%rsp)
84
+ movaps %xmm13, 112(%rsp)
85
+ movaps %xmm14, 128(%rsp)
86
+ movaps %xmm15, 144(%rsp)
87
+ #endif
88
+
89
+ leaq ASM_NAME(costab_x86_64)(%rip), %rcx
90
+
91
+ MOVUAPS (ARG2), %xmm15
92
+ MOVUAPS 16(ARG2), %xmm14
93
+ MOVUAPS 112(ARG2), %xmm0
94
+ MOVUAPS 96(ARG2), %xmm1
95
+ shufps $0x1b, %xmm0, %xmm0
96
+ shufps $0x1b, %xmm1, %xmm1
97
+ movaps %xmm15, %xmm8
98
+ movaps %xmm14, %xmm9
99
+ addps %xmm0, %xmm8
100
+ addps %xmm1, %xmm9
101
+ subps %xmm0, %xmm15
102
+ subps %xmm1, %xmm14
103
+
104
+ MOVUAPS 32(ARG2), %xmm13
105
+ MOVUAPS 48(ARG2), %xmm12
106
+ MOVUAPS 80(ARG2), %xmm0
107
+ MOVUAPS 64(ARG2), %xmm1
108
+ shufps $0x1b, %xmm0, %xmm0
109
+ shufps $0x1b, %xmm1, %xmm1
110
+ movaps %xmm13, %xmm10
111
+ movaps %xmm12, %xmm11
112
+ addps %xmm0, %xmm10
113
+ addps %xmm1, %xmm11
114
+ subps %xmm0, %xmm13
115
+ subps %xmm1, %xmm12
116
+
117
+ movaps (%rcx), %xmm0
118
+ movaps 16(%rcx), %xmm1
119
+ movaps 32(%rcx), %xmm2
120
+ movaps 48(%rcx), %xmm3
121
+ mulps %xmm0, %xmm15
122
+ mulps %xmm1, %xmm14
123
+ mulps %xmm2, %xmm13
124
+ mulps %xmm3, %xmm12
125
+
126
+ movaps 64(%rcx), %xmm0
127
+ movaps 80(%rcx), %xmm1
128
+
129
+ pshufd $0x1b, %xmm11, %xmm2
130
+ pshufd $0x1b, %xmm10, %xmm3
131
+ shufps $0x1b, %xmm13, %xmm13
132
+ shufps $0x1b, %xmm12, %xmm12
133
+ movaps %xmm8, %xmm11
134
+ movaps %xmm9, %xmm10
135
+ movaps %xmm14, %xmm4
136
+ movaps %xmm15, %xmm5
137
+ subps %xmm2, %xmm11
138
+ subps %xmm3, %xmm10
139
+ subps %xmm13, %xmm14
140
+ subps %xmm12, %xmm15
141
+ addps %xmm2, %xmm8
142
+ addps %xmm3, %xmm9
143
+ addps %xmm5, %xmm12
144
+ addps %xmm4, %xmm13
145
+ mulps %xmm0, %xmm11
146
+ mulps %xmm1, %xmm10
147
+ mulps %xmm1, %xmm14
148
+ mulps %xmm0, %xmm15
149
+
150
+ movaps 96(%rcx), %xmm0
151
+
152
+ pshufd $0x1b, %xmm9, %xmm1
153
+ pshufd $0x1b, %xmm13, %xmm2
154
+ shufps $0x1b, %xmm10, %xmm10
155
+ shufps $0x1b, %xmm14, %xmm14
156
+ movaps %xmm8, %xmm9
157
+ movaps %xmm12, %xmm13
158
+ movaps %xmm11, %xmm3
159
+ movaps %xmm15, %xmm4
160
+ subps %xmm1, %xmm9
161
+ subps %xmm2, %xmm13
162
+ subps %xmm10, %xmm11
163
+ subps %xmm14, %xmm15
164
+ addps %xmm1, %xmm8
165
+ addps %xmm2, %xmm12
166
+ addps %xmm3, %xmm10
167
+ addps %xmm4, %xmm14
168
+ mulps %xmm0, %xmm9
169
+ mulps %xmm0, %xmm13
170
+ mulps %xmm0, %xmm11
171
+ mulps %xmm0, %xmm15
172
+
173
+ movaps 112(%rcx), %xmm0
174
+ movaps %xmm0, %xmm1
175
+ movlhps %xmm1, %xmm1
176
+
177
+ movaps %xmm8, %xmm2
178
+ movaps %xmm9, %xmm3
179
+ shufps $0x44, %xmm10, %xmm2
180
+ shufps $0xbb, %xmm11, %xmm9
181
+ shufps $0xbb, %xmm10, %xmm8
182
+ shufps $0x44, %xmm11, %xmm3
183
+ movaps %xmm2, %xmm4
184
+ movaps %xmm3, %xmm5
185
+ subps %xmm8, %xmm2
186
+ subps %xmm9, %xmm3
187
+ addps %xmm4, %xmm8
188
+ addps %xmm5, %xmm9
189
+ mulps %xmm1, %xmm2
190
+ mulps %xmm1, %xmm3
191
+ movaps %xmm8, %xmm10
192
+ movaps %xmm9, %xmm11
193
+ shufps $0x14, %xmm2, %xmm8
194
+ shufps $0xbe, %xmm2, %xmm10
195
+ shufps $0x14, %xmm3, %xmm9
196
+ shufps $0xbe, %xmm3, %xmm11
197
+
198
+ movaps %xmm12, %xmm2
199
+ movaps %xmm13, %xmm3
200
+ shufps $0x44, %xmm14, %xmm2
201
+ shufps $0xbb, %xmm15, %xmm13
202
+ shufps $0xbb, %xmm14, %xmm12
203
+ shufps $0x44, %xmm15, %xmm3
204
+ movaps %xmm2, %xmm4
205
+ movaps %xmm3, %xmm5
206
+ subps %xmm12, %xmm2
207
+ subps %xmm13, %xmm3
208
+ addps %xmm4, %xmm12
209
+ addps %xmm5, %xmm13
210
+ mulps %xmm1, %xmm2
211
+ mulps %xmm1, %xmm3
212
+ movaps %xmm12, %xmm14
213
+ movaps %xmm13, %xmm15
214
+ shufps $0x14, %xmm2, %xmm12
215
+ shufps $0xbe, %xmm2, %xmm14
216
+ shufps $0x14, %xmm3, %xmm13
217
+ shufps $0xbe, %xmm3, %xmm15
218
+
219
+ shufps $0xaa, %xmm0, %xmm0
220
+ pcmpeqd %xmm1, %xmm1
221
+ pslld $31, %xmm1
222
+ psllq $32, %xmm1
223
+ xorps %xmm1, %xmm0
224
+
225
+ movaps %xmm8, %xmm1
226
+ movaps %xmm10, %xmm2
227
+ unpcklps %xmm9, %xmm8
228
+ unpckhps %xmm9, %xmm1
229
+ unpcklps %xmm11, %xmm10
230
+ unpckhps %xmm11, %xmm2
231
+ movaps %xmm8, %xmm3
232
+ movaps %xmm10, %xmm4
233
+ unpcklps %xmm1, %xmm8
234
+ unpckhps %xmm1, %xmm3
235
+ unpcklps %xmm2, %xmm10
236
+ unpckhps %xmm2, %xmm4
237
+ movaps %xmm8, %xmm1
238
+ movaps %xmm10, %xmm2
239
+ subps %xmm3, %xmm1
240
+ subps %xmm4, %xmm2
241
+ addps %xmm3, %xmm8
242
+ addps %xmm4, %xmm10
243
+ mulps %xmm0, %xmm1
244
+ mulps %xmm0, %xmm2
245
+ movaps %xmm8, %xmm9
246
+ movaps %xmm10, %xmm11
247
+ unpcklps %xmm1, %xmm8
248
+ unpckhps %xmm1, %xmm9
249
+ unpcklps %xmm2, %xmm10
250
+ unpckhps %xmm2, %xmm11
251
+
252
+ movaps %xmm12, %xmm1
253
+ movaps %xmm14, %xmm2
254
+ unpcklps %xmm13, %xmm12
255
+ unpckhps %xmm13, %xmm1
256
+ unpcklps %xmm15, %xmm14
257
+ unpckhps %xmm15, %xmm2
258
+ movaps %xmm12, %xmm3
259
+ movaps %xmm14, %xmm4
260
+ unpcklps %xmm1, %xmm12
261
+ unpckhps %xmm1, %xmm3
262
+ unpcklps %xmm2, %xmm14
263
+ unpckhps %xmm2, %xmm4
264
+ movaps %xmm12, %xmm1
265
+ movaps %xmm14, %xmm2
266
+ subps %xmm3, %xmm1
267
+ subps %xmm4, %xmm2
268
+ addps %xmm3, %xmm12
269
+ addps %xmm4, %xmm14
270
+ mulps %xmm0, %xmm1
271
+ mulps %xmm0, %xmm2
272
+ movaps %xmm12, %xmm13
273
+ movaps %xmm14, %xmm15
274
+ unpcklps %xmm1, %xmm12
275
+ unpckhps %xmm1, %xmm13
276
+ unpcklps %xmm2, %xmm14
277
+ unpckhps %xmm2, %xmm15
278
+
279
+
280
+ xorps %xmm0, %xmm0
281
+ xorps %xmm1, %xmm1
282
+ shufpd $0x2, %xmm8, %xmm0
283
+ shufpd $0x2, %xmm9, %xmm1
284
+ psrlq $32, %xmm0
285
+ psrlq $32, %xmm1
286
+ addps %xmm0, %xmm8
287
+ addps %xmm1, %xmm9
288
+
289
+ xorps %xmm0, %xmm0
290
+ xorps %xmm1, %xmm1
291
+ shufpd $0x2, %xmm10, %xmm0
292
+ shufpd $0x2, %xmm11, %xmm1
293
+ psrlq $32, %xmm0
294
+ psrlq $32, %xmm1
295
+ addps %xmm0, %xmm10
296
+ addps %xmm1, %xmm11
297
+
298
+ xorps %xmm0, %xmm0
299
+ xorps %xmm1, %xmm1
300
+ shufpd $0x2, %xmm12, %xmm0
301
+ shufpd $0x2, %xmm13, %xmm1
302
+ psrlq $32, %xmm0
303
+ psrlq $32, %xmm1
304
+ addps %xmm0, %xmm12
305
+ addps %xmm1, %xmm13
306
+
307
+ xorps %xmm0, %xmm0
308
+ xorps %xmm1, %xmm1
309
+ shufpd $0x2, %xmm14, %xmm0
310
+ shufpd $0x2, %xmm15, %xmm1
311
+ psrlq $32, %xmm0
312
+ psrlq $32, %xmm1
313
+ addps %xmm0, %xmm14
314
+ addps %xmm1, %xmm15
315
+
316
+ pshufd $0x78, %xmm9, %xmm0
317
+ pshufd $0x78, %xmm11, %xmm1
318
+ pshufd $0x78, %xmm13, %xmm2
319
+ pshufd $0x78, %xmm15, %xmm3
320
+ psrldq $4, %xmm0
321
+ psrldq $4, %xmm1
322
+ psrldq $4, %xmm2
323
+ psrldq $4, %xmm3
324
+ addps %xmm0, %xmm9
325
+ addps %xmm1, %xmm11
326
+ addps %xmm2, %xmm13
327
+ addps %xmm3, %xmm15
328
+
329
+ pshufd $0x78, %xmm10, %xmm0
330
+ pshufd $0x78, %xmm14, %xmm1
331
+ psrldq $4, %xmm0
332
+ psrldq $4, %xmm1
333
+ addps %xmm11, %xmm10
334
+ addps %xmm15, %xmm14
335
+ addps %xmm0, %xmm11
336
+ addps %xmm1, %xmm15
337
+
338
+ cvtps2dq %xmm8, %xmm8
339
+ cvtps2dq %xmm9, %xmm9
340
+ cvtps2dq %xmm10, %xmm10
341
+ cvtps2dq %xmm11, %xmm11
342
+ packssdw %xmm10, %xmm8
343
+ packssdw %xmm11, %xmm9
344
+
345
+ movd %xmm8, %eax
346
+ movd %xmm9, %ecx
347
+ movw %ax, 512(ARG0)
348
+ movw %cx, 384(ARG0)
349
+ shrl $16, %eax
350
+ shrl $16, %ecx
351
+ movw %ax, (ARG0)
352
+ movw %ax, (ARG1)
353
+ movw %cx, 128(ARG1)
354
+
355
+ movhlps %xmm8, %xmm0
356
+ movhlps %xmm9, %xmm1
357
+ movd %xmm0, %eax
358
+ movd %xmm1, %ecx
359
+ movw %ax, 448(ARG0)
360
+ movw %cx, 320(ARG0)
361
+ shrl $16, %eax
362
+ shrl $16, %ecx
363
+ movw %ax, 64(ARG1)
364
+ movw %cx, 192(ARG1)
365
+
366
+ pshuflw $0xee, %xmm8, %xmm2
367
+ pshuflw $0xee, %xmm9, %xmm3
368
+ movd %xmm2, %eax
369
+ movd %xmm3, %ecx
370
+ movw %ax, 256(ARG0)
371
+ movw %cx, 128(ARG0)
372
+ shrl $16, %eax
373
+ shrl $16, %ecx
374
+ movw %ax, 256(ARG1)
375
+ movw %cx, 384(ARG1)
376
+
377
+ pshuflw $0xee, %xmm0, %xmm0
378
+ pshuflw $0xee, %xmm1, %xmm1
379
+ movd %xmm0, %eax
380
+ movd %xmm1, %ecx
381
+ movw %ax, 192(ARG0)
382
+ movw %cx, 64(ARG0)
383
+ shrl $16, %eax
384
+ shrl $16, %ecx
385
+ movw %ax, 320(ARG1)
386
+ movw %cx, 448(ARG1)
387
+
388
+ movaps %xmm12, %xmm0
389
+ movaps %xmm13, %xmm1
390
+ movaps %xmm14, %xmm2
391
+ movaps %xmm15, %xmm3
392
+ shufps $0x1e, %xmm0, %xmm0
393
+ pslldq $4, %xmm0
394
+ psrldq $4, %xmm0
395
+ addps %xmm2, %xmm12
396
+ addps %xmm3, %xmm13
397
+ addps %xmm1, %xmm14
398
+ addps %xmm0, %xmm15
399
+
400
+ cvtps2dq %xmm12, %xmm12
401
+ cvtps2dq %xmm13, %xmm13
402
+ cvtps2dq %xmm14, %xmm14
403
+ cvtps2dq %xmm15, %xmm15
404
+ packssdw %xmm13, %xmm12
405
+ packssdw %xmm15, %xmm14
406
+
407
+ movd %xmm12, %eax
408
+ movd %xmm14, %ecx
409
+ movw %ax, 480(ARG0)
410
+ movw %cx, 416(ARG0)
411
+ shrl $16, %eax
412
+ shrl $16, %ecx
413
+ movw %ax, 32(ARG1)
414
+ movw %cx, 96(ARG1)
415
+
416
+ pshuflw $0xee, %xmm12, %xmm0
417
+ pshuflw $0xee, %xmm14, %xmm1
418
+ movd %xmm0, %eax
419
+ movd %xmm1, %ecx
420
+ movw %ax, 224(ARG0)
421
+ movw %cx, 160(ARG0)
422
+ shrl $16, %eax
423
+ shrl $16, %ecx
424
+ movw %ax, 288(ARG1)
425
+ movw %cx, 352(ARG1)
426
+
427
+ movhlps %xmm12, %xmm0
428
+ movhlps %xmm14, %xmm1
429
+ movd %xmm0, %eax
430
+ movd %xmm1, %ecx
431
+ movw %ax, 352(ARG0)
432
+ movw %cx, 288(ARG0)
433
+ shrl $16, %eax
434
+ shrl $16, %ecx
435
+ movw %ax, 160(ARG1)
436
+ movw %cx, 224(ARG1)
437
+
438
+ pshuflw $0xee, %xmm0, %xmm0
439
+ pshuflw $0xee, %xmm1, %xmm1
440
+ movd %xmm0, %eax
441
+ movd %xmm1, %ecx
442
+ movw %ax, 96(ARG0)
443
+ movw %cx, 32(ARG0)
444
+ shrl $16, %eax
445
+ shrl $16, %ecx
446
+ movw %ax, 416(ARG1)
447
+ movw %cx, 480(ARG1)
448
+
449
+ #ifdef _WIN64
450
+ movaps (%rsp), %xmm6
451
+ movaps 16(%rsp), %xmm7
452
+ movaps 32(%rsp), %xmm8
453
+ movaps 48(%rsp), %xmm9
454
+ movaps 64(%rsp), %xmm10
455
+ movaps 80(%rsp), %xmm11
456
+ movaps 96(%rsp), %xmm12
457
+ movaps 112(%rsp), %xmm13
458
+ movaps 128(%rsp), %xmm14
459
+ movaps 144(%rsp), %xmm15
460
+ addq $168, %rsp
461
+ #endif
462
+ ret
463
+
464
+ NONEXEC_STACK