@scrypted/libav 1.0.166 → 1.0.168

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 (720) hide show
  1. package/opus/.gitattributes +10 -0
  2. package/opus/.gitlab-ci.yml +122 -0
  3. package/opus/AUTHORS +6 -0
  4. package/opus/CMakeLists.txt +755 -0
  5. package/opus/COPYING +44 -0
  6. package/opus/ChangeLog +0 -0
  7. package/opus/LICENSE_PLEASE_READ.txt +22 -0
  8. package/opus/Makefile.am +497 -0
  9. package/opus/Makefile.mips +169 -0
  10. package/opus/Makefile.unix +167 -0
  11. package/opus/NEWS +0 -0
  12. package/opus/README +189 -0
  13. package/opus/README.draft +54 -0
  14. package/opus/autogen.bat +13 -0
  15. package/opus/autogen.sh +16 -0
  16. package/opus/celt/_kiss_fft_guts.h +188 -0
  17. package/opus/celt/arch.h +390 -0
  18. package/opus/celt/arm/arm2gnu.pl +353 -0
  19. package/opus/celt/arm/arm_celt_map.c +171 -0
  20. package/opus/celt/arm/armcpu.c +291 -0
  21. package/opus/celt/arm/armcpu.h +90 -0
  22. package/opus/celt/arm/armopts.s.in +37 -0
  23. package/opus/celt/arm/celt_fft_ne10.c +173 -0
  24. package/opus/celt/arm/celt_mdct_ne10.c +258 -0
  25. package/opus/celt/arm/celt_neon_intr.c +272 -0
  26. package/opus/celt/arm/celt_pitch_xcorr_arm.s +551 -0
  27. package/opus/celt/arm/fft_arm.h +71 -0
  28. package/opus/celt/arm/fixed_arm64.h +35 -0
  29. package/opus/celt/arm/fixed_armv4.h +80 -0
  30. package/opus/celt/arm/fixed_armv5e.h +151 -0
  31. package/opus/celt/arm/kiss_fft_armv4.h +121 -0
  32. package/opus/celt/arm/kiss_fft_armv5e.h +118 -0
  33. package/opus/celt/arm/mdct_arm.h +59 -0
  34. package/opus/celt/arm/meson.build +12 -0
  35. package/opus/celt/arm/pitch_arm.h +160 -0
  36. package/opus/celt/arm/pitch_neon_intr.c +288 -0
  37. package/opus/celt/bands.c +1686 -0
  38. package/opus/celt/bands.h +123 -0
  39. package/opus/celt/celt.c +317 -0
  40. package/opus/celt/celt.h +255 -0
  41. package/opus/celt/celt_decoder.c +1616 -0
  42. package/opus/celt/celt_encoder.c +2854 -0
  43. package/opus/celt/celt_lpc.c +364 -0
  44. package/opus/celt/celt_lpc.h +66 -0
  45. package/opus/celt/cpu_support.h +72 -0
  46. package/opus/celt/cwrs.c +715 -0
  47. package/opus/celt/cwrs.h +48 -0
  48. package/opus/celt/dump_modes/dump_modes.c +400 -0
  49. package/opus/celt/dump_modes/dump_modes_arch.h +45 -0
  50. package/opus/celt/dump_modes/dump_modes_arm_ne10.c +152 -0
  51. package/opus/celt/ecintrin.h +91 -0
  52. package/opus/celt/entcode.c +153 -0
  53. package/opus/celt/entcode.h +152 -0
  54. package/opus/celt/entdec.c +266 -0
  55. package/opus/celt/entdec.h +110 -0
  56. package/opus/celt/entenc.c +305 -0
  57. package/opus/celt/entenc.h +119 -0
  58. package/opus/celt/fixed_c5x.h +79 -0
  59. package/opus/celt/fixed_c6x.h +70 -0
  60. package/opus/celt/fixed_debug.h +839 -0
  61. package/opus/celt/fixed_generic.h +201 -0
  62. package/opus/celt/float_cast.h +152 -0
  63. package/opus/celt/kiss_fft.c +648 -0
  64. package/opus/celt/kiss_fft.h +217 -0
  65. package/opus/celt/laplace.c +235 -0
  66. package/opus/celt/laplace.h +57 -0
  67. package/opus/celt/mathops.c +217 -0
  68. package/opus/celt/mathops.h +479 -0
  69. package/opus/celt/mdct.c +372 -0
  70. package/opus/celt/mdct.h +115 -0
  71. package/opus/celt/meson.build +64 -0
  72. package/opus/celt/mfrngcod.h +48 -0
  73. package/opus/celt/mips/celt_mipsr1.h +152 -0
  74. package/opus/celt/mips/fixed_generic_mipsr1.h +126 -0
  75. package/opus/celt/mips/kiss_fft_mipsr1.h +167 -0
  76. package/opus/celt/mips/mdct_mipsr1.h +288 -0
  77. package/opus/celt/mips/pitch_mipsr1.h +161 -0
  78. package/opus/celt/mips/vq_mipsr1.h +116 -0
  79. package/opus/celt/modes.c +450 -0
  80. package/opus/celt/modes.h +75 -0
  81. package/opus/celt/opus_custom_demo.c +451 -0
  82. package/opus/celt/os_support.h +99 -0
  83. package/opus/celt/pitch.c +555 -0
  84. package/opus/celt/pitch.h +203 -0
  85. package/opus/celt/quant_bands.c +562 -0
  86. package/opus/celt/quant_bands.h +66 -0
  87. package/opus/celt/rate.c +646 -0
  88. package/opus/celt/rate.h +101 -0
  89. package/opus/celt/stack_alloc.h +185 -0
  90. package/opus/celt/static_modes_fixed.h +1541 -0
  91. package/opus/celt/static_modes_fixed_arm_ne10.h +388 -0
  92. package/opus/celt/static_modes_float.h +888 -0
  93. package/opus/celt/static_modes_float_arm_ne10.h +404 -0
  94. package/opus/celt/tests/meson.build +19 -0
  95. package/opus/celt/tests/test_unit_cwrs32.c +162 -0
  96. package/opus/celt/tests/test_unit_dft.c +181 -0
  97. package/opus/celt/tests/test_unit_entropy.c +383 -0
  98. package/opus/celt/tests/test_unit_laplace.c +94 -0
  99. package/opus/celt/tests/test_unit_mathops.c +369 -0
  100. package/opus/celt/tests/test_unit_mdct.c +233 -0
  101. package/opus/celt/tests/test_unit_rotation.c +87 -0
  102. package/opus/celt/tests/test_unit_types.c +50 -0
  103. package/opus/celt/vq.c +442 -0
  104. package/opus/celt/vq.h +79 -0
  105. package/opus/celt/x86/celt_lpc_sse.h +67 -0
  106. package/opus/celt/x86/celt_lpc_sse4_1.c +96 -0
  107. package/opus/celt/x86/pitch_avx.c +101 -0
  108. package/opus/celt/x86/pitch_sse.c +185 -0
  109. package/opus/celt/x86/pitch_sse.h +216 -0
  110. package/opus/celt/x86/pitch_sse2.c +95 -0
  111. package/opus/celt/x86/pitch_sse4_1.c +240 -0
  112. package/opus/celt/x86/vq_sse.h +52 -0
  113. package/opus/celt/x86/vq_sse2.c +217 -0
  114. package/opus/celt/x86/x86_arch_macros.h +47 -0
  115. package/opus/celt/x86/x86_celt_map.c +187 -0
  116. package/opus/celt/x86/x86cpu.c +184 -0
  117. package/opus/celt/x86/x86cpu.h +112 -0
  118. package/opus/celt_headers.mk +54 -0
  119. package/opus/celt_sources.mk +55 -0
  120. package/opus/cmake/CFeatureCheck.cmake +39 -0
  121. package/opus/cmake/OpusBuildtype.cmake +27 -0
  122. package/opus/cmake/OpusConfig.cmake +118 -0
  123. package/opus/cmake/OpusConfig.cmake.in +20 -0
  124. package/opus/cmake/OpusFunctions.cmake +231 -0
  125. package/opus/cmake/OpusPackageVersion.cmake +70 -0
  126. package/opus/cmake/OpusSources.cmake +71 -0
  127. package/opus/cmake/README.md +132 -0
  128. package/opus/cmake/RunTest.cmake +61 -0
  129. package/opus/cmake/config.h.cmake.in +1 -0
  130. package/opus/cmake/cpu_info_by_asm.c +31 -0
  131. package/opus/cmake/cpu_info_by_c.c +9 -0
  132. package/opus/cmake/vla.c +7 -0
  133. package/opus/configure.ac +1091 -0
  134. package/opus/dnn/LPCNet.yml +24 -0
  135. package/opus/dnn/README +1 -0
  136. package/opus/dnn/README.md +126 -0
  137. package/opus/dnn/adaconvtest.c +449 -0
  138. package/opus/dnn/arm/arm_dnn_map.c +88 -0
  139. package/opus/dnn/arm/dnn_arm.h +104 -0
  140. package/opus/dnn/arm/nnet_dotprod.c +38 -0
  141. package/opus/dnn/arm/nnet_neon.c +38 -0
  142. package/opus/dnn/burg.c +246 -0
  143. package/opus/dnn/burg.h +41 -0
  144. package/opus/dnn/common.h +56 -0
  145. package/opus/dnn/datasets.txt +163 -0
  146. package/opus/dnn/download_model.bat +9 -0
  147. package/opus/dnn/download_model.sh +30 -0
  148. package/opus/dnn/dred_coding.c +44 -0
  149. package/opus/dnn/dred_coding.h +36 -0
  150. package/opus/dnn/dred_config.h +54 -0
  151. package/opus/dnn/dred_decoder.c +129 -0
  152. package/opus/dnn/dred_decoder.h +49 -0
  153. package/opus/dnn/dred_encoder.c +363 -0
  154. package/opus/dnn/dred_encoder.h +71 -0
  155. package/opus/dnn/dred_rdovae.h +42 -0
  156. package/opus/dnn/dred_rdovae_dec.c +139 -0
  157. package/opus/dnn/dred_rdovae_dec.h +53 -0
  158. package/opus/dnn/dred_rdovae_enc.c +110 -0
  159. package/opus/dnn/dred_rdovae_enc.h +52 -0
  160. package/opus/dnn/dump_data.c +238 -0
  161. package/opus/dnn/dump_lpcnet_tables.c +104 -0
  162. package/opus/dnn/fargan.c +225 -0
  163. package/opus/dnn/fargan.h +68 -0
  164. package/opus/dnn/fargan_demo.c +217 -0
  165. package/opus/dnn/freq.c +328 -0
  166. package/opus/dnn/freq.h +61 -0
  167. package/opus/dnn/fwgan.c +322 -0
  168. package/opus/dnn/fwgan.h +83 -0
  169. package/opus/dnn/kiss99.c +81 -0
  170. package/opus/dnn/kiss99.h +46 -0
  171. package/opus/dnn/lossgen.c +192 -0
  172. package/opus/dnn/lossgen.h +55 -0
  173. package/opus/dnn/lossgen_demo.c +22 -0
  174. package/opus/dnn/lpcnet.c +283 -0
  175. package/opus/dnn/lpcnet.h +183 -0
  176. package/opus/dnn/lpcnet_enc.c +230 -0
  177. package/opus/dnn/lpcnet_plc.c +211 -0
  178. package/opus/dnn/lpcnet_private.h +90 -0
  179. package/opus/dnn/lpcnet_tables.c +307 -0
  180. package/opus/dnn/meson.build +64 -0
  181. package/opus/dnn/nndsp.c +416 -0
  182. package/opus/dnn/nndsp.h +143 -0
  183. package/opus/dnn/nnet.c +149 -0
  184. package/opus/dnn/nnet.h +163 -0
  185. package/opus/dnn/nnet_arch.h +247 -0
  186. package/opus/dnn/nnet_default.c +35 -0
  187. package/opus/dnn/osce.c +1419 -0
  188. package/opus/dnn/osce.h +84 -0
  189. package/opus/dnn/osce_config.h +60 -0
  190. package/opus/dnn/osce_features.c +454 -0
  191. package/opus/dnn/osce_features.h +50 -0
  192. package/opus/dnn/osce_structs.h +125 -0
  193. package/opus/dnn/parse_lpcnet_weights.c +238 -0
  194. package/opus/dnn/pitchdnn.c +79 -0
  195. package/opus/dnn/pitchdnn.h +34 -0
  196. package/opus/dnn/tansig_table.h +50 -0
  197. package/opus/dnn/test_vec.c +128 -0
  198. package/opus/dnn/torch/dnntools/dnntools/__init__.py +2 -0
  199. package/opus/dnn/torch/dnntools/dnntools/quantization/__init__.py +1 -0
  200. package/opus/dnn/torch/dnntools/dnntools/quantization/softquant.py +113 -0
  201. package/opus/dnn/torch/dnntools/dnntools/relegance/__init__.py +2 -0
  202. package/opus/dnn/torch/dnntools/dnntools/relegance/meta_critic.py +85 -0
  203. package/opus/dnn/torch/dnntools/dnntools/relegance/relegance.py +449 -0
  204. package/opus/dnn/torch/dnntools/dnntools/sparsification/__init__.py +6 -0
  205. package/opus/dnn/torch/dnntools/dnntools/sparsification/base_sparsifier.py +58 -0
  206. package/opus/dnn/torch/dnntools/dnntools/sparsification/common.py +123 -0
  207. package/opus/dnn/torch/dnntools/dnntools/sparsification/conv1d_sparsifier.py +133 -0
  208. package/opus/dnn/torch/dnntools/dnntools/sparsification/conv_transpose1d_sparsifier.py +134 -0
  209. package/opus/dnn/torch/dnntools/dnntools/sparsification/gru_sparsifier.py +178 -0
  210. package/opus/dnn/torch/dnntools/dnntools/sparsification/linear_sparsifier.py +128 -0
  211. package/opus/dnn/torch/dnntools/dnntools/sparsification/utils.py +64 -0
  212. package/opus/dnn/torch/dnntools/requirements.txt +1 -0
  213. package/opus/dnn/torch/dnntools/setup.py +48 -0
  214. package/opus/dnn/torch/fargan/README.md +54 -0
  215. package/opus/dnn/torch/fargan/adv_train_fargan.py +277 -0
  216. package/opus/dnn/torch/fargan/dataset.py +61 -0
  217. package/opus/dnn/torch/fargan/dump_fargan_weights.py +112 -0
  218. package/opus/dnn/torch/fargan/fargan.py +322 -0
  219. package/opus/dnn/torch/fargan/filters.py +46 -0
  220. package/opus/dnn/torch/fargan/rc.py +29 -0
  221. package/opus/dnn/torch/fargan/stft_loss.py +186 -0
  222. package/opus/dnn/torch/fargan/test_fargan.py +128 -0
  223. package/opus/dnn/torch/fargan/train_fargan.py +168 -0
  224. package/opus/dnn/torch/fwgan/dump_model_weights.py +88 -0
  225. package/opus/dnn/torch/fwgan/inference.py +141 -0
  226. package/opus/dnn/torch/fwgan/models/__init__.py +7 -0
  227. package/opus/dnn/torch/fwgan/models/fwgan400.py +308 -0
  228. package/opus/dnn/torch/fwgan/models/fwgan500.py +260 -0
  229. package/opus/dnn/torch/lossgen/README.md +27 -0
  230. package/opus/dnn/torch/lossgen/export_lossgen.py +101 -0
  231. package/opus/dnn/torch/lossgen/lossgen.py +29 -0
  232. package/opus/dnn/torch/lossgen/process_data.sh +17 -0
  233. package/opus/dnn/torch/lossgen/test_lossgen.py +42 -0
  234. package/opus/dnn/torch/lossgen/train_lossgen.py +99 -0
  235. package/opus/dnn/torch/lpcnet/README.md +27 -0
  236. package/opus/dnn/torch/lpcnet/add_dataset_config.py +77 -0
  237. package/opus/dnn/torch/lpcnet/data/__init__.py +1 -0
  238. package/opus/dnn/torch/lpcnet/data/lpcnet_dataset.py +227 -0
  239. package/opus/dnn/torch/lpcnet/engine/lpcnet_engine.py +141 -0
  240. package/opus/dnn/torch/lpcnet/make_default_setup.py +56 -0
  241. package/opus/dnn/torch/lpcnet/make_test_config.py +78 -0
  242. package/opus/dnn/torch/lpcnet/models/__init__.py +8 -0
  243. package/opus/dnn/torch/lpcnet/models/lpcnet.py +303 -0
  244. package/opus/dnn/torch/lpcnet/models/multi_rate_lpcnet.py +437 -0
  245. package/opus/dnn/torch/lpcnet/print_lpcnet_complexity.py +64 -0
  246. package/opus/dnn/torch/lpcnet/scripts/collect_multi_run_results.py +190 -0
  247. package/opus/dnn/torch/lpcnet/scripts/loop_run.sh +52 -0
  248. package/opus/dnn/torch/lpcnet/scripts/make_animation.py +67 -0
  249. package/opus/dnn/torch/lpcnet/scripts/modify_dataset_target.py +17 -0
  250. package/opus/dnn/torch/lpcnet/scripts/multi_run.sh +17 -0
  251. package/opus/dnn/torch/lpcnet/scripts/run_inference_test.sh +22 -0
  252. package/opus/dnn/torch/lpcnet/scripts/update_checkpoints.py +54 -0
  253. package/opus/dnn/torch/lpcnet/scripts/update_output_folder.sh +22 -0
  254. package/opus/dnn/torch/lpcnet/scripts/update_setups.py +57 -0
  255. package/opus/dnn/torch/lpcnet/test_lpcnet.py +89 -0
  256. package/opus/dnn/torch/lpcnet/train_lpcnet.py +272 -0
  257. package/opus/dnn/torch/lpcnet/utils/__init__.py +4 -0
  258. package/opus/dnn/torch/lpcnet/utils/data.py +141 -0
  259. package/opus/dnn/torch/lpcnet/utils/endoscopy.py +234 -0
  260. package/opus/dnn/torch/lpcnet/utils/layers/__init__.py +3 -0
  261. package/opus/dnn/torch/lpcnet/utils/layers/dual_fc.py +44 -0
  262. package/opus/dnn/torch/lpcnet/utils/layers/pcm_embeddings.py +71 -0
  263. package/opus/dnn/torch/lpcnet/utils/layers/subconditioner.py +497 -0
  264. package/opus/dnn/torch/lpcnet/utils/misc.py +65 -0
  265. package/opus/dnn/torch/lpcnet/utils/pcm.py +35 -0
  266. package/opus/dnn/torch/lpcnet/utils/sample.py +44 -0
  267. package/opus/dnn/torch/lpcnet/utils/sparsification/__init__.py +2 -0
  268. package/opus/dnn/torch/lpcnet/utils/sparsification/common.py +121 -0
  269. package/opus/dnn/torch/lpcnet/utils/sparsification/gru_sparsifier.py +187 -0
  270. package/opus/dnn/torch/lpcnet/utils/templates.py +157 -0
  271. package/opus/dnn/torch/lpcnet/utils/ulaw.py +58 -0
  272. package/opus/dnn/torch/lpcnet/utils/wav.py +43 -0
  273. package/opus/dnn/torch/neural-pitch/README.md +18 -0
  274. package/opus/dnn/torch/neural-pitch/data_augmentation.py +149 -0
  275. package/opus/dnn/torch/neural-pitch/download_demand.sh +43 -0
  276. package/opus/dnn/torch/neural-pitch/evaluation.py +349 -0
  277. package/opus/dnn/torch/neural-pitch/experiments.py +38 -0
  278. package/opus/dnn/torch/neural-pitch/export_neuralpitch_weights.py +109 -0
  279. package/opus/dnn/torch/neural-pitch/models.py +178 -0
  280. package/opus/dnn/torch/neural-pitch/neural_pitch_update.py +179 -0
  281. package/opus/dnn/torch/neural-pitch/ptdb_process.sh +34 -0
  282. package/opus/dnn/torch/neural-pitch/run_crepe.py +72 -0
  283. package/opus/dnn/torch/neural-pitch/training.py +162 -0
  284. package/opus/dnn/torch/neural-pitch/utils.py +59 -0
  285. package/opus/dnn/torch/osce/README.md +66 -0
  286. package/opus/dnn/torch/osce/adv_train_model.py +462 -0
  287. package/opus/dnn/torch/osce/adv_train_vocoder.py +451 -0
  288. package/opus/dnn/torch/osce/create_testvectors.py +165 -0
  289. package/opus/dnn/torch/osce/data/__init__.py +2 -0
  290. package/opus/dnn/torch/osce/data/lpcnet_vocoding_dataset.py +225 -0
  291. package/opus/dnn/torch/osce/data/silk_conversion_set.py +132 -0
  292. package/opus/dnn/torch/osce/data/silk_enhancement_set.py +140 -0
  293. package/opus/dnn/torch/osce/engine/engine.py +103 -0
  294. package/opus/dnn/torch/osce/engine/vocoder_engine.py +101 -0
  295. package/opus/dnn/torch/osce/export_model_weights.py +174 -0
  296. package/opus/dnn/torch/osce/losses/stft_loss.py +277 -0
  297. package/opus/dnn/torch/osce/losses/td_lowpass.py +34 -0
  298. package/opus/dnn/torch/osce/make_default_setup.py +93 -0
  299. package/opus/dnn/torch/osce/models/__init__.py +42 -0
  300. package/opus/dnn/torch/osce/models/fd_discriminator.py +974 -0
  301. package/opus/dnn/torch/osce/models/lace.py +190 -0
  302. package/opus/dnn/torch/osce/models/lavoce.py +274 -0
  303. package/opus/dnn/torch/osce/models/lavoce_400.py +254 -0
  304. package/opus/dnn/torch/osce/models/lpcnet_feature_net.py +91 -0
  305. package/opus/dnn/torch/osce/models/nns_base.py +69 -0
  306. package/opus/dnn/torch/osce/models/no_lace.py +218 -0
  307. package/opus/dnn/torch/osce/models/scale_embedding.py +68 -0
  308. package/opus/dnn/torch/osce/models/shape_up_48.py +179 -0
  309. package/opus/dnn/torch/osce/models/silk_feature_net.py +86 -0
  310. package/opus/dnn/torch/osce/models/silk_feature_net_pl.py +127 -0
  311. package/opus/dnn/torch/osce/requirements.txt +9 -0
  312. package/opus/dnn/torch/osce/resources/training_files.txt +107716 -0
  313. package/opus/dnn/torch/osce/resources/validation_files.txt +26929 -0
  314. package/opus/dnn/torch/osce/scripts/concatenator.py +85 -0
  315. package/opus/dnn/torch/osce/silk_16_to_48.py +28 -0
  316. package/opus/dnn/torch/osce/stndrd/evaluation/commonvoice_clip_selection.py +123 -0
  317. package/opus/dnn/torch/osce/stndrd/evaluation/create_input_data.sh +25 -0
  318. package/opus/dnn/torch/osce/stndrd/evaluation/env.rc +7 -0
  319. package/opus/dnn/torch/osce/stndrd/evaluation/evaluate.py +113 -0
  320. package/opus/dnn/torch/osce/stndrd/evaluation/lace_loss_metric.py +330 -0
  321. package/opus/dnn/torch/osce/stndrd/evaluation/make_boxplots.py +116 -0
  322. package/opus/dnn/torch/osce/stndrd/evaluation/make_boxplots_moctest.py +109 -0
  323. package/opus/dnn/torch/osce/stndrd/evaluation/make_tables.py +124 -0
  324. package/opus/dnn/torch/osce/stndrd/evaluation/make_tables_moctest.py +121 -0
  325. package/opus/dnn/torch/osce/stndrd/evaluation/moc.py +182 -0
  326. package/opus/dnn/torch/osce/stndrd/evaluation/moc2.py +190 -0
  327. package/opus/dnn/torch/osce/stndrd/evaluation/process_dataset.sh +98 -0
  328. package/opus/dnn/torch/osce/stndrd/evaluation/run_nomad.py +138 -0
  329. package/opus/dnn/torch/osce/stndrd/evaluation/run_osce_test.py +196 -0
  330. package/opus/dnn/torch/osce/stndrd/presentation/endoscopy.py +205 -0
  331. package/opus/dnn/torch/osce/stndrd/presentation/lace_demo.ipynb +313 -0
  332. package/opus/dnn/torch/osce/stndrd/presentation/linear_prediction.ipynb +320 -0
  333. package/opus/dnn/torch/osce/stndrd/presentation/playback.py +25 -0
  334. package/opus/dnn/torch/osce/stndrd/presentation/postfilter.ipynb +275 -0
  335. package/opus/dnn/torch/osce/stndrd/presentation/spectrogram.ipynb +173 -0
  336. package/opus/dnn/torch/osce/test_model.py +96 -0
  337. package/opus/dnn/torch/osce/test_vocoder.py +103 -0
  338. package/opus/dnn/torch/osce/train_model.py +307 -0
  339. package/opus/dnn/torch/osce/train_vocoder.py +287 -0
  340. package/opus/dnn/torch/osce/utils/ada_conv.py +71 -0
  341. package/opus/dnn/torch/osce/utils/complexity.py +8 -0
  342. package/opus/dnn/torch/osce/utils/endoscopy.py +205 -0
  343. package/opus/dnn/torch/osce/utils/layers/fir.py +27 -0
  344. package/opus/dnn/torch/osce/utils/layers/limited_adaptive_comb1d.py +230 -0
  345. package/opus/dnn/torch/osce/utils/layers/limited_adaptive_conv1d.py +200 -0
  346. package/opus/dnn/torch/osce/utils/layers/noise_shaper.py +100 -0
  347. package/opus/dnn/torch/osce/utils/layers/pitch_auto_correlator.py +84 -0
  348. package/opus/dnn/torch/osce/utils/layers/silk_upsampler.py +167 -0
  349. package/opus/dnn/torch/osce/utils/layers/td_shaper.py +145 -0
  350. package/opus/dnn/torch/osce/utils/lpcnet_features.py +112 -0
  351. package/opus/dnn/torch/osce/utils/misc.py +95 -0
  352. package/opus/dnn/torch/osce/utils/moc.py +153 -0
  353. package/opus/dnn/torch/osce/utils/pitch.py +122 -0
  354. package/opus/dnn/torch/osce/utils/silk_features.py +144 -0
  355. package/opus/dnn/torch/osce/utils/softquant.py +110 -0
  356. package/opus/dnn/torch/osce/utils/spec.py +210 -0
  357. package/opus/dnn/torch/osce/utils/templates.py +347 -0
  358. package/opus/dnn/torch/plc/export_plc.py +100 -0
  359. package/opus/dnn/torch/plc/plc.py +144 -0
  360. package/opus/dnn/torch/plc/plc_dataset.py +60 -0
  361. package/opus/dnn/torch/plc/train_plc.py +145 -0
  362. package/opus/dnn/torch/rdovae/README.md +55 -0
  363. package/opus/dnn/torch/rdovae/download_datasets.sh +6 -0
  364. package/opus/dnn/torch/rdovae/export_rdovae_weights.py +365 -0
  365. package/opus/dnn/torch/rdovae/fec_encoder.py +212 -0
  366. package/opus/dnn/torch/rdovae/import_rdovae_weights.py +143 -0
  367. package/opus/dnn/torch/rdovae/packets/__init__.py +1 -0
  368. package/opus/dnn/torch/rdovae/packets/fec_packets.c +142 -0
  369. package/opus/dnn/torch/rdovae/packets/fec_packets.h +34 -0
  370. package/opus/dnn/torch/rdovae/packets/fec_packets.py +108 -0
  371. package/opus/dnn/torch/rdovae/process_speech.sh +7 -0
  372. package/opus/dnn/torch/rdovae/rdovae/__init__.py +2 -0
  373. package/opus/dnn/torch/rdovae/rdovae/dataset.py +67 -0
  374. package/opus/dnn/torch/rdovae/rdovae/rdovae.py +719 -0
  375. package/opus/dnn/torch/rdovae/requirements.txt +4 -0
  376. package/opus/dnn/torch/rdovae/train_rdovae.py +278 -0
  377. package/opus/dnn/torch/testsuite/README.md +46 -0
  378. package/opus/dnn/torch/testsuite/examples/lpcnet_c_example.yml +6 -0
  379. package/opus/dnn/torch/testsuite/examples/lpcnet_c_plc_example.yml +5 -0
  380. package/opus/dnn/torch/testsuite/examples/lpcnet_torch_example.yml +5 -0
  381. package/opus/dnn/torch/testsuite/requirements.txt +12 -0
  382. package/opus/dnn/torch/testsuite/run_test.py +375 -0
  383. package/opus/dnn/torch/testsuite/utils/__init__.py +0 -0
  384. package/opus/dnn/torch/testsuite/utils/files.py +54 -0
  385. package/opus/dnn/torch/testsuite/utils/pesq.py +43 -0
  386. package/opus/dnn/torch/testsuite/utils/pitch.py +61 -0
  387. package/opus/dnn/torch/weight-exchange/README.md +21 -0
  388. package/opus/dnn/torch/weight-exchange/requirements.txt +1 -0
  389. package/opus/dnn/torch/weight-exchange/setup.py +48 -0
  390. package/opus/dnn/torch/weight-exchange/wexchange/__init__.py +30 -0
  391. package/opus/dnn/torch/weight-exchange/wexchange/c_export/__init__.py +31 -0
  392. package/opus/dnn/torch/weight-exchange/wexchange/c_export/c_writer.py +181 -0
  393. package/opus/dnn/torch/weight-exchange/wexchange/c_export/common.py +386 -0
  394. package/opus/dnn/torch/weight-exchange/wexchange/tf/__init__.py +5 -0
  395. package/opus/dnn/torch/weight-exchange/wexchange/tf/tf.py +188 -0
  396. package/opus/dnn/torch/weight-exchange/wexchange/torch/__init__.py +37 -0
  397. package/opus/dnn/torch/weight-exchange/wexchange/torch/torch.py +433 -0
  398. package/opus/dnn/training_tf2/dataloader.py +49 -0
  399. package/opus/dnn/training_tf2/decode_rdovae.py +111 -0
  400. package/opus/dnn/training_tf2/diffembed.py +49 -0
  401. package/opus/dnn/training_tf2/dump_lpcnet.py +388 -0
  402. package/opus/dnn/training_tf2/dump_plc.py +296 -0
  403. package/opus/dnn/training_tf2/dump_rdovae.py +306 -0
  404. package/opus/dnn/training_tf2/encode_rdovae.py +125 -0
  405. package/opus/dnn/training_tf2/fec_encoder.py +256 -0
  406. package/opus/dnn/training_tf2/fec_packets.c +142 -0
  407. package/opus/dnn/training_tf2/fec_packets.h +34 -0
  408. package/opus/dnn/training_tf2/fec_packets.py +108 -0
  409. package/opus/dnn/training_tf2/keraslayerdump.py +189 -0
  410. package/opus/dnn/training_tf2/lossfuncs.py +99 -0
  411. package/opus/dnn/training_tf2/lpcnet.py +339 -0
  412. package/opus/dnn/training_tf2/lpcnet_plc.py +101 -0
  413. package/opus/dnn/training_tf2/mdense.py +95 -0
  414. package/opus/dnn/training_tf2/pade.py +70 -0
  415. package/opus/dnn/training_tf2/parameters.py +29 -0
  416. package/opus/dnn/training_tf2/plc_loader.py +73 -0
  417. package/opus/dnn/training_tf2/rdovae.py +372 -0
  418. package/opus/dnn/training_tf2/rdovae_exchange.py +138 -0
  419. package/opus/dnn/training_tf2/rdovae_import.py +123 -0
  420. package/opus/dnn/training_tf2/test_lpcnet.py +120 -0
  421. package/opus/dnn/training_tf2/test_plc.py +92 -0
  422. package/opus/dnn/training_tf2/tf_funcs.py +70 -0
  423. package/opus/dnn/training_tf2/train_lpcnet.py +214 -0
  424. package/opus/dnn/training_tf2/train_plc.py +197 -0
  425. package/opus/dnn/training_tf2/train_rdovae.py +151 -0
  426. package/opus/dnn/training_tf2/ulaw.py +19 -0
  427. package/opus/dnn/training_tf2/uniform_noise.py +78 -0
  428. package/opus/dnn/vec.h +389 -0
  429. package/opus/dnn/vec_avx.h +884 -0
  430. package/opus/dnn/vec_neon.h +473 -0
  431. package/opus/dnn/write_lpcnet_weights.c +97 -0
  432. package/opus/dnn/x86/dnn_x86.h +121 -0
  433. package/opus/dnn/x86/nnet_avx2.c +40 -0
  434. package/opus/dnn/x86/nnet_sse2.c +40 -0
  435. package/opus/dnn/x86/nnet_sse4_1.c +40 -0
  436. package/opus/dnn/x86/x86_dnn_map.c +83 -0
  437. package/opus/doc/Doxyfile.in +340 -0
  438. package/opus/doc/Makefile.am +45 -0
  439. package/opus/doc/build_draft.sh +113 -0
  440. package/opus/doc/build_isobmff.sh +50 -0
  441. package/opus/doc/build_oggdraft.sh +52 -0
  442. package/opus/doc/customdoxygen.css +1011 -0
  443. package/opus/doc/draft-ietf-codec-oggopus.xml +1873 -0
  444. package/opus/doc/draft-ietf-codec-opus-update.xml +513 -0
  445. package/opus/doc/draft-ietf-codec-opus.xml +8276 -0
  446. package/opus/doc/draft-ietf-payload-rtp-opus.xml +960 -0
  447. package/opus/doc/footer.html +32 -0
  448. package/opus/doc/header.html +61 -0
  449. package/opus/doc/meson.build +33 -0
  450. package/opus/doc/opus_in_isobmff.css +60 -0
  451. package/opus/doc/opus_in_isobmff.html +692 -0
  452. package/opus/doc/opus_logo.svg +157 -0
  453. package/opus/doc/opus_update.patch +244 -0
  454. package/opus/doc/release.txt +43 -0
  455. package/opus/doc/trivial_example.c +171 -0
  456. package/opus/include/meson.build +13 -0
  457. package/opus/include/opus.h +1172 -0
  458. package/opus/include/opus_custom.h +381 -0
  459. package/opus/include/opus_defines.h +830 -0
  460. package/opus/include/opus_multistream.h +736 -0
  461. package/opus/include/opus_projection.h +643 -0
  462. package/opus/include/opus_types.h +166 -0
  463. package/opus/lpcnet_headers.mk +44 -0
  464. package/opus/lpcnet_sources.mk +44 -0
  465. package/opus/m4/as-gcc-inline-assembly.m4 +98 -0
  466. package/opus/m4/ax_add_fortify_source.m4 +53 -0
  467. package/opus/m4/opus-intrinsics.m4 +29 -0
  468. package/opus/meson/README.md +88 -0
  469. package/opus/meson/get-version.py +86 -0
  470. package/opus/meson/read-sources-list.py +28 -0
  471. package/opus/meson.build +745 -0
  472. package/opus/meson_options.txt +27 -0
  473. package/opus/opus-uninstalled.pc.in +12 -0
  474. package/opus/opus.m4 +117 -0
  475. package/opus/opus.pc.in +16 -0
  476. package/opus/opus_headers.mk +8 -0
  477. package/opus/opus_sources.mk +17 -0
  478. package/opus/releases.sha2 +85 -0
  479. package/opus/scripts/dump_rnn.py +57 -0
  480. package/opus/scripts/local_build.py +220 -0
  481. package/opus/scripts/rnn_train.py +67 -0
  482. package/opus/scripts/shrink_model.sh +7 -0
  483. package/opus/silk/A2NLSF.c +267 -0
  484. package/opus/silk/API.h +156 -0
  485. package/opus/silk/CNG.c +188 -0
  486. package/opus/silk/HP_variable_cutoff.c +77 -0
  487. package/opus/silk/Inlines.h +188 -0
  488. package/opus/silk/LPC_analysis_filter.c +111 -0
  489. package/opus/silk/LPC_fit.c +82 -0
  490. package/opus/silk/LPC_inv_pred_gain.c +141 -0
  491. package/opus/silk/LP_variable_cutoff.c +135 -0
  492. package/opus/silk/MacroCount.h +710 -0
  493. package/opus/silk/MacroDebug.h +945 -0
  494. package/opus/silk/NLSF2A.c +141 -0
  495. package/opus/silk/NLSF_VQ.c +76 -0
  496. package/opus/silk/NLSF_VQ_weights_laroia.c +80 -0
  497. package/opus/silk/NLSF_decode.c +93 -0
  498. package/opus/silk/NLSF_del_dec_quant.c +215 -0
  499. package/opus/silk/NLSF_encode.c +124 -0
  500. package/opus/silk/NLSF_stabilize.c +142 -0
  501. package/opus/silk/NLSF_unpack.c +55 -0
  502. package/opus/silk/NSQ.c +437 -0
  503. package/opus/silk/NSQ.h +101 -0
  504. package/opus/silk/NSQ_del_dec.c +733 -0
  505. package/opus/silk/PLC.c +493 -0
  506. package/opus/silk/PLC.h +65 -0
  507. package/opus/silk/SigProc_FIX.h +643 -0
  508. package/opus/silk/VAD.c +360 -0
  509. package/opus/silk/VQ_WMat_EC.c +131 -0
  510. package/opus/silk/ana_filt_bank_1.c +74 -0
  511. package/opus/silk/arm/LPC_inv_pred_gain_arm.h +57 -0
  512. package/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c +288 -0
  513. package/opus/silk/arm/NSQ_del_dec_arm.h +100 -0
  514. package/opus/silk/arm/NSQ_del_dec_neon_intr.c +1138 -0
  515. package/opus/silk/arm/NSQ_neon.c +112 -0
  516. package/opus/silk/arm/NSQ_neon.h +114 -0
  517. package/opus/silk/arm/SigProc_FIX_armv4.h +47 -0
  518. package/opus/silk/arm/SigProc_FIX_armv5e.h +61 -0
  519. package/opus/silk/arm/arm_silk_map.c +128 -0
  520. package/opus/silk/arm/biquad_alt_arm.h +68 -0
  521. package/opus/silk/arm/biquad_alt_neon_intr.c +156 -0
  522. package/opus/silk/arm/macros_arm64.h +39 -0
  523. package/opus/silk/arm/macros_armv4.h +110 -0
  524. package/opus/silk/arm/macros_armv5e.h +220 -0
  525. package/opus/silk/biquad_alt.c +121 -0
  526. package/opus/silk/bwexpander.c +51 -0
  527. package/opus/silk/bwexpander_32.c +51 -0
  528. package/opus/silk/check_control_input.c +106 -0
  529. package/opus/silk/code_signs.c +115 -0
  530. package/opus/silk/control.h +161 -0
  531. package/opus/silk/control_SNR.c +113 -0
  532. package/opus/silk/control_audio_bandwidth.c +132 -0
  533. package/opus/silk/control_codec.c +423 -0
  534. package/opus/silk/debug.c +174 -0
  535. package/opus/silk/debug.h +267 -0
  536. package/opus/silk/dec_API.c +465 -0
  537. package/opus/silk/decode_core.c +243 -0
  538. package/opus/silk/decode_frame.c +169 -0
  539. package/opus/silk/decode_indices.c +151 -0
  540. package/opus/silk/decode_parameters.c +115 -0
  541. package/opus/silk/decode_pitch.c +77 -0
  542. package/opus/silk/decode_pulses.c +115 -0
  543. package/opus/silk/decoder_set_fs.c +108 -0
  544. package/opus/silk/define.h +235 -0
  545. package/opus/silk/enc_API.c +593 -0
  546. package/opus/silk/encode_indices.c +181 -0
  547. package/opus/silk/encode_pulses.c +206 -0
  548. package/opus/silk/errors.h +98 -0
  549. package/opus/silk/fixed/LTP_analysis_filter_FIX.c +90 -0
  550. package/opus/silk/fixed/LTP_scale_ctrl_FIX.c +58 -0
  551. package/opus/silk/fixed/apply_sine_window_FIX.c +101 -0
  552. package/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h +68 -0
  553. package/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c +265 -0
  554. package/opus/silk/fixed/autocorr_FIX.c +48 -0
  555. package/opus/silk/fixed/burg_modified_FIX.c +280 -0
  556. package/opus/silk/fixed/corrMatrix_FIX.c +150 -0
  557. package/opus/silk/fixed/encode_frame_FIX.c +444 -0
  558. package/opus/silk/fixed/find_LPC_FIX.c +151 -0
  559. package/opus/silk/fixed/find_LTP_FIX.c +99 -0
  560. package/opus/silk/fixed/find_pitch_lags_FIX.c +143 -0
  561. package/opus/silk/fixed/find_pred_coefs_FIX.c +146 -0
  562. package/opus/silk/fixed/k2a_FIX.c +54 -0
  563. package/opus/silk/fixed/k2a_Q16_FIX.c +54 -0
  564. package/opus/silk/fixed/main_FIX.h +244 -0
  565. package/opus/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h +336 -0
  566. package/opus/silk/fixed/mips/prefilter_FIX_mipsr1.h +184 -0
  567. package/opus/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h +165 -0
  568. package/opus/silk/fixed/noise_shape_analysis_FIX.c +407 -0
  569. package/opus/silk/fixed/pitch_analysis_core_FIX.c +721 -0
  570. package/opus/silk/fixed/process_gains_FIX.c +117 -0
  571. package/opus/silk/fixed/regularize_correlations_FIX.c +47 -0
  572. package/opus/silk/fixed/residual_energy16_FIX.c +103 -0
  573. package/opus/silk/fixed/residual_energy_FIX.c +98 -0
  574. package/opus/silk/fixed/schur64_FIX.c +93 -0
  575. package/opus/silk/fixed/schur_FIX.c +107 -0
  576. package/opus/silk/fixed/structs_FIX.h +116 -0
  577. package/opus/silk/fixed/vector_ops_FIX.c +102 -0
  578. package/opus/silk/fixed/warped_autocorrelation_FIX.c +92 -0
  579. package/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c +400 -0
  580. package/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c +93 -0
  581. package/opus/silk/float/LPC_analysis_filter_FLP.c +249 -0
  582. package/opus/silk/float/LPC_inv_pred_gain_FLP.c +73 -0
  583. package/opus/silk/float/LTP_analysis_filter_FLP.c +75 -0
  584. package/opus/silk/float/LTP_scale_ctrl_FLP.c +58 -0
  585. package/opus/silk/float/SigProc_FLP.h +205 -0
  586. package/opus/silk/float/apply_sine_window_FLP.c +81 -0
  587. package/opus/silk/float/autocorrelation_FLP.c +53 -0
  588. package/opus/silk/float/burg_modified_FLP.c +187 -0
  589. package/opus/silk/float/bwexpander_FLP.c +49 -0
  590. package/opus/silk/float/corrMatrix_FLP.c +95 -0
  591. package/opus/silk/float/encode_frame_FLP.c +432 -0
  592. package/opus/silk/float/energy_FLP.c +59 -0
  593. package/opus/silk/float/find_LPC_FLP.c +105 -0
  594. package/opus/silk/float/find_LTP_FLP.c +65 -0
  595. package/opus/silk/float/find_pitch_lags_FLP.c +132 -0
  596. package/opus/silk/float/find_pred_coefs_FLP.c +117 -0
  597. package/opus/silk/float/inner_product_FLP.c +59 -0
  598. package/opus/silk/float/k2a_FLP.c +54 -0
  599. package/opus/silk/float/main_FLP.h +290 -0
  600. package/opus/silk/float/noise_shape_analysis_FLP.c +350 -0
  601. package/opus/silk/float/pitch_analysis_core_FLP.c +630 -0
  602. package/opus/silk/float/process_gains_FLP.c +103 -0
  603. package/opus/silk/float/regularize_correlations_FLP.c +48 -0
  604. package/opus/silk/float/residual_energy_FLP.c +117 -0
  605. package/opus/silk/float/scale_copy_vector_FLP.c +57 -0
  606. package/opus/silk/float/scale_vector_FLP.c +56 -0
  607. package/opus/silk/float/schur_FLP.c +70 -0
  608. package/opus/silk/float/sort_FLP.c +83 -0
  609. package/opus/silk/float/structs_FLP.h +112 -0
  610. package/opus/silk/float/warped_autocorrelation_FLP.c +75 -0
  611. package/opus/silk/float/wrappers_FLP.c +209 -0
  612. package/opus/silk/float/x86/inner_product_FLP_avx2.c +85 -0
  613. package/opus/silk/gain_quant.c +142 -0
  614. package/opus/silk/init_decoder.c +84 -0
  615. package/opus/silk/init_encoder.c +68 -0
  616. package/opus/silk/inner_prod_aligned.c +47 -0
  617. package/opus/silk/interpolate.c +51 -0
  618. package/opus/silk/lin2log.c +46 -0
  619. package/opus/silk/log2lin.c +58 -0
  620. package/opus/silk/macros.h +151 -0
  621. package/opus/silk/main.h +486 -0
  622. package/opus/silk/meson.build +69 -0
  623. package/opus/silk/mips/NSQ_del_dec_mipsr1.h +410 -0
  624. package/opus/silk/mips/macros_mipsr1.h +92 -0
  625. package/opus/silk/mips/sigproc_fix_mipsr1.h +60 -0
  626. package/opus/silk/pitch_est_defines.h +88 -0
  627. package/opus/silk/pitch_est_tables.c +99 -0
  628. package/opus/silk/process_NLSFs.c +107 -0
  629. package/opus/silk/quant_LTP_gains.c +132 -0
  630. package/opus/silk/resampler.c +215 -0
  631. package/opus/silk/resampler_down2.c +74 -0
  632. package/opus/silk/resampler_down2_3.c +103 -0
  633. package/opus/silk/resampler_private.h +88 -0
  634. package/opus/silk/resampler_private_AR2.c +55 -0
  635. package/opus/silk/resampler_private_IIR_FIR.c +107 -0
  636. package/opus/silk/resampler_private_down_FIR.c +194 -0
  637. package/opus/silk/resampler_private_up2_HQ.c +113 -0
  638. package/opus/silk/resampler_rom.c +96 -0
  639. package/opus/silk/resampler_rom.h +68 -0
  640. package/opus/silk/resampler_structs.h +60 -0
  641. package/opus/silk/shell_coder.c +151 -0
  642. package/opus/silk/sigm_Q15.c +76 -0
  643. package/opus/silk/sort.c +154 -0
  644. package/opus/silk/stereo_LR_to_MS.c +229 -0
  645. package/opus/silk/stereo_MS_to_LR.c +85 -0
  646. package/opus/silk/stereo_decode_pred.c +73 -0
  647. package/opus/silk/stereo_encode_pred.c +62 -0
  648. package/opus/silk/stereo_find_predictor.c +79 -0
  649. package/opus/silk/stereo_quant_pred.c +73 -0
  650. package/opus/silk/structs.h +357 -0
  651. package/opus/silk/sum_sqr_shift.c +83 -0
  652. package/opus/silk/table_LSF_cos.c +70 -0
  653. package/opus/silk/tables.h +114 -0
  654. package/opus/silk/tables_LTP.c +294 -0
  655. package/opus/silk/tables_NLSF_CB_NB_MB.c +195 -0
  656. package/opus/silk/tables_NLSF_CB_WB.c +234 -0
  657. package/opus/silk/tables_gain.c +63 -0
  658. package/opus/silk/tables_other.c +124 -0
  659. package/opus/silk/tables_pitch_lag.c +69 -0
  660. package/opus/silk/tables_pulses_per_block.c +264 -0
  661. package/opus/silk/tests/meson.build +8 -0
  662. package/opus/silk/tests/test_unit_LPC_inv_pred_gain.c +130 -0
  663. package/opus/silk/tuning_parameters.h +155 -0
  664. package/opus/silk/typedef.h +81 -0
  665. package/opus/silk/x86/NSQ_del_dec_avx2.c +1075 -0
  666. package/opus/silk/x86/NSQ_del_dec_sse4_1.c +915 -0
  667. package/opus/silk/x86/NSQ_sse4_1.c +772 -0
  668. package/opus/silk/x86/SigProc_FIX_sse.h +99 -0
  669. package/opus/silk/x86/VAD_sse4_1.c +289 -0
  670. package/opus/silk/x86/VQ_WMat_EC_sse4_1.c +173 -0
  671. package/opus/silk/x86/main_sse.h +299 -0
  672. package/opus/silk/x86/x86_silk_map.c +179 -0
  673. package/opus/silk_headers.mk +44 -0
  674. package/opus/silk_sources.mk +164 -0
  675. package/opus/src/analysis.c +979 -0
  676. package/opus/src/analysis.h +103 -0
  677. package/opus/src/extensions.c +663 -0
  678. package/opus/src/mapping_matrix.c +993 -0
  679. package/opus/src/mapping_matrix.h +165 -0
  680. package/opus/src/meson.build +45 -0
  681. package/opus/src/mlp.c +132 -0
  682. package/opus/src/mlp.h +60 -0
  683. package/opus/src/mlp_data.c +672 -0
  684. package/opus/src/opus.c +362 -0
  685. package/opus/src/opus_compare.c +382 -0
  686. package/opus/src/opus_decoder.c +1579 -0
  687. package/opus/src/opus_demo.c +1194 -0
  688. package/opus/src/opus_encoder.c +3180 -0
  689. package/opus/src/opus_multistream.c +92 -0
  690. package/opus/src/opus_multistream_decoder.c +563 -0
  691. package/opus/src/opus_multistream_encoder.c +1321 -0
  692. package/opus/src/opus_private.h +263 -0
  693. package/opus/src/opus_projection_decoder.c +283 -0
  694. package/opus/src/opus_projection_encoder.c +522 -0
  695. package/opus/src/repacketizer.c +469 -0
  696. package/opus/src/repacketizer_demo.c +247 -0
  697. package/opus/src/tansig_table.h +45 -0
  698. package/opus/tar_list.txt +28 -0
  699. package/opus/tests/meson.build +39 -0
  700. package/opus/tests/opus_build_test.sh +29 -0
  701. package/opus/tests/opus_decode_fuzzer.c +124 -0
  702. package/opus/tests/opus_decode_fuzzer.options +2 -0
  703. package/opus/tests/opus_encode_regressions.c +1034 -0
  704. package/opus/tests/random_config.sh +126 -0
  705. package/opus/tests/run_vectors.sh +143 -0
  706. package/opus/tests/test_opus_api.c +1904 -0
  707. package/opus/tests/test_opus_common.h +86 -0
  708. package/opus/tests/test_opus_custom.c +694 -0
  709. package/opus/tests/test_opus_decode.c +481 -0
  710. package/opus/tests/test_opus_dred.c +107 -0
  711. package/opus/tests/test_opus_encode.c +738 -0
  712. package/opus/tests/test_opus_extensions.c +750 -0
  713. package/opus/tests/test_opus_padding.c +94 -0
  714. package/opus/tests/test_opus_projection.c +384 -0
  715. package/opus/training/rnn_dump.py +66 -0
  716. package/opus/training/rnn_train.py +177 -0
  717. package/opus/training/txt2hdf5.py +12 -0
  718. package/opus/update_version +65 -0
  719. package/package.json +2 -2
  720. package/src/build-ffmpeg-msys.sh +8 -2
@@ -0,0 +1,166 @@
1
+ /* (C) COPYRIGHT 1994-2002 Xiph.Org Foundation */
2
+ /* Modified by Jean-Marc Valin */
3
+ /*
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions
6
+ are met:
7
+
8
+ - Redistributions of source code must retain the above copyright
9
+ notice, this list of conditions and the following disclaimer.
10
+
11
+ - Redistributions in binary form must reproduce the above copyright
12
+ notice, this list of conditions and the following disclaimer in the
13
+ documentation and/or other materials provided with the distribution.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
19
+ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ */
27
+ /* opus_types.h based on ogg_types.h from libogg */
28
+
29
+ /**
30
+ @file opus_types.h
31
+ @brief Opus reference implementation types
32
+ */
33
+ #ifndef OPUS_TYPES_H
34
+ #define OPUS_TYPES_H
35
+
36
+ #define opus_int int /* used for counters etc; at least 16 bits */
37
+ #define opus_int64 long long
38
+ #define opus_int8 signed char
39
+
40
+ #define opus_uint unsigned int /* used for counters etc; at least 16 bits */
41
+ #define opus_uint64 unsigned long long
42
+ #define opus_uint8 unsigned char
43
+
44
+ /* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */
45
+ #if (defined(__STDC__) && __STDC__ && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H))
46
+ #include <stdint.h>
47
+ # undef opus_int64
48
+ # undef opus_int8
49
+ # undef opus_uint64
50
+ # undef opus_uint8
51
+ typedef int8_t opus_int8;
52
+ typedef uint8_t opus_uint8;
53
+ typedef int16_t opus_int16;
54
+ typedef uint16_t opus_uint16;
55
+ typedef int32_t opus_int32;
56
+ typedef uint32_t opus_uint32;
57
+ typedef int64_t opus_int64;
58
+ typedef uint64_t opus_uint64;
59
+ #elif defined(_WIN32)
60
+
61
+ # if defined(__CYGWIN__)
62
+ # include <_G_config.h>
63
+ typedef _G_int32_t opus_int32;
64
+ typedef _G_uint32_t opus_uint32;
65
+ typedef _G_int16 opus_int16;
66
+ typedef _G_uint16 opus_uint16;
67
+ # elif defined(__MINGW32__)
68
+ typedef short opus_int16;
69
+ typedef unsigned short opus_uint16;
70
+ typedef int opus_int32;
71
+ typedef unsigned int opus_uint32;
72
+ # elif defined(__MWERKS__)
73
+ typedef int opus_int32;
74
+ typedef unsigned int opus_uint32;
75
+ typedef short opus_int16;
76
+ typedef unsigned short opus_uint16;
77
+ # else
78
+ /* MSVC/Borland */
79
+ typedef __int32 opus_int32;
80
+ typedef unsigned __int32 opus_uint32;
81
+ typedef __int16 opus_int16;
82
+ typedef unsigned __int16 opus_uint16;
83
+ # endif
84
+
85
+ #elif defined(__MACOS__)
86
+
87
+ # include <sys/types.h>
88
+ typedef SInt16 opus_int16;
89
+ typedef UInt16 opus_uint16;
90
+ typedef SInt32 opus_int32;
91
+ typedef UInt32 opus_uint32;
92
+
93
+ #elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */
94
+
95
+ # include <sys/types.h>
96
+ typedef int16_t opus_int16;
97
+ typedef u_int16_t opus_uint16;
98
+ typedef int32_t opus_int32;
99
+ typedef u_int32_t opus_uint32;
100
+
101
+ #elif defined(__BEOS__)
102
+
103
+ /* Be */
104
+ # include <inttypes.h>
105
+ typedef int16 opus_int16;
106
+ typedef u_int16 opus_uint16;
107
+ typedef int32_t opus_int32;
108
+ typedef u_int32_t opus_uint32;
109
+
110
+ #elif defined (__EMX__)
111
+
112
+ /* OS/2 GCC */
113
+ typedef short opus_int16;
114
+ typedef unsigned short opus_uint16;
115
+ typedef int opus_int32;
116
+ typedef unsigned int opus_uint32;
117
+
118
+ #elif defined (DJGPP)
119
+
120
+ /* DJGPP */
121
+ typedef short opus_int16;
122
+ typedef unsigned short opus_uint16;
123
+ typedef int opus_int32;
124
+ typedef unsigned int opus_uint32;
125
+
126
+ #elif defined(R5900)
127
+
128
+ /* PS2 EE */
129
+ typedef int opus_int32;
130
+ typedef unsigned opus_uint32;
131
+ typedef short opus_int16;
132
+ typedef unsigned short opus_uint16;
133
+
134
+ #elif defined(__SYMBIAN32__)
135
+
136
+ /* Symbian GCC */
137
+ typedef signed short opus_int16;
138
+ typedef unsigned short opus_uint16;
139
+ typedef signed int opus_int32;
140
+ typedef unsigned int opus_uint32;
141
+
142
+ #elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X)
143
+
144
+ typedef short opus_int16;
145
+ typedef unsigned short opus_uint16;
146
+ typedef long opus_int32;
147
+ typedef unsigned long opus_uint32;
148
+
149
+ #elif defined(CONFIG_TI_C6X)
150
+
151
+ typedef short opus_int16;
152
+ typedef unsigned short opus_uint16;
153
+ typedef int opus_int32;
154
+ typedef unsigned int opus_uint32;
155
+
156
+ #else
157
+
158
+ /* Give up, take a reasonable guess */
159
+ typedef short opus_int16;
160
+ typedef unsigned short opus_uint16;
161
+ typedef int opus_int32;
162
+ typedef unsigned int opus_uint32;
163
+
164
+ #endif
165
+
166
+ #endif /* OPUS_TYPES_H */
@@ -0,0 +1,44 @@
1
+ DEEP_PLC_HEAD = \
2
+ dnn/lpcnet.h \
3
+ dnn/burg.h \
4
+ dnn/common.h \
5
+ dnn/freq.h \
6
+ dnn/fargan.h \
7
+ dnn/fargan_data.h \
8
+ dnn/lpcnet_private.h \
9
+ dnn/nnet.h \
10
+ dnn/plc_data.h \
11
+ dnn/vec.h \
12
+ dnn/vec_avx.h \
13
+ dnn/vec_neon.h \
14
+ dnn/pitchdnn.h \
15
+ dnn/pitchdnn_data.h \
16
+ dnn/x86/dnn_x86.h \
17
+ dnn/nnet_arch.h \
18
+ dnn/arm/dnn_arm.h
19
+
20
+ DRED_HEAD = \
21
+ dnn/dred_coding.h \
22
+ dnn/dred_config.h \
23
+ dnn/dred_decoder.h \
24
+ dnn/dred_encoder.h \
25
+ dnn/dred_rdovae.h \
26
+ dnn/dred_rdovae_constants.h \
27
+ dnn/dred_rdovae_enc.h \
28
+ dnn/dred_rdovae_enc_data.h \
29
+ dnn/dred_rdovae_dec.h \
30
+ dnn/dred_rdovae_dec_data.h \
31
+ dnn/dred_rdovae_stats_data.h
32
+
33
+ OSCE_HEAD= \
34
+ dnn/osce.h \
35
+ dnn/osce_config.h \
36
+ dnn/osce_structs.h \
37
+ dnn/osce_features.h \
38
+ dnn/nndsp.h \
39
+ dnn/lace_data.h \
40
+ dnn/nolace_data.h
41
+
42
+ LOSSGEN_HEAD = \
43
+ dnn/lossgen.h \
44
+ dnn/lossgen_data.h
@@ -0,0 +1,44 @@
1
+ DEEP_PLC_SOURCES = \
2
+ dnn/burg.c \
3
+ dnn/freq.c \
4
+ dnn/fargan.c \
5
+ dnn/fargan_data.c \
6
+ dnn/lpcnet_enc.c \
7
+ dnn/lpcnet_plc.c \
8
+ dnn/lpcnet_tables.c \
9
+ dnn/nnet.c \
10
+ dnn/nnet_default.c \
11
+ dnn/plc_data.c \
12
+ dnn/parse_lpcnet_weights.c \
13
+ dnn/pitchdnn.c \
14
+ dnn/pitchdnn_data.c
15
+
16
+ DRED_SOURCES = \
17
+ dnn/dred_rdovae_enc.c \
18
+ dnn/dred_rdovae_enc_data.c \
19
+ dnn/dred_rdovae_dec.c \
20
+ dnn/dred_rdovae_dec_data.c \
21
+ dnn/dred_rdovae_stats_data.c \
22
+ dnn/dred_encoder.c \
23
+ dnn/dred_coding.c \
24
+ dnn/dred_decoder.c
25
+
26
+ OSCE_SOURCES = \
27
+ dnn/osce.c \
28
+ dnn/osce_features.c \
29
+ dnn/nndsp.c \
30
+ dnn/lace_data.c \
31
+ dnn/nolace_data.c
32
+
33
+ LOSSGEN_SOURCES = \
34
+ dnn/lossgen.c \
35
+ dnn/lossgen_data.c
36
+
37
+ DNN_SOURCES_X86_RTCD = dnn/x86/x86_dnn_map.c
38
+ DNN_SOURCES_AVX2 = dnn/x86/nnet_avx2.c
39
+ DNN_SOURCES_SSE4_1 = dnn/x86/nnet_sse4_1.c
40
+ DNN_SOURCES_SSE2 = dnn/x86/nnet_sse2.c
41
+
42
+ DNN_SOURCES_ARM_RTCD = dnn/arm/arm_dnn_map.c
43
+ DNN_SOURCES_DOTPROD = dnn/arm/nnet_dotprod.c
44
+ DNN_SOURCES_NEON = dnn/arm/nnet_neon.c
@@ -0,0 +1,98 @@
1
+ dnl as-gcc-inline-assembly.m4 0.1.0
2
+
3
+ dnl autostars m4 macro for detection of gcc inline assembly
4
+
5
+ dnl David Schleef <ds@schleef.org>
6
+
7
+ dnl AS_COMPILER_FLAG(ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
8
+ dnl Tries to compile with the given CFLAGS.
9
+ dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
10
+ dnl and ACTION-IF-NOT-ACCEPTED otherwise.
11
+
12
+ AC_DEFUN([AS_GCC_INLINE_ASSEMBLY],
13
+ [
14
+ AC_MSG_CHECKING([if compiler supports gcc-style inline assembly])
15
+
16
+ AC_TRY_COMPILE([], [
17
+ #ifdef __GNUC_MINOR__
18
+ #if (__GNUC__ * 1000 + __GNUC_MINOR__) < 3004
19
+ #error GCC before 3.4 has critical bugs compiling inline assembly
20
+ #endif
21
+ #endif
22
+ __asm__ (""::) ], [flag_ok=yes], [flag_ok=no])
23
+
24
+ if test "X$flag_ok" = Xyes ; then
25
+ $1
26
+ true
27
+ else
28
+ $2
29
+ true
30
+ fi
31
+ AC_MSG_RESULT([$flag_ok])
32
+ ])
33
+
34
+ AC_DEFUN([AS_ASM_ARM_NEON],
35
+ [
36
+ AC_MSG_CHECKING([if assembler supports NEON instructions on ARM])
37
+
38
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__("vorr d0,d0,d0")])],
39
+ [AC_MSG_RESULT([yes])
40
+ $1],
41
+ [AC_MSG_RESULT([no])
42
+ $2])
43
+ ])
44
+
45
+ AC_DEFUN([AS_ASM_ARM_NEON_FORCE],
46
+ [
47
+ AC_MSG_CHECKING([if assembler supports NEON instructions on ARM])
48
+
49
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__(".arch armv7-a\n.fpu neon\n.object_arch armv4t\nvorr d0,d0,d0")])],
50
+ [AC_MSG_RESULT([yes])
51
+ $1],
52
+ [AC_MSG_RESULT([no])
53
+ $2])
54
+ ])
55
+
56
+ AC_DEFUN([AS_ASM_ARM_MEDIA],
57
+ [
58
+ AC_MSG_CHECKING([if assembler supports ARMv6 media instructions on ARM])
59
+
60
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__("shadd8 r3,r3,r3")])],
61
+ [AC_MSG_RESULT([yes])
62
+ $1],
63
+ [AC_MSG_RESULT([no])
64
+ $2])
65
+ ])
66
+
67
+ AC_DEFUN([AS_ASM_ARM_MEDIA_FORCE],
68
+ [
69
+ AC_MSG_CHECKING([if assembler supports ARMv6 media instructions on ARM])
70
+
71
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__(".arch armv6\n.object_arch armv4t\nshadd8 r3,r3,r3")])],
72
+ [AC_MSG_RESULT([yes])
73
+ $1],
74
+ [AC_MSG_RESULT([no])
75
+ $2])
76
+ ])
77
+
78
+ AC_DEFUN([AS_ASM_ARM_EDSP],
79
+ [
80
+ AC_MSG_CHECKING([if assembler supports EDSP instructions on ARM])
81
+
82
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__("qadd r3,r3,r3")])],
83
+ [AC_MSG_RESULT([yes])
84
+ $1],
85
+ [AC_MSG_RESULT([no])
86
+ $2])
87
+ ])
88
+
89
+ AC_DEFUN([AS_ASM_ARM_EDSP_FORCE],
90
+ [
91
+ AC_MSG_CHECKING([if assembler supports EDSP instructions on ARM])
92
+
93
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[__asm__(".arch armv5te\n.object_arch armv4t\nqadd r3,r3,r3")])],
94
+ [AC_MSG_RESULT([yes])
95
+ $1],
96
+ [AC_MSG_RESULT([no])
97
+ $2])
98
+ ])
@@ -0,0 +1,53 @@
1
+ # ===========================================================================
2
+ # Modified from https://www.gnu.org/software/autoconf-archive/ax_add_fortify_source.html
3
+ # ===========================================================================
4
+ #
5
+ # SYNOPSIS
6
+ #
7
+ # AX_ADD_FORTIFY_SOURCE
8
+ #
9
+ # DESCRIPTION
10
+ #
11
+ # Check whether -D_FORTIFY_SOURCE=2 can be added to CFLAGS without macro
12
+ # redefinition warnings. Some distributions (such as Gentoo Linux) enable
13
+ # _FORTIFY_SOURCE globally in their compilers, leading to unnecessary
14
+ # warnings in the form of
15
+ #
16
+ # <command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
17
+ # <built-in>: note: this is the location of the previous definition
18
+ #
19
+ # which is a problem if -Werror is enabled. This macro checks whether
20
+ # _FORTIFY_SOURCE is already defined, and if not, adds -D_FORTIFY_SOURCE=2
21
+ # to CFLAGS.
22
+ #
23
+ # LICENSE
24
+ #
25
+ # Copyright (c) 2017 David Seifert <soap@gentoo.org>
26
+ #
27
+ # Copying and distribution of this file, with or without modification, are
28
+ # permitted in any medium without royalty provided the copyright notice
29
+ # and this notice are preserved. This file is offered as-is, without any
30
+ # warranty.
31
+
32
+ #serial 1
33
+
34
+ AC_DEFUN([AX_ADD_FORTIFY_SOURCE],[
35
+ AC_MSG_CHECKING([whether to add -D_FORTIFY_SOURCE=2 to CFLAGS])
36
+ AC_LINK_IFELSE([
37
+ AC_LANG_SOURCE(
38
+ [[
39
+ int main() {
40
+ #ifndef _FORTIFY_SOURCE
41
+ return 0;
42
+ #else
43
+ this_is_an_error;
44
+ #endif
45
+ }
46
+ ]]
47
+ )], [
48
+ AC_MSG_RESULT([yes])
49
+ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
50
+ ], [
51
+ AC_MSG_RESULT([no])
52
+ ])
53
+ ])
@@ -0,0 +1,29 @@
1
+ dnl opus-intrinsics.m4
2
+ dnl macro for testing for support for compiler intrinsics, either by default or with a compiler flag
3
+
4
+ dnl OPUS_CHECK_INTRINSICS(NAME-OF-INTRINSICS, COMPILER-FLAG-FOR-INTRINSICS, VAR-IF-PRESENT, VAR-IF-DEFAULT, TEST-PROGRAM-HEADER, TEST-PROGRAM-BODY)
5
+ AC_DEFUN([OPUS_CHECK_INTRINSICS],
6
+ [
7
+ AC_MSG_CHECKING([if compiler supports $1 intrinsics])
8
+ AC_LINK_IFELSE(
9
+ [AC_LANG_PROGRAM($5, $6)],
10
+ [
11
+ $3=1
12
+ $4=1
13
+ AC_MSG_RESULT([yes])
14
+ ],[
15
+ $4=0
16
+ AC_MSG_RESULT([no])
17
+ AC_MSG_CHECKING([if compiler supports $1 intrinsics with $2])
18
+ save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $2"
19
+ AC_LINK_IFELSE([AC_LANG_PROGRAM($5, $6)],
20
+ [
21
+ AC_MSG_RESULT([yes])
22
+ $3=1
23
+ ],[
24
+ AC_MSG_RESULT([no])
25
+ $3=0
26
+ ])
27
+ CFLAGS="$save_CFLAGS"
28
+ ])
29
+ ])
@@ -0,0 +1,88 @@
1
+ # Using the Meson Build System for the Opus Project
2
+
3
+ This guide provides instructions for using the Meson build system to build the Opus project with various configuration options. Meson is a fast and efficient build system that aims to be easy to use and understand.
4
+
5
+ Please note that software documentation can sometimes become outdated as new versions are released. For the most up-to-date and accurate information, we recommend referring to the official Meson documentation, which can be found at [mesonbuild.com](https://mesonbuild.com/).
6
+
7
+ ## Prerequisites
8
+
9
+ Before proceeding, ensure that you have the following prerequisites installed:
10
+
11
+ - [Meson](https://mesonbuild.com/Quick-guide.html)
12
+ - [Ninja](https://ninja-build.org/) (recommended as the build backend, although other backends are also available)
13
+ - [Git](https://git-scm.com/) (optional, but recommended for version control integration)
14
+ - A working C compiler
15
+
16
+ ## Build and Test Instructions
17
+
18
+ Follow the steps below to build the Opus project using Meson.
19
+
20
+ ### Check out Source
21
+ Clone the Opus repository using Git:
22
+
23
+ ```shell
24
+ git clone https://gitlab.xiph.org/xiph/opus
25
+ cd opus
26
+ ```
27
+
28
+ ### Configure
29
+ To configure the build with Meson, you can set the desired configuration options using the -D flag followed by the option name and value. For the Opus project-specific build options, please refer to the [meson_options.txt](./../meson_options.txt) file. For general Meson options use the command meson `setup --help` to get a list of these options.
30
+
31
+ For example, to setup and disable tests, use the following command:
32
+
33
+ ```shell
34
+ meson setup builddir -Dtests=disabled
35
+ ```
36
+
37
+ ### Build
38
+
39
+ ```shell
40
+ meson compile -C builddir
41
+ ```
42
+
43
+ After a successful build, you can find the compiled Opus library and associated files in the builddir directory.
44
+
45
+ ### Testing with Meson
46
+
47
+ Opus provides a comprehensive test suite to ensure the functionality and correctness of the project. You can execute the tests using Meson's built-in testing functionality.
48
+
49
+ To run the Opus tests using Meson:
50
+
51
+ ```shell
52
+ meson test -C builddir
53
+ ```
54
+
55
+ ## Platform Support and Bug Reporting
56
+
57
+ The Opus Meson build system aims to provide support for the same platforms as [GStreamer](https://gstreamer.freedesktop.org/), a widely used multimedia framework. GStreamer supports a wide range of operating systems and platforms, including Linux, Windows (MSVC and MingW), Android, macOS, iOS, and various BSD systems.
58
+
59
+ While efforts are made to ensure compatibility and stability across these platforms, bugs or issues may still arise in specific configurations. If you encounter any problems during the configuration process or while building the Opus project, we encourage you to file an issue in the [project's issue tracker](https://gitlab.xiph.org/xiph/opus/-/issues).
60
+
61
+ When reporting an issue, please provide the following information to help us understand and effectively reproduce the configuration problem:
62
+
63
+ 1. Detailed description of the issue, including any error messages or unexpected behavior observed.
64
+ 2. Steps to reproduce the problem, including the Meson command and any specific configuration options used.
65
+ 3. Operating system and version (e.g., Windows 10, macOS Big Sur, Ubuntu 20.04).
66
+ 4. Meson version (e.g., Meson 0.60.0).
67
+ 5. Any relevant information about the platform, toolchain, or dependencies used.
68
+ 6. Additional context or details that might assist in troubleshooting the issue.
69
+
70
+ By providing thorough information when reporting configuration issues, you contribute to improving the Opus project's compatibility and reliability across different platforms.
71
+
72
+ We appreciate your help in identifying and addressing any configuration-related problems, ensuring a better experience for all users of the Opus project.
73
+
74
+ ## Platform Specific Examples
75
+
76
+ Note: Examples can become outdated. Always refer to the documentation for the latest reference.
77
+
78
+ ### Windows Visual Studio
79
+
80
+ To generate Visual Studio projects, Meson needs to know the settings of your installed version of Visual Studio. The recommended approach is to run Meson under the Visual Studio Command Prompt.
81
+
82
+ You can find the Visual Studio Command Prompt by searching from the Start Menu. However, the name varies for each Visual Studio version. For Visual Studio 2022, look for "x64 Native Tools Command Prompt for VS 2022". The following steps remain the same:
83
+
84
+ ```shell
85
+ meson setup builddir -Dtests=enabled --backend vs
86
+ ```
87
+
88
+ For more information about the Visual Studio backend options and additional customization, please refer to the [Using with Visual Studio](https://mesonbuild.com/Using-with-Visual-Studio.html) documentation.
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env python3
2
+ #
3
+ # Opus get-version.py
4
+ #
5
+ # Extracts versions for build:
6
+ # - Opus package version based on 'git describe' or $srcroot/package_version
7
+ # - libtool version based on configure.ac
8
+ # - macos lib version based on configure.ac
9
+ #
10
+ # Usage:
11
+ # get-version.py [--package-version | --libtool-version | --darwin-version]
12
+ import argparse
13
+ import subprocess
14
+ import os
15
+ import sys
16
+ import shutil
17
+
18
+ if __name__ == '__main__':
19
+ arg_parser = argparse.ArgumentParser(description='Extract Opus package version or libtool version')
20
+ group = arg_parser.add_mutually_exclusive_group(required=True)
21
+ group.add_argument('--libtool-version', action='store_true')
22
+ group.add_argument('--package-version', action='store_true')
23
+ group.add_argument('--darwin-version', action='store_true')
24
+ args = arg_parser.parse_args()
25
+
26
+ srcroot = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
27
+
28
+ # package version
29
+ if args.package_version:
30
+ package_version = None
31
+
32
+ # check if git checkout
33
+ git_dir = os.path.join(srcroot, '.git')
34
+ is_git = os.path.isdir(git_dir) or os.path.isfile(git_dir)
35
+ have_git = shutil.which('git') is not None
36
+
37
+ if is_git and have_git:
38
+ git_cmd = subprocess.run(['git', '--git-dir=' + git_dir, 'describe', 'HEAD'], stdout=subprocess.PIPE)
39
+ if git_cmd.returncode:
40
+ print('ERROR: Could not extract package version via `git describe` in', srcroot, file=sys.stderr)
41
+ sys.exit(-1)
42
+ package_version = git_cmd.stdout.decode('ascii').strip().lstrip('v')
43
+ else:
44
+ with open(os.path.join(srcroot, 'package_version'), 'r') as f:
45
+ for line in f:
46
+ if line.startswith('PACKAGE_VERSION="'):
47
+ package_version = line[17:].strip().lstrip('v').rstrip('"')
48
+ if package_version:
49
+ break
50
+
51
+ if not package_version:
52
+ print('ERROR: Could not extract package version from package_version file in', srcroot, file=sys.stderr)
53
+ sys.exit(-1)
54
+
55
+ print(package_version)
56
+ sys.exit(0)
57
+
58
+ # libtool version + darwin version
59
+ elif args.libtool_version or args.darwin_version:
60
+ opus_lt_cur = None
61
+ opus_lt_rev = None
62
+ opus_lt_age = None
63
+
64
+ with open(os.path.join(srcroot, 'configure.ac'), 'r') as f:
65
+ for line in f:
66
+ if line.strip().startswith('OPUS_LT_CURRENT='):
67
+ opus_lt_cur = line[16:].strip()
68
+ elif line.strip().startswith('OPUS_LT_REVISION='):
69
+ opus_lt_rev = line[17:].strip()
70
+ elif line.strip().startswith('OPUS_LT_AGE='):
71
+ opus_lt_age = line[12:].strip()
72
+
73
+ if opus_lt_cur and opus_lt_rev and opus_lt_age:
74
+ opus_lt_cur = int(opus_lt_cur)
75
+ opus_lt_rev = int(opus_lt_rev)
76
+ opus_lt_age = int(opus_lt_age)
77
+ if args.libtool_version:
78
+ print('{}.{}.{}'.format(opus_lt_cur - opus_lt_age, opus_lt_age, opus_lt_rev))
79
+ elif args.darwin_version:
80
+ print('{}.{}.{}'.format(opus_lt_cur + 1, 0, 0))
81
+ sys.exit(0)
82
+ else:
83
+ print('ERROR: Could not extract libtool version from configure.ac file in', srcroot, file=sys.stderr)
84
+ sys.exit(-1)
85
+ else:
86
+ sys.exit(-1)
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env python3
2
+ #
3
+ # opus/read-sources-list.py
4
+ #
5
+ # Parses .mk files and extracts list of source files.
6
+ # Prints one line per source file list, with filenames space-separated.
7
+
8
+ import sys
9
+
10
+ if len(sys.argv) < 2:
11
+ sys.exit('Usage: {} sources_foo.mk [sources_bar.mk...]'.format(sys.argv[0]))
12
+
13
+ for input_fn in sys.argv[1:]:
14
+ with open(input_fn, 'r', encoding='utf8') as f:
15
+ text = f.read()
16
+ text = text.replace('\\\n', '')
17
+
18
+ # Remove empty lines
19
+ lines = [line for line in text.split('\n') if line.strip()]
20
+
21
+ # Print SOURCES_XYZ = file1.c file2.c
22
+ for line in lines:
23
+ values = line.strip().split('=', maxsplit=2)
24
+ if len(values) != 2:
25
+ raise RuntimeError('Unable to parse line "{}" from file "{}"'.format(line, input_fn))
26
+ var, files = values
27
+ sources_list = [f for f in files.split(' ') if f]
28
+ print(var.strip(), '=', ' '.join(sources_list))