seal 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,270 @@
1
+ The License of mpg123
2
+ =====================
3
+
4
+ by Thomas Orgis <thomas@orgis.org>
5
+
6
+ 1. Story: The Odyssey, The Decision
7
+ -----------------------------------
8
+
9
+ This is the 17th of July in the year 2006, after half a year of preparation and the contributor email campaign running for over 3 months, I'm going to draw a conclusion about the licensing of the mpg123 project.
10
+
11
+
12
+ The license conditions of mpg123 have been subject to dispute and rejection by parts of the free software world in the past...
13
+ We want to have it straight now.
14
+ Michael doesn't have much freetime to maintain the code and bother with requests by companies wanting to use mpglib.
15
+ So, he already decided to place mpglib under LGPL and mpg123 under GPL in the past.
16
+ Now, after I applied for taking over maintainership we decided on placing as much code of the whole project as possible under LGPL to ease future code migration and merging between mpg123 and mpglib.
17
+
18
+ That decision was followed by a lot of work to track down as many contributors to both Michael's development tree and my -thor one as possible to ask them for explicit LGPL support statements.
19
+ I wrote to every Name/eMail address I could track down (including internet search for new addresses), regardless of the question if there indeed is some code left by that person.
20
+ I asked them to utter any problem they may have with LGPL license as well as contacting me if there are _no_ issues.
21
+
22
+ Of course, without having to ask again, supporters of LGPL are the initial author and the two current maintainers:
23
+
24
+ Michael Hipp
25
+ Nicholas J. Humfrey
26
+ Thomas Orgis
27
+
28
+ Also, new stuff was included with explicit LGPL permission from
29
+
30
+ Adrian Bacon
31
+ Romain Dolbeau
32
+ Guillaume Outters
33
+
34
+ Plus there is stuff pending with permission from
35
+
36
+ Zuxy Meng
37
+
38
+ Now for the folks having made suggestions and contributions over the years...
39
+ In the first round starting in March 2006 I wrote the initial mail to anyone I could get. That resulted in some positive responses - examples:
40
+
41
+ "I don't remember what I did, but LGPL is fine by me."
42
+
43
+ "No problem for me."
44
+
45
+ "Any code I may have contributed to the mpg123 project at any time in the
46
+ past are hereby licensed to you under the GNU Lesser General Public"
47
+
48
+ "it's fine with me if mpg123 goes LGPL.
49
+ However, my contribution to mpg123 was very minor, and I'm not even sure if
50
+ any of my code is still in the current version."
51
+
52
+ A good number of eMail addresses is just broken (years have passed...) and another good number of addresses are either totally unknown or not known to be good or bad since no response (not even bounce - thanks, spam!) came back in over 3 months.
53
+
54
+ Some statistics for the first run: 86 total , 15 positive, 37 broken email, 34 unknown
55
+
56
+ Positive:
57
+ Andreas Neuhaus
58
+ Chris Butler
59
+ Colin Watson
60
+ Daniel Kobras
61
+ Daniel O'Connor
62
+ Daniel Skarda
63
+ Erik B. Andersen
64
+ Helge Deller
65
+ Juergen Schoew
66
+ Martin Denn
67
+ Munechika SUMIKAWA
68
+ Oliver Fromme
69
+ Petr Stehlik
70
+ Robert Bihlmeyer
71
+ Samuel Audet
72
+ Shane Wegner
73
+ Stefan Bieschewski
74
+ Steven Schultz
75
+ Tillmann Steinbrecher
76
+ Tomas Oegren
77
+ Tommi Virtanen
78
+
79
+ Then, an investigation of the code revealed a core of people having actually left traces in the code.
80
+ Some more effort was put in tracking them down, with the partial success of having found some new, working email addresses and thus having some more positive responses .
81
+ But also, it showed that the main number of people is not reachable anymore.
82
+
83
+ Creators (of a whole file, driver...): 16 total, 5 positive, 2 broken email, 9 unknown
84
+
85
+ Positive:
86
+ Andreas Neuhaus
87
+ Juergen Schoew
88
+ Oliver Fromme
89
+ Petr Stehlik
90
+ Samuel Audet
91
+
92
+ Modders: 7 total, 1 positive, 2 broken mail, 4 unknown
93
+
94
+ Positive:
95
+ Tomas Oegren
96
+
97
+
98
+ That shows two things:
99
+
100
+ 1. It's impossible to get a response from everyone having contributed in some way.
101
+ 2. Everyone who I reached supports the license change to LGPL
102
+
103
+
104
+ So, for the sake of getting a reasonable step forward, I'm going to close the case.
105
+ There are three categories of code:
106
+
107
+ 1. written by Michael or some other contributor who explicitly supports LGPL
108
+
109
+ Clear case: LGPL
110
+
111
+ 2. contributed years ago without license notice
112
+
113
+ The grounded assumption of can be made that the contributor accepted Michael's conditions, esp. the part about the software being available without cost.
114
+ Furthermore they gave the code into Michael's hands or placed patches in the internet without any claims concerning commercial uses - wich were not covered by the old COPYING file.
115
+ Based on the assumption of acceptance for the mpg123 COPYING file and the included rule of Michael's decision for any further use, this code is to be placed under LGPL by Michael's decision.
116
+
117
+ 3. contributed with notice
118
+
119
+ Some code includes a note about it being GPL. Well, one has to respect that.
120
+
121
+
122
+ That results in the bulk of mpg123 being LGPL and possibly some parts GPL only.
123
+
124
+
125
+ 2. The Inventory
126
+ ----------------
127
+
128
+ I will now examine the files of the mpg123 svn trunk as of 17.07.2006 with their respective legal status:
129
+
130
+ Stuff added by current maintainers, thus being LGPL:
131
+
132
+ scripts/debugdef.pl
133
+ AUTHORS
134
+ autogen.sh
135
+ configure.ac
136
+ Makefile.am
137
+ MakeLegacy.sh
138
+ src/audio_jack.c
139
+ src/audio_libao.c
140
+ src/Makefile.am
141
+ src/audio_alsa09.c
142
+ src/config.h.legacy
143
+ src/debug.h
144
+ src/layer3.h
145
+
146
+ Non-Code files from Michael, maintainers or just trivial content (safely LGPL, then):
147
+
148
+ BENCHMARKING
149
+ BUGS
150
+ CHANGES
151
+ equalize.dat
152
+ INSTALL
153
+ mpg123.1
154
+ COPYING
155
+ TODO
156
+ README
157
+ README.3DNOW
158
+ README.cfa
159
+ README.new
160
+ README.remote
161
+ README.thor
162
+ README.WIN32
163
+ test.pl
164
+ BENCHMARKING.thor
165
+ CONTACT
166
+
167
+ sources under LGPLv2.1:
168
+
169
+ by Michael:
170
+
171
+ audio.c
172
+ audio_dummy.c
173
+ audio.h
174
+ audio_hp.c
175
+ audio_oss.c
176
+ audio_sun.c
177
+ common.c
178
+ common.h
179
+ dct64.c
180
+ dct64_i386.c
181
+ decode_2to1.c
182
+ decode_4to1.c
183
+ decode.c
184
+ decode_i386.c
185
+ decode_ntom.c
186
+ Makefile.legacy
187
+ equalizer.c
188
+ getbits.c
189
+ getbits.h
190
+ huffman.h
191
+ l2tables.h
192
+ layer1.c
193
+ layer2.c
194
+ layer3.c
195
+ mpg123.c
196
+ mpg123.h
197
+ readers.c
198
+ system.c
199
+ tabinit.c
200
+ term.c
201
+ term.h
202
+
203
+ by contributors:
204
+
205
+ audio_aix.c: Juergen Schoew, Tomas Oegren, Niklas Edmundsson
206
+ audio_alib.c: Erwan Ducroquet
207
+ audio_esd.c: Eric B. Mitchell
208
+ audio_macosx.c: Guillaume Outters
209
+ audio_mint.c: Petr Stehlik
210
+ audio_nas.c: Martin Denn
211
+ audio_os2.c: Samuel Audet
212
+ audio_sgi.c: Thomas Woerner
213
+ audio_win32.c: Tony Million
214
+ buffer.c: Oliver Fromme
215
+ buffer.h: Daniel Kobras / Oliver Fromme
216
+ control_generic.c: Andreas Neuhaus, Michael Hipp, Thomas Orgis
217
+ dct36_3dnow.s: Syuuhei Kashiyama
218
+ dct64_3dnow.s: Syuuhei Kashiyama
219
+ dct64_altivec.c: Romain Dolbeau
220
+ dct64_i486.c: Fabrice Bellard
221
+ decode_3dnow.s: Syuuhei Kashiyama
222
+ decode_i486.c: Fabrice Bellard
223
+ decode_i586_dither.s: Stefan Bieschewski, Adrian Bacon
224
+ decode_i586.s: Stefan Bieschewski
225
+ decode_MMX.s: higway
226
+ dct64_MMX.s: higway
227
+ tabinit_MMX.s: higway
228
+ equalizer_3dnow.s: KIMURA Takuhiro
229
+ genre.h: Shane Wegner
230
+ getcpuflags.s: KIMURA Takuhiro
231
+ getlopt.c: Oliver Fromme
232
+ getlopt.h: Oliver Fromme
233
+ httpget.c: Oliver Fromme
234
+ wav.c: Samuel Audet
235
+ xfermem.c: Oliver Fromme
236
+ xfermem.h: Oliver Fromme
237
+ Makefile.win32: Michael Hipp / Tony Million
238
+
239
+ GPLv2
240
+
241
+ audio_alsa.c: by Anders Semb Hermansen, Jaroslav Kysela, Ville Syrjala
242
+
243
+
244
+ To be removed from distribution and thus not licensed in any special way:
245
+
246
+ precompiled/
247
+ tools/
248
+
249
+ The mpglib source is not part of the core mpg123 distribution anymore - it's written by Michael, it's LGPL, it shall become a real library with own distribution and be married to mpg123 again.
250
+
251
+
252
+ 3. Conclusion
253
+ -------------
254
+
255
+ The decoder core Michael's work and under LGPL without question.
256
+ Oliver Fromme is more of a co-author than "just" a project contributor, but he explicitly agreed to LGPL anyway.
257
+ So, the core functionality is really safe without doubt.
258
+
259
+ Contributors added mainly output drivers (perhaps coming from some freely available reference implementation) and CPU optimizations.
260
+ Having explicit permission from a good deal of major contributors, the LGPL is quite comfortable here, too.
261
+ I won't hide that there are explicit statements missing for MMX and 3DNow! optimizations (and the i486 opt, for that matter) due to unreachable authors.
262
+ But I feel safe to make it LGPL there, too, because of the argument of them having given the code to Michael to incorporate it into mpg123 - without any own terms, implying that they agree to Michael's terms.
263
+
264
+ There is one file left that carries an explicit GPL (_no_ LGPL) statement: the old alsa output. This file won't work on current Linux systems, anyway.
265
+ Alsa is available through libao. There will probably be a new alsa output.
266
+ So, even that one GPL exception may vanish in future, but I'll keep it for now as there may be someone who still has an alsa installation for that it works.
267
+
268
+ For now that means mpg123 is LGPL with the exception of one file that is GPL only.
269
+
270
+ End.
@@ -0,0 +1,13 @@
1
+ There are authors who write code and there are people who point us to what code to write, show us our errors and generally are trying hard to compensate the time the developers spent coding and not actually using the software.
2
+ These people are very valuable, indeed - let's thank our
3
+
4
+ Testers (alphapetical):
5
+
6
+ - Gabor Z. Papp
7
+ - "Gates Fan"
8
+ - JonY
9
+ - Serge Simon and the R.O.M. 106.5 FM Team (http://www.rom.lu/)
10
+ who motivated the --loop and --timeout modes and furthermore supported the maintainer with a donation on sf.net and a real bottle of wine from Luxembourg!
11
+ - Willy Tarreau
12
+
13
+ Heck, let's thank all of you who contributed bug reports, suggestions... those who took mpg123 source and compiled it on uncommon platforms.
@@ -0,0 +1,63 @@
1
+ We badly need:
2
+ - header reorganization (lots of stuff don't belong to mpg123.h)
3
+ - integer type safety - STOP using ints where size_t or at least long would be appropriate (expecially stream readers)
4
+ - sprintf -> snprintf (maybe with switch to support ancient libc; or replacement by us)
5
+ - rewrite httpget.c; that thing has been a can of bugs for years and I understand why when I look at it (way too many cooks)
6
+ - really parse ID3V2 tags instead of skipping; done for RVA values... using the string info (just?) needs some Unicode/Locale handling
7
+ - check support for fixed point arithmentic; generic_nofpu seems wo work generally, but resampling does not sound nice
8
+
9
+ From Nicholas:
10
+ - Seperate out MPEG Audio decoder (only) into seperate library
11
+ - Allow choice of audio output at runtime, rather than compile time
12
+ - Choose processor optimization at runtime, rather than compile time?
13
+
14
+ From Michael (some time after/around pre-0.59s):
15
+
16
+ - add CRC check.
17
+ - add 'free format stream' support.
18
+ - optimize layer2.c:
19
+ step_two: fraction as pointer ..
20
+ process first channel 0 than channel 1
21
+ copy channel 0 to channel 1 for: i >= jsbound
22
+ - better frame reader .. especially for layer 3 - DONE by a good deal by Thomas
23
+ - MPEG system stream decoder
24
+ - check again layer1 !! (Layer-1 support not heavily tested ..)
25
+ Problems with Layer1 fl7 reference stream
26
+ - Write a special (optimized) 'single channel' decode.
27
+ - optimized dct64 for down sampling modes
28
+ - native audio support for AIX and DEC
29
+ - update manpage
30
+ - optimizations for downsampling modes on layer2 and layer1
31
+
32
+ MORE TODO: (partially done)
33
+ ---------------------------
34
+
35
+ A few notes on how mpg123 tries to select a 'good'
36
+ audio encoding and frequency. (not full implemented yet!!)
37
+
38
+ - mpg123 tries to set the settings you specify on the command line
39
+ in the order of its appearence (exclusiv .. no fallback then)
40
+ (-r <rate>, --mono, --stereo, --8bit, etc )
41
+
42
+ - after this, mpg123 tries to set
43
+ 1. the number of channels (or fallback to mono if stereo isn't possible)
44
+ 2. the audioformat to 16 bit (or fallback to 8bit)
45
+ 3. the "best" frequency: (in this order)
46
+ - the exact stream frequency or fallback to
47
+ - 2:1 frequency or fallback to
48
+ - 4:1 frequency or try the
49
+ - nearest frequency lower than the frequency of your stream
50
+ mpg123 automagically converts the rate.
51
+
52
+ So, if you think (or even know), that your hardware supports a higher
53
+ frequency only with eg. mono,8bit you must force mpg123 to play mono
54
+ and 8bit. ("--8bit -m") etc....
55
+
56
+ If you wanna a constant format eg to output the data to stdout you
57
+ must explicit force it with eg: '-r 44100 --stereo'
58
+ Else the format will be the format of the mpeg stream.
59
+
60
+
61
+
62
+
63
+
@@ -0,0 +1,21 @@
1
+ /** \defgroup mpg123_examples example programs using libmpg123
2
+ @{ */
3
+
4
+ /** \file mpg123_to_wav.c A simple MPEG audio to WAV converter using libmpg123 (read) and libsndfile (write).
5
+ ...an excersize on two simple APIs. */
6
+
7
+ /** \file mpglib.c Example program mimicking the old mpglib test program.
8
+ It takes an MPEG bitstream from standard input and writes raw audio to standard output.
9
+ This is an use case of the mpg123_decode() in and out function in the feeder mode, quite close to classic mpglib usage and thus a template to convert from that to libmpg123.
10
+ */
11
+
12
+ /** \file scan.c Example program that examines the exact length of an MPEG file.
13
+ It opens a list of files and does mpg123_scan() on each and reporting the mpg123_length() before and after that. */
14
+
15
+ /** \file id3dump.c Parse ID3 info and print to standard output. */
16
+
17
+ /** \file extract_frames.c Parse stream and extract only the valid MPEG frames to standard output. */
18
+
19
+ /** \file feedseek.c Fuzzy feeder seeking. */
20
+
21
+ /* @} */
@@ -0,0 +1,41 @@
1
+
2
+ # This file describes the settings to be used by the documentation system
3
+ # doxygen (www.doxygen.org) for a project
4
+ #
5
+
6
+ PROJECT_NAME = "libmpg123"
7
+ OUTPUT_DIRECTORY = .
8
+ CREATE_SUBDIRS = NO
9
+ OUTPUT_LANGUAGE = English
10
+ FULL_PATH_NAMES = NO
11
+
12
+ INPUT = doxy_examples.c examples/mpg123_to_wav.c examples/mpglib.c examples/scan.c examples/feedseek.c examples/id3dump.c ../src/libmpg123/mpg123.h
13
+ OPTIMIZE_OUTPUT_FOR_C = YES
14
+ EXTRACT_ALL = NO
15
+ HIDE_UNDOC_MEMBERS = NO
16
+ QUIET = YES
17
+ WARNINGS = YES
18
+ SOURCE_BROWSER = YES
19
+
20
+ GENERATE_HTML = YES
21
+ HTML_OUTPUT = html
22
+ DISABLE_INDEX = YES
23
+ SORT_MEMBER_DOCS = NO
24
+ SORT_BRIEF_DOCS = NO
25
+ ENUM_VALUES_PER_LINE = 2
26
+
27
+
28
+ ENABLE_PREPROCESSING = YES
29
+ MACRO_EXPANSION = YES
30
+ EXPAND_ONLY_PREDEF = YES
31
+ PREDEFINED = EXPORT=
32
+
33
+ GENERATE_HTML = YES
34
+ GENERATE_LATEX = NO
35
+ GENERATE_RTF = NO
36
+ GENERATE_MAN = YES
37
+ MAN_LINKS = YES
38
+ GENERATE_XML = NO
39
+
40
+ HTML_HEADER = doxyhead.xhtml
41
+ HTML_FILE_EXTENSION = .shtml
@@ -0,0 +1,12 @@
1
+ <!--#include virtual="../header.html" -->
2
+ <title>$title</title>
3
+ <link href="/doxygen.css" rel="stylesheet" type="text/css" />
4
+ </head>
5
+ <body>
6
+ <!--#include virtual="../linkbar.html" -->
7
+ <div style="padding:1em;">
8
+ <strong>Note:</strong>
9
+ This API doc is automatically generated from the current development version that you can get via Subversion or as a daily snapshot from <a href="http://mpg123.org/snapshot">http://mpg123.org/snapshot</a>.
10
+ There may be differences (additions) compared to the latest stable release. See <a href="http://mpg123.org/cgi-bin/viewvc.cgi/trunk/NEWS.libmpg123?view=markup">NEWS.libmpg123</a> and the overall <a href="http://mpg123.org/cgi-bin/viewvc.cgi/trunk/NEWS?view=markup">NEWS</a> file on libmpg123 versions and important changes between them.<br />
11
+ Let me emphasize that the policy for libmpg123 is to always stay backwards compatible -- only <em>additions</em> are planned (and it's not yet planned to change the plans;-).
12
+ </div>
@@ -0,0 +1,41 @@
1
+ /*
2
+ dump_seekindex: Scan a mpeg file and dump its seek index.
3
+
4
+ copyright 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 Patrick Dehne
7
+ */
8
+
9
+ #include <mpg123.h>
10
+ #include <stdio.h>
11
+
12
+ int main(int argc, char **argv)
13
+ {
14
+ mpg123_handle *m;
15
+ off_t* offsets;
16
+ off_t step;
17
+ size_t fill, i;
18
+
19
+ if(argc != 2)
20
+ {
21
+ fprintf(stderr, "\nI will dump the frame index of an MPEG audio file.\n");
22
+ fprintf(stderr, "\nUsage: %s <mpeg audio file>\n\n", argv[0]);
23
+ return -1;
24
+ }
25
+ mpg123_init();
26
+ m = mpg123_new(NULL, NULL);
27
+ mpg123_param(m, MPG123_RESYNC_LIMIT, -1, 0);
28
+ mpg123_param(m, MPG123_INDEX_SIZE, -1, 0);
29
+ mpg123_open(m, argv[1]);
30
+ mpg123_scan(m);
31
+
32
+ mpg123_index(m, &offsets, &step, &fill);
33
+ for(i=0; i<fill;i++) {
34
+ printf("Frame number %d: file offset %d\n", i * step, offsets[i]);
35
+ }
36
+
37
+ mpg123_close(m);
38
+ mpg123_delete(m);
39
+ mpg123_exit();
40
+ return 0;
41
+ }