@scrypted/libav 1.0.167 → 1.0.169

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 (722) hide show
  1. package/binding.gyp +2 -0
  2. package/opus/.gitattributes +10 -0
  3. package/opus/.gitlab-ci.yml +122 -0
  4. package/opus/AUTHORS +6 -0
  5. package/opus/CMakeLists.txt +755 -0
  6. package/opus/COPYING +44 -0
  7. package/opus/ChangeLog +0 -0
  8. package/opus/LICENSE_PLEASE_READ.txt +22 -0
  9. package/opus/Makefile.am +497 -0
  10. package/opus/Makefile.mips +169 -0
  11. package/opus/Makefile.unix +167 -0
  12. package/opus/NEWS +0 -0
  13. package/opus/README +189 -0
  14. package/opus/README.draft +54 -0
  15. package/opus/autogen.bat +13 -0
  16. package/opus/autogen.sh +16 -0
  17. package/opus/celt/_kiss_fft_guts.h +188 -0
  18. package/opus/celt/arch.h +390 -0
  19. package/opus/celt/arm/arm2gnu.pl +353 -0
  20. package/opus/celt/arm/arm_celt_map.c +171 -0
  21. package/opus/celt/arm/armcpu.c +291 -0
  22. package/opus/celt/arm/armcpu.h +90 -0
  23. package/opus/celt/arm/armopts.s.in +37 -0
  24. package/opus/celt/arm/celt_fft_ne10.c +173 -0
  25. package/opus/celt/arm/celt_mdct_ne10.c +258 -0
  26. package/opus/celt/arm/celt_neon_intr.c +272 -0
  27. package/opus/celt/arm/celt_pitch_xcorr_arm.s +551 -0
  28. package/opus/celt/arm/fft_arm.h +71 -0
  29. package/opus/celt/arm/fixed_arm64.h +35 -0
  30. package/opus/celt/arm/fixed_armv4.h +80 -0
  31. package/opus/celt/arm/fixed_armv5e.h +151 -0
  32. package/opus/celt/arm/kiss_fft_armv4.h +121 -0
  33. package/opus/celt/arm/kiss_fft_armv5e.h +118 -0
  34. package/opus/celt/arm/mdct_arm.h +59 -0
  35. package/opus/celt/arm/meson.build +12 -0
  36. package/opus/celt/arm/pitch_arm.h +160 -0
  37. package/opus/celt/arm/pitch_neon_intr.c +288 -0
  38. package/opus/celt/bands.c +1686 -0
  39. package/opus/celt/bands.h +123 -0
  40. package/opus/celt/celt.c +317 -0
  41. package/opus/celt/celt.h +255 -0
  42. package/opus/celt/celt_decoder.c +1616 -0
  43. package/opus/celt/celt_encoder.c +2854 -0
  44. package/opus/celt/celt_lpc.c +364 -0
  45. package/opus/celt/celt_lpc.h +66 -0
  46. package/opus/celt/cpu_support.h +72 -0
  47. package/opus/celt/cwrs.c +715 -0
  48. package/opus/celt/cwrs.h +48 -0
  49. package/opus/celt/dump_modes/dump_modes.c +400 -0
  50. package/opus/celt/dump_modes/dump_modes_arch.h +45 -0
  51. package/opus/celt/dump_modes/dump_modes_arm_ne10.c +152 -0
  52. package/opus/celt/ecintrin.h +91 -0
  53. package/opus/celt/entcode.c +153 -0
  54. package/opus/celt/entcode.h +152 -0
  55. package/opus/celt/entdec.c +266 -0
  56. package/opus/celt/entdec.h +110 -0
  57. package/opus/celt/entenc.c +305 -0
  58. package/opus/celt/entenc.h +119 -0
  59. package/opus/celt/fixed_c5x.h +79 -0
  60. package/opus/celt/fixed_c6x.h +70 -0
  61. package/opus/celt/fixed_debug.h +839 -0
  62. package/opus/celt/fixed_generic.h +201 -0
  63. package/opus/celt/float_cast.h +152 -0
  64. package/opus/celt/kiss_fft.c +648 -0
  65. package/opus/celt/kiss_fft.h +217 -0
  66. package/opus/celt/laplace.c +235 -0
  67. package/opus/celt/laplace.h +57 -0
  68. package/opus/celt/mathops.c +217 -0
  69. package/opus/celt/mathops.h +479 -0
  70. package/opus/celt/mdct.c +372 -0
  71. package/opus/celt/mdct.h +115 -0
  72. package/opus/celt/meson.build +64 -0
  73. package/opus/celt/mfrngcod.h +48 -0
  74. package/opus/celt/mips/celt_mipsr1.h +152 -0
  75. package/opus/celt/mips/fixed_generic_mipsr1.h +126 -0
  76. package/opus/celt/mips/kiss_fft_mipsr1.h +167 -0
  77. package/opus/celt/mips/mdct_mipsr1.h +288 -0
  78. package/opus/celt/mips/pitch_mipsr1.h +161 -0
  79. package/opus/celt/mips/vq_mipsr1.h +116 -0
  80. package/opus/celt/modes.c +450 -0
  81. package/opus/celt/modes.h +75 -0
  82. package/opus/celt/opus_custom_demo.c +451 -0
  83. package/opus/celt/os_support.h +99 -0
  84. package/opus/celt/pitch.c +555 -0
  85. package/opus/celt/pitch.h +203 -0
  86. package/opus/celt/quant_bands.c +562 -0
  87. package/opus/celt/quant_bands.h +66 -0
  88. package/opus/celt/rate.c +646 -0
  89. package/opus/celt/rate.h +101 -0
  90. package/opus/celt/stack_alloc.h +185 -0
  91. package/opus/celt/static_modes_fixed.h +1541 -0
  92. package/opus/celt/static_modes_fixed_arm_ne10.h +388 -0
  93. package/opus/celt/static_modes_float.h +888 -0
  94. package/opus/celt/static_modes_float_arm_ne10.h +404 -0
  95. package/opus/celt/tests/meson.build +19 -0
  96. package/opus/celt/tests/test_unit_cwrs32.c +162 -0
  97. package/opus/celt/tests/test_unit_dft.c +181 -0
  98. package/opus/celt/tests/test_unit_entropy.c +383 -0
  99. package/opus/celt/tests/test_unit_laplace.c +94 -0
  100. package/opus/celt/tests/test_unit_mathops.c +369 -0
  101. package/opus/celt/tests/test_unit_mdct.c +233 -0
  102. package/opus/celt/tests/test_unit_rotation.c +87 -0
  103. package/opus/celt/tests/test_unit_types.c +50 -0
  104. package/opus/celt/vq.c +442 -0
  105. package/opus/celt/vq.h +79 -0
  106. package/opus/celt/x86/celt_lpc_sse.h +67 -0
  107. package/opus/celt/x86/celt_lpc_sse4_1.c +96 -0
  108. package/opus/celt/x86/pitch_avx.c +101 -0
  109. package/opus/celt/x86/pitch_sse.c +185 -0
  110. package/opus/celt/x86/pitch_sse.h +216 -0
  111. package/opus/celt/x86/pitch_sse2.c +95 -0
  112. package/opus/celt/x86/pitch_sse4_1.c +240 -0
  113. package/opus/celt/x86/vq_sse.h +52 -0
  114. package/opus/celt/x86/vq_sse2.c +217 -0
  115. package/opus/celt/x86/x86_arch_macros.h +47 -0
  116. package/opus/celt/x86/x86_celt_map.c +187 -0
  117. package/opus/celt/x86/x86cpu.c +184 -0
  118. package/opus/celt/x86/x86cpu.h +112 -0
  119. package/opus/celt_headers.mk +54 -0
  120. package/opus/celt_sources.mk +55 -0
  121. package/opus/cmake/CFeatureCheck.cmake +39 -0
  122. package/opus/cmake/OpusBuildtype.cmake +27 -0
  123. package/opus/cmake/OpusConfig.cmake +118 -0
  124. package/opus/cmake/OpusConfig.cmake.in +20 -0
  125. package/opus/cmake/OpusFunctions.cmake +231 -0
  126. package/opus/cmake/OpusPackageVersion.cmake +70 -0
  127. package/opus/cmake/OpusSources.cmake +71 -0
  128. package/opus/cmake/README.md +132 -0
  129. package/opus/cmake/RunTest.cmake +61 -0
  130. package/opus/cmake/config.h.cmake.in +1 -0
  131. package/opus/cmake/cpu_info_by_asm.c +31 -0
  132. package/opus/cmake/cpu_info_by_c.c +9 -0
  133. package/opus/cmake/vla.c +7 -0
  134. package/opus/configure.ac +1091 -0
  135. package/opus/dnn/LPCNet.yml +24 -0
  136. package/opus/dnn/README +1 -0
  137. package/opus/dnn/README.md +126 -0
  138. package/opus/dnn/adaconvtest.c +449 -0
  139. package/opus/dnn/arm/arm_dnn_map.c +88 -0
  140. package/opus/dnn/arm/dnn_arm.h +104 -0
  141. package/opus/dnn/arm/nnet_dotprod.c +38 -0
  142. package/opus/dnn/arm/nnet_neon.c +38 -0
  143. package/opus/dnn/burg.c +246 -0
  144. package/opus/dnn/burg.h +41 -0
  145. package/opus/dnn/common.h +56 -0
  146. package/opus/dnn/datasets.txt +163 -0
  147. package/opus/dnn/download_model.bat +9 -0
  148. package/opus/dnn/download_model.sh +30 -0
  149. package/opus/dnn/dred_coding.c +44 -0
  150. package/opus/dnn/dred_coding.h +36 -0
  151. package/opus/dnn/dred_config.h +54 -0
  152. package/opus/dnn/dred_decoder.c +129 -0
  153. package/opus/dnn/dred_decoder.h +49 -0
  154. package/opus/dnn/dred_encoder.c +363 -0
  155. package/opus/dnn/dred_encoder.h +71 -0
  156. package/opus/dnn/dred_rdovae.h +42 -0
  157. package/opus/dnn/dred_rdovae_dec.c +139 -0
  158. package/opus/dnn/dred_rdovae_dec.h +53 -0
  159. package/opus/dnn/dred_rdovae_enc.c +110 -0
  160. package/opus/dnn/dred_rdovae_enc.h +52 -0
  161. package/opus/dnn/dump_data.c +238 -0
  162. package/opus/dnn/dump_lpcnet_tables.c +104 -0
  163. package/opus/dnn/fargan.c +225 -0
  164. package/opus/dnn/fargan.h +68 -0
  165. package/opus/dnn/fargan_demo.c +217 -0
  166. package/opus/dnn/freq.c +328 -0
  167. package/opus/dnn/freq.h +61 -0
  168. package/opus/dnn/fwgan.c +322 -0
  169. package/opus/dnn/fwgan.h +83 -0
  170. package/opus/dnn/kiss99.c +81 -0
  171. package/opus/dnn/kiss99.h +46 -0
  172. package/opus/dnn/lossgen.c +192 -0
  173. package/opus/dnn/lossgen.h +55 -0
  174. package/opus/dnn/lossgen_demo.c +22 -0
  175. package/opus/dnn/lpcnet.c +283 -0
  176. package/opus/dnn/lpcnet.h +183 -0
  177. package/opus/dnn/lpcnet_enc.c +230 -0
  178. package/opus/dnn/lpcnet_plc.c +211 -0
  179. package/opus/dnn/lpcnet_private.h +90 -0
  180. package/opus/dnn/lpcnet_tables.c +307 -0
  181. package/opus/dnn/meson.build +64 -0
  182. package/opus/dnn/nndsp.c +416 -0
  183. package/opus/dnn/nndsp.h +143 -0
  184. package/opus/dnn/nnet.c +149 -0
  185. package/opus/dnn/nnet.h +163 -0
  186. package/opus/dnn/nnet_arch.h +247 -0
  187. package/opus/dnn/nnet_default.c +35 -0
  188. package/opus/dnn/osce.c +1419 -0
  189. package/opus/dnn/osce.h +84 -0
  190. package/opus/dnn/osce_config.h +60 -0
  191. package/opus/dnn/osce_features.c +454 -0
  192. package/opus/dnn/osce_features.h +50 -0
  193. package/opus/dnn/osce_structs.h +125 -0
  194. package/opus/dnn/parse_lpcnet_weights.c +238 -0
  195. package/opus/dnn/pitchdnn.c +79 -0
  196. package/opus/dnn/pitchdnn.h +34 -0
  197. package/opus/dnn/tansig_table.h +50 -0
  198. package/opus/dnn/test_vec.c +128 -0
  199. package/opus/dnn/torch/dnntools/dnntools/__init__.py +2 -0
  200. package/opus/dnn/torch/dnntools/dnntools/quantization/__init__.py +1 -0
  201. package/opus/dnn/torch/dnntools/dnntools/quantization/softquant.py +113 -0
  202. package/opus/dnn/torch/dnntools/dnntools/relegance/__init__.py +2 -0
  203. package/opus/dnn/torch/dnntools/dnntools/relegance/meta_critic.py +85 -0
  204. package/opus/dnn/torch/dnntools/dnntools/relegance/relegance.py +449 -0
  205. package/opus/dnn/torch/dnntools/dnntools/sparsification/__init__.py +6 -0
  206. package/opus/dnn/torch/dnntools/dnntools/sparsification/base_sparsifier.py +58 -0
  207. package/opus/dnn/torch/dnntools/dnntools/sparsification/common.py +123 -0
  208. package/opus/dnn/torch/dnntools/dnntools/sparsification/conv1d_sparsifier.py +133 -0
  209. package/opus/dnn/torch/dnntools/dnntools/sparsification/conv_transpose1d_sparsifier.py +134 -0
  210. package/opus/dnn/torch/dnntools/dnntools/sparsification/gru_sparsifier.py +178 -0
  211. package/opus/dnn/torch/dnntools/dnntools/sparsification/linear_sparsifier.py +128 -0
  212. package/opus/dnn/torch/dnntools/dnntools/sparsification/utils.py +64 -0
  213. package/opus/dnn/torch/dnntools/requirements.txt +1 -0
  214. package/opus/dnn/torch/dnntools/setup.py +48 -0
  215. package/opus/dnn/torch/fargan/README.md +54 -0
  216. package/opus/dnn/torch/fargan/adv_train_fargan.py +277 -0
  217. package/opus/dnn/torch/fargan/dataset.py +61 -0
  218. package/opus/dnn/torch/fargan/dump_fargan_weights.py +112 -0
  219. package/opus/dnn/torch/fargan/fargan.py +322 -0
  220. package/opus/dnn/torch/fargan/filters.py +46 -0
  221. package/opus/dnn/torch/fargan/rc.py +29 -0
  222. package/opus/dnn/torch/fargan/stft_loss.py +186 -0
  223. package/opus/dnn/torch/fargan/test_fargan.py +128 -0
  224. package/opus/dnn/torch/fargan/train_fargan.py +168 -0
  225. package/opus/dnn/torch/fwgan/dump_model_weights.py +88 -0
  226. package/opus/dnn/torch/fwgan/inference.py +141 -0
  227. package/opus/dnn/torch/fwgan/models/__init__.py +7 -0
  228. package/opus/dnn/torch/fwgan/models/fwgan400.py +308 -0
  229. package/opus/dnn/torch/fwgan/models/fwgan500.py +260 -0
  230. package/opus/dnn/torch/lossgen/README.md +27 -0
  231. package/opus/dnn/torch/lossgen/export_lossgen.py +101 -0
  232. package/opus/dnn/torch/lossgen/lossgen.py +29 -0
  233. package/opus/dnn/torch/lossgen/process_data.sh +17 -0
  234. package/opus/dnn/torch/lossgen/test_lossgen.py +42 -0
  235. package/opus/dnn/torch/lossgen/train_lossgen.py +99 -0
  236. package/opus/dnn/torch/lpcnet/README.md +27 -0
  237. package/opus/dnn/torch/lpcnet/add_dataset_config.py +77 -0
  238. package/opus/dnn/torch/lpcnet/data/__init__.py +1 -0
  239. package/opus/dnn/torch/lpcnet/data/lpcnet_dataset.py +227 -0
  240. package/opus/dnn/torch/lpcnet/engine/lpcnet_engine.py +141 -0
  241. package/opus/dnn/torch/lpcnet/make_default_setup.py +56 -0
  242. package/opus/dnn/torch/lpcnet/make_test_config.py +78 -0
  243. package/opus/dnn/torch/lpcnet/models/__init__.py +8 -0
  244. package/opus/dnn/torch/lpcnet/models/lpcnet.py +303 -0
  245. package/opus/dnn/torch/lpcnet/models/multi_rate_lpcnet.py +437 -0
  246. package/opus/dnn/torch/lpcnet/print_lpcnet_complexity.py +64 -0
  247. package/opus/dnn/torch/lpcnet/scripts/collect_multi_run_results.py +190 -0
  248. package/opus/dnn/torch/lpcnet/scripts/loop_run.sh +52 -0
  249. package/opus/dnn/torch/lpcnet/scripts/make_animation.py +67 -0
  250. package/opus/dnn/torch/lpcnet/scripts/modify_dataset_target.py +17 -0
  251. package/opus/dnn/torch/lpcnet/scripts/multi_run.sh +17 -0
  252. package/opus/dnn/torch/lpcnet/scripts/run_inference_test.sh +22 -0
  253. package/opus/dnn/torch/lpcnet/scripts/update_checkpoints.py +54 -0
  254. package/opus/dnn/torch/lpcnet/scripts/update_output_folder.sh +22 -0
  255. package/opus/dnn/torch/lpcnet/scripts/update_setups.py +57 -0
  256. package/opus/dnn/torch/lpcnet/test_lpcnet.py +89 -0
  257. package/opus/dnn/torch/lpcnet/train_lpcnet.py +272 -0
  258. package/opus/dnn/torch/lpcnet/utils/__init__.py +4 -0
  259. package/opus/dnn/torch/lpcnet/utils/data.py +141 -0
  260. package/opus/dnn/torch/lpcnet/utils/endoscopy.py +234 -0
  261. package/opus/dnn/torch/lpcnet/utils/layers/__init__.py +3 -0
  262. package/opus/dnn/torch/lpcnet/utils/layers/dual_fc.py +44 -0
  263. package/opus/dnn/torch/lpcnet/utils/layers/pcm_embeddings.py +71 -0
  264. package/opus/dnn/torch/lpcnet/utils/layers/subconditioner.py +497 -0
  265. package/opus/dnn/torch/lpcnet/utils/misc.py +65 -0
  266. package/opus/dnn/torch/lpcnet/utils/pcm.py +35 -0
  267. package/opus/dnn/torch/lpcnet/utils/sample.py +44 -0
  268. package/opus/dnn/torch/lpcnet/utils/sparsification/__init__.py +2 -0
  269. package/opus/dnn/torch/lpcnet/utils/sparsification/common.py +121 -0
  270. package/opus/dnn/torch/lpcnet/utils/sparsification/gru_sparsifier.py +187 -0
  271. package/opus/dnn/torch/lpcnet/utils/templates.py +157 -0
  272. package/opus/dnn/torch/lpcnet/utils/ulaw.py +58 -0
  273. package/opus/dnn/torch/lpcnet/utils/wav.py +43 -0
  274. package/opus/dnn/torch/neural-pitch/README.md +18 -0
  275. package/opus/dnn/torch/neural-pitch/data_augmentation.py +149 -0
  276. package/opus/dnn/torch/neural-pitch/download_demand.sh +43 -0
  277. package/opus/dnn/torch/neural-pitch/evaluation.py +349 -0
  278. package/opus/dnn/torch/neural-pitch/experiments.py +38 -0
  279. package/opus/dnn/torch/neural-pitch/export_neuralpitch_weights.py +109 -0
  280. package/opus/dnn/torch/neural-pitch/models.py +178 -0
  281. package/opus/dnn/torch/neural-pitch/neural_pitch_update.py +179 -0
  282. package/opus/dnn/torch/neural-pitch/ptdb_process.sh +34 -0
  283. package/opus/dnn/torch/neural-pitch/run_crepe.py +72 -0
  284. package/opus/dnn/torch/neural-pitch/training.py +162 -0
  285. package/opus/dnn/torch/neural-pitch/utils.py +59 -0
  286. package/opus/dnn/torch/osce/README.md +66 -0
  287. package/opus/dnn/torch/osce/adv_train_model.py +462 -0
  288. package/opus/dnn/torch/osce/adv_train_vocoder.py +451 -0
  289. package/opus/dnn/torch/osce/create_testvectors.py +165 -0
  290. package/opus/dnn/torch/osce/data/__init__.py +2 -0
  291. package/opus/dnn/torch/osce/data/lpcnet_vocoding_dataset.py +225 -0
  292. package/opus/dnn/torch/osce/data/silk_conversion_set.py +132 -0
  293. package/opus/dnn/torch/osce/data/silk_enhancement_set.py +140 -0
  294. package/opus/dnn/torch/osce/engine/engine.py +103 -0
  295. package/opus/dnn/torch/osce/engine/vocoder_engine.py +101 -0
  296. package/opus/dnn/torch/osce/export_model_weights.py +174 -0
  297. package/opus/dnn/torch/osce/losses/stft_loss.py +277 -0
  298. package/opus/dnn/torch/osce/losses/td_lowpass.py +34 -0
  299. package/opus/dnn/torch/osce/make_default_setup.py +93 -0
  300. package/opus/dnn/torch/osce/models/__init__.py +42 -0
  301. package/opus/dnn/torch/osce/models/fd_discriminator.py +974 -0
  302. package/opus/dnn/torch/osce/models/lace.py +190 -0
  303. package/opus/dnn/torch/osce/models/lavoce.py +274 -0
  304. package/opus/dnn/torch/osce/models/lavoce_400.py +254 -0
  305. package/opus/dnn/torch/osce/models/lpcnet_feature_net.py +91 -0
  306. package/opus/dnn/torch/osce/models/nns_base.py +69 -0
  307. package/opus/dnn/torch/osce/models/no_lace.py +218 -0
  308. package/opus/dnn/torch/osce/models/scale_embedding.py +68 -0
  309. package/opus/dnn/torch/osce/models/shape_up_48.py +179 -0
  310. package/opus/dnn/torch/osce/models/silk_feature_net.py +86 -0
  311. package/opus/dnn/torch/osce/models/silk_feature_net_pl.py +127 -0
  312. package/opus/dnn/torch/osce/requirements.txt +9 -0
  313. package/opus/dnn/torch/osce/resources/training_files.txt +107716 -0
  314. package/opus/dnn/torch/osce/resources/validation_files.txt +26929 -0
  315. package/opus/dnn/torch/osce/scripts/concatenator.py +85 -0
  316. package/opus/dnn/torch/osce/silk_16_to_48.py +28 -0
  317. package/opus/dnn/torch/osce/stndrd/evaluation/commonvoice_clip_selection.py +123 -0
  318. package/opus/dnn/torch/osce/stndrd/evaluation/create_input_data.sh +25 -0
  319. package/opus/dnn/torch/osce/stndrd/evaluation/env.rc +7 -0
  320. package/opus/dnn/torch/osce/stndrd/evaluation/evaluate.py +113 -0
  321. package/opus/dnn/torch/osce/stndrd/evaluation/lace_loss_metric.py +330 -0
  322. package/opus/dnn/torch/osce/stndrd/evaluation/make_boxplots.py +116 -0
  323. package/opus/dnn/torch/osce/stndrd/evaluation/make_boxplots_moctest.py +109 -0
  324. package/opus/dnn/torch/osce/stndrd/evaluation/make_tables.py +124 -0
  325. package/opus/dnn/torch/osce/stndrd/evaluation/make_tables_moctest.py +121 -0
  326. package/opus/dnn/torch/osce/stndrd/evaluation/moc.py +182 -0
  327. package/opus/dnn/torch/osce/stndrd/evaluation/moc2.py +190 -0
  328. package/opus/dnn/torch/osce/stndrd/evaluation/process_dataset.sh +98 -0
  329. package/opus/dnn/torch/osce/stndrd/evaluation/run_nomad.py +138 -0
  330. package/opus/dnn/torch/osce/stndrd/evaluation/run_osce_test.py +196 -0
  331. package/opus/dnn/torch/osce/stndrd/presentation/endoscopy.py +205 -0
  332. package/opus/dnn/torch/osce/stndrd/presentation/lace_demo.ipynb +313 -0
  333. package/opus/dnn/torch/osce/stndrd/presentation/linear_prediction.ipynb +320 -0
  334. package/opus/dnn/torch/osce/stndrd/presentation/playback.py +25 -0
  335. package/opus/dnn/torch/osce/stndrd/presentation/postfilter.ipynb +275 -0
  336. package/opus/dnn/torch/osce/stndrd/presentation/spectrogram.ipynb +173 -0
  337. package/opus/dnn/torch/osce/test_model.py +96 -0
  338. package/opus/dnn/torch/osce/test_vocoder.py +103 -0
  339. package/opus/dnn/torch/osce/train_model.py +307 -0
  340. package/opus/dnn/torch/osce/train_vocoder.py +287 -0
  341. package/opus/dnn/torch/osce/utils/ada_conv.py +71 -0
  342. package/opus/dnn/torch/osce/utils/complexity.py +8 -0
  343. package/opus/dnn/torch/osce/utils/endoscopy.py +205 -0
  344. package/opus/dnn/torch/osce/utils/layers/fir.py +27 -0
  345. package/opus/dnn/torch/osce/utils/layers/limited_adaptive_comb1d.py +230 -0
  346. package/opus/dnn/torch/osce/utils/layers/limited_adaptive_conv1d.py +200 -0
  347. package/opus/dnn/torch/osce/utils/layers/noise_shaper.py +100 -0
  348. package/opus/dnn/torch/osce/utils/layers/pitch_auto_correlator.py +84 -0
  349. package/opus/dnn/torch/osce/utils/layers/silk_upsampler.py +167 -0
  350. package/opus/dnn/torch/osce/utils/layers/td_shaper.py +145 -0
  351. package/opus/dnn/torch/osce/utils/lpcnet_features.py +112 -0
  352. package/opus/dnn/torch/osce/utils/misc.py +95 -0
  353. package/opus/dnn/torch/osce/utils/moc.py +153 -0
  354. package/opus/dnn/torch/osce/utils/pitch.py +122 -0
  355. package/opus/dnn/torch/osce/utils/silk_features.py +144 -0
  356. package/opus/dnn/torch/osce/utils/softquant.py +110 -0
  357. package/opus/dnn/torch/osce/utils/spec.py +210 -0
  358. package/opus/dnn/torch/osce/utils/templates.py +347 -0
  359. package/opus/dnn/torch/plc/export_plc.py +100 -0
  360. package/opus/dnn/torch/plc/plc.py +144 -0
  361. package/opus/dnn/torch/plc/plc_dataset.py +60 -0
  362. package/opus/dnn/torch/plc/train_plc.py +145 -0
  363. package/opus/dnn/torch/rdovae/README.md +55 -0
  364. package/opus/dnn/torch/rdovae/download_datasets.sh +6 -0
  365. package/opus/dnn/torch/rdovae/export_rdovae_weights.py +365 -0
  366. package/opus/dnn/torch/rdovae/fec_encoder.py +212 -0
  367. package/opus/dnn/torch/rdovae/import_rdovae_weights.py +143 -0
  368. package/opus/dnn/torch/rdovae/packets/__init__.py +1 -0
  369. package/opus/dnn/torch/rdovae/packets/fec_packets.c +142 -0
  370. package/opus/dnn/torch/rdovae/packets/fec_packets.h +34 -0
  371. package/opus/dnn/torch/rdovae/packets/fec_packets.py +108 -0
  372. package/opus/dnn/torch/rdovae/process_speech.sh +7 -0
  373. package/opus/dnn/torch/rdovae/rdovae/__init__.py +2 -0
  374. package/opus/dnn/torch/rdovae/rdovae/dataset.py +67 -0
  375. package/opus/dnn/torch/rdovae/rdovae/rdovae.py +719 -0
  376. package/opus/dnn/torch/rdovae/requirements.txt +4 -0
  377. package/opus/dnn/torch/rdovae/train_rdovae.py +278 -0
  378. package/opus/dnn/torch/testsuite/README.md +46 -0
  379. package/opus/dnn/torch/testsuite/examples/lpcnet_c_example.yml +6 -0
  380. package/opus/dnn/torch/testsuite/examples/lpcnet_c_plc_example.yml +5 -0
  381. package/opus/dnn/torch/testsuite/examples/lpcnet_torch_example.yml +5 -0
  382. package/opus/dnn/torch/testsuite/requirements.txt +12 -0
  383. package/opus/dnn/torch/testsuite/run_test.py +375 -0
  384. package/opus/dnn/torch/testsuite/utils/__init__.py +0 -0
  385. package/opus/dnn/torch/testsuite/utils/files.py +54 -0
  386. package/opus/dnn/torch/testsuite/utils/pesq.py +43 -0
  387. package/opus/dnn/torch/testsuite/utils/pitch.py +61 -0
  388. package/opus/dnn/torch/weight-exchange/README.md +21 -0
  389. package/opus/dnn/torch/weight-exchange/requirements.txt +1 -0
  390. package/opus/dnn/torch/weight-exchange/setup.py +48 -0
  391. package/opus/dnn/torch/weight-exchange/wexchange/__init__.py +30 -0
  392. package/opus/dnn/torch/weight-exchange/wexchange/c_export/__init__.py +31 -0
  393. package/opus/dnn/torch/weight-exchange/wexchange/c_export/c_writer.py +181 -0
  394. package/opus/dnn/torch/weight-exchange/wexchange/c_export/common.py +386 -0
  395. package/opus/dnn/torch/weight-exchange/wexchange/tf/__init__.py +5 -0
  396. package/opus/dnn/torch/weight-exchange/wexchange/tf/tf.py +188 -0
  397. package/opus/dnn/torch/weight-exchange/wexchange/torch/__init__.py +37 -0
  398. package/opus/dnn/torch/weight-exchange/wexchange/torch/torch.py +433 -0
  399. package/opus/dnn/training_tf2/dataloader.py +49 -0
  400. package/opus/dnn/training_tf2/decode_rdovae.py +111 -0
  401. package/opus/dnn/training_tf2/diffembed.py +49 -0
  402. package/opus/dnn/training_tf2/dump_lpcnet.py +388 -0
  403. package/opus/dnn/training_tf2/dump_plc.py +296 -0
  404. package/opus/dnn/training_tf2/dump_rdovae.py +306 -0
  405. package/opus/dnn/training_tf2/encode_rdovae.py +125 -0
  406. package/opus/dnn/training_tf2/fec_encoder.py +256 -0
  407. package/opus/dnn/training_tf2/fec_packets.c +142 -0
  408. package/opus/dnn/training_tf2/fec_packets.h +34 -0
  409. package/opus/dnn/training_tf2/fec_packets.py +108 -0
  410. package/opus/dnn/training_tf2/keraslayerdump.py +189 -0
  411. package/opus/dnn/training_tf2/lossfuncs.py +99 -0
  412. package/opus/dnn/training_tf2/lpcnet.py +339 -0
  413. package/opus/dnn/training_tf2/lpcnet_plc.py +101 -0
  414. package/opus/dnn/training_tf2/mdense.py +95 -0
  415. package/opus/dnn/training_tf2/pade.py +70 -0
  416. package/opus/dnn/training_tf2/parameters.py +29 -0
  417. package/opus/dnn/training_tf2/plc_loader.py +73 -0
  418. package/opus/dnn/training_tf2/rdovae.py +372 -0
  419. package/opus/dnn/training_tf2/rdovae_exchange.py +138 -0
  420. package/opus/dnn/training_tf2/rdovae_import.py +123 -0
  421. package/opus/dnn/training_tf2/test_lpcnet.py +120 -0
  422. package/opus/dnn/training_tf2/test_plc.py +92 -0
  423. package/opus/dnn/training_tf2/tf_funcs.py +70 -0
  424. package/opus/dnn/training_tf2/train_lpcnet.py +214 -0
  425. package/opus/dnn/training_tf2/train_plc.py +197 -0
  426. package/opus/dnn/training_tf2/train_rdovae.py +151 -0
  427. package/opus/dnn/training_tf2/ulaw.py +19 -0
  428. package/opus/dnn/training_tf2/uniform_noise.py +78 -0
  429. package/opus/dnn/vec.h +389 -0
  430. package/opus/dnn/vec_avx.h +884 -0
  431. package/opus/dnn/vec_neon.h +473 -0
  432. package/opus/dnn/write_lpcnet_weights.c +97 -0
  433. package/opus/dnn/x86/dnn_x86.h +121 -0
  434. package/opus/dnn/x86/nnet_avx2.c +40 -0
  435. package/opus/dnn/x86/nnet_sse2.c +40 -0
  436. package/opus/dnn/x86/nnet_sse4_1.c +40 -0
  437. package/opus/dnn/x86/x86_dnn_map.c +83 -0
  438. package/opus/doc/Doxyfile.in +340 -0
  439. package/opus/doc/Makefile.am +45 -0
  440. package/opus/doc/build_draft.sh +113 -0
  441. package/opus/doc/build_isobmff.sh +50 -0
  442. package/opus/doc/build_oggdraft.sh +52 -0
  443. package/opus/doc/customdoxygen.css +1011 -0
  444. package/opus/doc/draft-ietf-codec-oggopus.xml +1873 -0
  445. package/opus/doc/draft-ietf-codec-opus-update.xml +513 -0
  446. package/opus/doc/draft-ietf-codec-opus.xml +8276 -0
  447. package/opus/doc/draft-ietf-payload-rtp-opus.xml +960 -0
  448. package/opus/doc/footer.html +32 -0
  449. package/opus/doc/header.html +61 -0
  450. package/opus/doc/meson.build +33 -0
  451. package/opus/doc/opus_in_isobmff.css +60 -0
  452. package/opus/doc/opus_in_isobmff.html +692 -0
  453. package/opus/doc/opus_logo.svg +157 -0
  454. package/opus/doc/opus_update.patch +244 -0
  455. package/opus/doc/release.txt +43 -0
  456. package/opus/doc/trivial_example.c +171 -0
  457. package/opus/include/meson.build +13 -0
  458. package/opus/include/opus.h +1172 -0
  459. package/opus/include/opus_custom.h +381 -0
  460. package/opus/include/opus_defines.h +830 -0
  461. package/opus/include/opus_multistream.h +736 -0
  462. package/opus/include/opus_projection.h +643 -0
  463. package/opus/include/opus_types.h +166 -0
  464. package/opus/lpcnet_headers.mk +44 -0
  465. package/opus/lpcnet_sources.mk +44 -0
  466. package/opus/m4/as-gcc-inline-assembly.m4 +98 -0
  467. package/opus/m4/ax_add_fortify_source.m4 +53 -0
  468. package/opus/m4/opus-intrinsics.m4 +29 -0
  469. package/opus/meson/README.md +88 -0
  470. package/opus/meson/get-version.py +86 -0
  471. package/opus/meson/read-sources-list.py +28 -0
  472. package/opus/meson.build +745 -0
  473. package/opus/meson_options.txt +27 -0
  474. package/opus/opus-uninstalled.pc.in +12 -0
  475. package/opus/opus.m4 +117 -0
  476. package/opus/opus.pc.in +16 -0
  477. package/opus/opus_headers.mk +8 -0
  478. package/opus/opus_sources.mk +17 -0
  479. package/opus/releases.sha2 +85 -0
  480. package/opus/scripts/dump_rnn.py +57 -0
  481. package/opus/scripts/local_build.py +220 -0
  482. package/opus/scripts/rnn_train.py +67 -0
  483. package/opus/scripts/shrink_model.sh +7 -0
  484. package/opus/silk/A2NLSF.c +267 -0
  485. package/opus/silk/API.h +156 -0
  486. package/opus/silk/CNG.c +188 -0
  487. package/opus/silk/HP_variable_cutoff.c +77 -0
  488. package/opus/silk/Inlines.h +188 -0
  489. package/opus/silk/LPC_analysis_filter.c +111 -0
  490. package/opus/silk/LPC_fit.c +82 -0
  491. package/opus/silk/LPC_inv_pred_gain.c +141 -0
  492. package/opus/silk/LP_variable_cutoff.c +135 -0
  493. package/opus/silk/MacroCount.h +710 -0
  494. package/opus/silk/MacroDebug.h +945 -0
  495. package/opus/silk/NLSF2A.c +141 -0
  496. package/opus/silk/NLSF_VQ.c +76 -0
  497. package/opus/silk/NLSF_VQ_weights_laroia.c +80 -0
  498. package/opus/silk/NLSF_decode.c +93 -0
  499. package/opus/silk/NLSF_del_dec_quant.c +215 -0
  500. package/opus/silk/NLSF_encode.c +124 -0
  501. package/opus/silk/NLSF_stabilize.c +142 -0
  502. package/opus/silk/NLSF_unpack.c +55 -0
  503. package/opus/silk/NSQ.c +437 -0
  504. package/opus/silk/NSQ.h +101 -0
  505. package/opus/silk/NSQ_del_dec.c +733 -0
  506. package/opus/silk/PLC.c +493 -0
  507. package/opus/silk/PLC.h +65 -0
  508. package/opus/silk/SigProc_FIX.h +643 -0
  509. package/opus/silk/VAD.c +360 -0
  510. package/opus/silk/VQ_WMat_EC.c +131 -0
  511. package/opus/silk/ana_filt_bank_1.c +74 -0
  512. package/opus/silk/arm/LPC_inv_pred_gain_arm.h +57 -0
  513. package/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c +288 -0
  514. package/opus/silk/arm/NSQ_del_dec_arm.h +100 -0
  515. package/opus/silk/arm/NSQ_del_dec_neon_intr.c +1138 -0
  516. package/opus/silk/arm/NSQ_neon.c +112 -0
  517. package/opus/silk/arm/NSQ_neon.h +114 -0
  518. package/opus/silk/arm/SigProc_FIX_armv4.h +47 -0
  519. package/opus/silk/arm/SigProc_FIX_armv5e.h +61 -0
  520. package/opus/silk/arm/arm_silk_map.c +128 -0
  521. package/opus/silk/arm/biquad_alt_arm.h +68 -0
  522. package/opus/silk/arm/biquad_alt_neon_intr.c +156 -0
  523. package/opus/silk/arm/macros_arm64.h +39 -0
  524. package/opus/silk/arm/macros_armv4.h +110 -0
  525. package/opus/silk/arm/macros_armv5e.h +220 -0
  526. package/opus/silk/biquad_alt.c +121 -0
  527. package/opus/silk/bwexpander.c +51 -0
  528. package/opus/silk/bwexpander_32.c +51 -0
  529. package/opus/silk/check_control_input.c +106 -0
  530. package/opus/silk/code_signs.c +115 -0
  531. package/opus/silk/control.h +161 -0
  532. package/opus/silk/control_SNR.c +113 -0
  533. package/opus/silk/control_audio_bandwidth.c +132 -0
  534. package/opus/silk/control_codec.c +423 -0
  535. package/opus/silk/debug.c +174 -0
  536. package/opus/silk/debug.h +267 -0
  537. package/opus/silk/dec_API.c +465 -0
  538. package/opus/silk/decode_core.c +243 -0
  539. package/opus/silk/decode_frame.c +169 -0
  540. package/opus/silk/decode_indices.c +151 -0
  541. package/opus/silk/decode_parameters.c +115 -0
  542. package/opus/silk/decode_pitch.c +77 -0
  543. package/opus/silk/decode_pulses.c +115 -0
  544. package/opus/silk/decoder_set_fs.c +108 -0
  545. package/opus/silk/define.h +235 -0
  546. package/opus/silk/enc_API.c +593 -0
  547. package/opus/silk/encode_indices.c +181 -0
  548. package/opus/silk/encode_pulses.c +206 -0
  549. package/opus/silk/errors.h +98 -0
  550. package/opus/silk/fixed/LTP_analysis_filter_FIX.c +90 -0
  551. package/opus/silk/fixed/LTP_scale_ctrl_FIX.c +58 -0
  552. package/opus/silk/fixed/apply_sine_window_FIX.c +101 -0
  553. package/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h +68 -0
  554. package/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c +265 -0
  555. package/opus/silk/fixed/autocorr_FIX.c +48 -0
  556. package/opus/silk/fixed/burg_modified_FIX.c +280 -0
  557. package/opus/silk/fixed/corrMatrix_FIX.c +150 -0
  558. package/opus/silk/fixed/encode_frame_FIX.c +444 -0
  559. package/opus/silk/fixed/find_LPC_FIX.c +151 -0
  560. package/opus/silk/fixed/find_LTP_FIX.c +99 -0
  561. package/opus/silk/fixed/find_pitch_lags_FIX.c +143 -0
  562. package/opus/silk/fixed/find_pred_coefs_FIX.c +146 -0
  563. package/opus/silk/fixed/k2a_FIX.c +54 -0
  564. package/opus/silk/fixed/k2a_Q16_FIX.c +54 -0
  565. package/opus/silk/fixed/main_FIX.h +244 -0
  566. package/opus/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h +336 -0
  567. package/opus/silk/fixed/mips/prefilter_FIX_mipsr1.h +184 -0
  568. package/opus/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h +165 -0
  569. package/opus/silk/fixed/noise_shape_analysis_FIX.c +407 -0
  570. package/opus/silk/fixed/pitch_analysis_core_FIX.c +721 -0
  571. package/opus/silk/fixed/process_gains_FIX.c +117 -0
  572. package/opus/silk/fixed/regularize_correlations_FIX.c +47 -0
  573. package/opus/silk/fixed/residual_energy16_FIX.c +103 -0
  574. package/opus/silk/fixed/residual_energy_FIX.c +98 -0
  575. package/opus/silk/fixed/schur64_FIX.c +93 -0
  576. package/opus/silk/fixed/schur_FIX.c +107 -0
  577. package/opus/silk/fixed/structs_FIX.h +116 -0
  578. package/opus/silk/fixed/vector_ops_FIX.c +102 -0
  579. package/opus/silk/fixed/warped_autocorrelation_FIX.c +92 -0
  580. package/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c +400 -0
  581. package/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c +93 -0
  582. package/opus/silk/float/LPC_analysis_filter_FLP.c +249 -0
  583. package/opus/silk/float/LPC_inv_pred_gain_FLP.c +73 -0
  584. package/opus/silk/float/LTP_analysis_filter_FLP.c +75 -0
  585. package/opus/silk/float/LTP_scale_ctrl_FLP.c +58 -0
  586. package/opus/silk/float/SigProc_FLP.h +205 -0
  587. package/opus/silk/float/apply_sine_window_FLP.c +81 -0
  588. package/opus/silk/float/autocorrelation_FLP.c +53 -0
  589. package/opus/silk/float/burg_modified_FLP.c +187 -0
  590. package/opus/silk/float/bwexpander_FLP.c +49 -0
  591. package/opus/silk/float/corrMatrix_FLP.c +95 -0
  592. package/opus/silk/float/encode_frame_FLP.c +432 -0
  593. package/opus/silk/float/energy_FLP.c +59 -0
  594. package/opus/silk/float/find_LPC_FLP.c +105 -0
  595. package/opus/silk/float/find_LTP_FLP.c +65 -0
  596. package/opus/silk/float/find_pitch_lags_FLP.c +132 -0
  597. package/opus/silk/float/find_pred_coefs_FLP.c +117 -0
  598. package/opus/silk/float/inner_product_FLP.c +59 -0
  599. package/opus/silk/float/k2a_FLP.c +54 -0
  600. package/opus/silk/float/main_FLP.h +290 -0
  601. package/opus/silk/float/noise_shape_analysis_FLP.c +350 -0
  602. package/opus/silk/float/pitch_analysis_core_FLP.c +630 -0
  603. package/opus/silk/float/process_gains_FLP.c +103 -0
  604. package/opus/silk/float/regularize_correlations_FLP.c +48 -0
  605. package/opus/silk/float/residual_energy_FLP.c +117 -0
  606. package/opus/silk/float/scale_copy_vector_FLP.c +57 -0
  607. package/opus/silk/float/scale_vector_FLP.c +56 -0
  608. package/opus/silk/float/schur_FLP.c +70 -0
  609. package/opus/silk/float/sort_FLP.c +83 -0
  610. package/opus/silk/float/structs_FLP.h +112 -0
  611. package/opus/silk/float/warped_autocorrelation_FLP.c +75 -0
  612. package/opus/silk/float/wrappers_FLP.c +209 -0
  613. package/opus/silk/float/x86/inner_product_FLP_avx2.c +85 -0
  614. package/opus/silk/gain_quant.c +142 -0
  615. package/opus/silk/init_decoder.c +84 -0
  616. package/opus/silk/init_encoder.c +68 -0
  617. package/opus/silk/inner_prod_aligned.c +47 -0
  618. package/opus/silk/interpolate.c +51 -0
  619. package/opus/silk/lin2log.c +46 -0
  620. package/opus/silk/log2lin.c +58 -0
  621. package/opus/silk/macros.h +151 -0
  622. package/opus/silk/main.h +486 -0
  623. package/opus/silk/meson.build +69 -0
  624. package/opus/silk/mips/NSQ_del_dec_mipsr1.h +410 -0
  625. package/opus/silk/mips/macros_mipsr1.h +92 -0
  626. package/opus/silk/mips/sigproc_fix_mipsr1.h +60 -0
  627. package/opus/silk/pitch_est_defines.h +88 -0
  628. package/opus/silk/pitch_est_tables.c +99 -0
  629. package/opus/silk/process_NLSFs.c +107 -0
  630. package/opus/silk/quant_LTP_gains.c +132 -0
  631. package/opus/silk/resampler.c +215 -0
  632. package/opus/silk/resampler_down2.c +74 -0
  633. package/opus/silk/resampler_down2_3.c +103 -0
  634. package/opus/silk/resampler_private.h +88 -0
  635. package/opus/silk/resampler_private_AR2.c +55 -0
  636. package/opus/silk/resampler_private_IIR_FIR.c +107 -0
  637. package/opus/silk/resampler_private_down_FIR.c +194 -0
  638. package/opus/silk/resampler_private_up2_HQ.c +113 -0
  639. package/opus/silk/resampler_rom.c +96 -0
  640. package/opus/silk/resampler_rom.h +68 -0
  641. package/opus/silk/resampler_structs.h +60 -0
  642. package/opus/silk/shell_coder.c +151 -0
  643. package/opus/silk/sigm_Q15.c +76 -0
  644. package/opus/silk/sort.c +154 -0
  645. package/opus/silk/stereo_LR_to_MS.c +229 -0
  646. package/opus/silk/stereo_MS_to_LR.c +85 -0
  647. package/opus/silk/stereo_decode_pred.c +73 -0
  648. package/opus/silk/stereo_encode_pred.c +62 -0
  649. package/opus/silk/stereo_find_predictor.c +79 -0
  650. package/opus/silk/stereo_quant_pred.c +73 -0
  651. package/opus/silk/structs.h +357 -0
  652. package/opus/silk/sum_sqr_shift.c +83 -0
  653. package/opus/silk/table_LSF_cos.c +70 -0
  654. package/opus/silk/tables.h +114 -0
  655. package/opus/silk/tables_LTP.c +294 -0
  656. package/opus/silk/tables_NLSF_CB_NB_MB.c +195 -0
  657. package/opus/silk/tables_NLSF_CB_WB.c +234 -0
  658. package/opus/silk/tables_gain.c +63 -0
  659. package/opus/silk/tables_other.c +124 -0
  660. package/opus/silk/tables_pitch_lag.c +69 -0
  661. package/opus/silk/tables_pulses_per_block.c +264 -0
  662. package/opus/silk/tests/meson.build +8 -0
  663. package/opus/silk/tests/test_unit_LPC_inv_pred_gain.c +130 -0
  664. package/opus/silk/tuning_parameters.h +155 -0
  665. package/opus/silk/typedef.h +81 -0
  666. package/opus/silk/x86/NSQ_del_dec_avx2.c +1075 -0
  667. package/opus/silk/x86/NSQ_del_dec_sse4_1.c +915 -0
  668. package/opus/silk/x86/NSQ_sse4_1.c +772 -0
  669. package/opus/silk/x86/SigProc_FIX_sse.h +99 -0
  670. package/opus/silk/x86/VAD_sse4_1.c +289 -0
  671. package/opus/silk/x86/VQ_WMat_EC_sse4_1.c +173 -0
  672. package/opus/silk/x86/main_sse.h +299 -0
  673. package/opus/silk/x86/x86_silk_map.c +179 -0
  674. package/opus/silk_headers.mk +44 -0
  675. package/opus/silk_sources.mk +164 -0
  676. package/opus/src/analysis.c +979 -0
  677. package/opus/src/analysis.h +103 -0
  678. package/opus/src/extensions.c +663 -0
  679. package/opus/src/mapping_matrix.c +993 -0
  680. package/opus/src/mapping_matrix.h +165 -0
  681. package/opus/src/meson.build +45 -0
  682. package/opus/src/mlp.c +132 -0
  683. package/opus/src/mlp.h +60 -0
  684. package/opus/src/mlp_data.c +672 -0
  685. package/opus/src/opus.c +362 -0
  686. package/opus/src/opus_compare.c +382 -0
  687. package/opus/src/opus_decoder.c +1579 -0
  688. package/opus/src/opus_demo.c +1194 -0
  689. package/opus/src/opus_encoder.c +3180 -0
  690. package/opus/src/opus_multistream.c +92 -0
  691. package/opus/src/opus_multistream_decoder.c +563 -0
  692. package/opus/src/opus_multistream_encoder.c +1321 -0
  693. package/opus/src/opus_private.h +263 -0
  694. package/opus/src/opus_projection_decoder.c +283 -0
  695. package/opus/src/opus_projection_encoder.c +522 -0
  696. package/opus/src/repacketizer.c +469 -0
  697. package/opus/src/repacketizer_demo.c +247 -0
  698. package/opus/src/tansig_table.h +45 -0
  699. package/opus/tar_list.txt +28 -0
  700. package/opus/tests/meson.build +39 -0
  701. package/opus/tests/opus_build_test.sh +29 -0
  702. package/opus/tests/opus_decode_fuzzer.c +124 -0
  703. package/opus/tests/opus_decode_fuzzer.options +2 -0
  704. package/opus/tests/opus_encode_regressions.c +1034 -0
  705. package/opus/tests/random_config.sh +126 -0
  706. package/opus/tests/run_vectors.sh +143 -0
  707. package/opus/tests/test_opus_api.c +1904 -0
  708. package/opus/tests/test_opus_common.h +86 -0
  709. package/opus/tests/test_opus_custom.c +694 -0
  710. package/opus/tests/test_opus_decode.c +481 -0
  711. package/opus/tests/test_opus_dred.c +107 -0
  712. package/opus/tests/test_opus_encode.c +738 -0
  713. package/opus/tests/test_opus_extensions.c +750 -0
  714. package/opus/tests/test_opus_padding.c +94 -0
  715. package/opus/tests/test_opus_projection.c +384 -0
  716. package/opus/training/rnn_dump.py +66 -0
  717. package/opus/training/rnn_train.py +177 -0
  718. package/opus/training/txt2hdf5.py +12 -0
  719. package/opus/update_version +65 -0
  720. package/package.json +2 -2
  721. package/src/build-ffmpeg-msys.sh +8 -2
  722. package/test.mp4 +0 -0
@@ -0,0 +1,118 @@
1
+ if(__opus_config)
2
+ return()
3
+ endif()
4
+ set(__opus_config INCLUDED)
5
+
6
+ include(OpusFunctions)
7
+
8
+ configure_file(cmake/config.h.cmake.in config.h @ONLY)
9
+ add_definitions(-DHAVE_CONFIG_H)
10
+
11
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
12
+
13
+ if(MSVC)
14
+ # For compilers that have no notion of a C standard level,
15
+ # such as Microsoft Visual C++ before VS 16.7,
16
+ # this property has no effect.
17
+ set(CMAKE_C_STANDARD 11)
18
+ else()
19
+ set(CMAKE_C_STANDARD 99)
20
+ endif()
21
+
22
+ if(MSVC)
23
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
24
+ endif()
25
+
26
+ include(CFeatureCheck)
27
+ c_feature_check(VLA)
28
+
29
+ include(CheckIncludeFile)
30
+ check_include_file(alloca.h HAVE_ALLOCA_H)
31
+
32
+ include(CheckSymbolExists)
33
+ if(HAVE_ALLOCA_H)
34
+ add_definitions(-DHAVE_ALLOCA_H)
35
+ check_symbol_exists(alloca "alloca.h" USE_ALLOCA_SUPPORTED)
36
+ else()
37
+ check_symbol_exists(alloca "stdlib.h;malloc.h" USE_ALLOCA_SUPPORTED)
38
+ endif()
39
+
40
+ include(CMakePushCheckState)
41
+ cmake_push_check_state(RESET)
42
+ include(CheckLibraryExists)
43
+ check_library_exists(m floor "" HAVE_LIBM)
44
+ if(HAVE_LIBM)
45
+ list(APPEND OPUS_REQUIRED_LIBRARIES m)
46
+ set(CMAKE_REQUIRED_LIBRARIES m)
47
+ endif()
48
+
49
+ check_symbol_exists(lrintf "math.h" HAVE_LRINTF)
50
+ check_symbol_exists(lrint "math.h" HAVE_LRINT)
51
+ cmake_pop_check_state()
52
+
53
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[0-9]86|x86|X86|amd64|AMD64|x86_64)")
54
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
55
+ set(OPUS_CPU_X64 1)
56
+ else()
57
+ set(OPUS_CPU_X86 1)
58
+ endif()
59
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(arm|aarch64)")
60
+ set(OPUS_CPU_ARM 1)
61
+ endif()
62
+
63
+ if(NOT OPUS_DISABLE_INTRINSICS)
64
+ opus_supports_cpu_detection(RUNTIME_CPU_CAPABILITY_DETECTION)
65
+ endif()
66
+
67
+ if(OPUS_CPU_X86 OR OPUS_CPU_X64 AND NOT OPUS_DISABLE_INTRINSICS)
68
+ opus_detect_sse(COMPILER_SUPPORT_SIMD)
69
+ elseif(OPUS_CPU_ARM AND NOT OPUS_DISABLE_INTRINSICS)
70
+ opus_detect_neon(COMPILER_SUPPORT_NEON)
71
+ if(COMPILER_SUPPORT_NEON)
72
+ option(OPUS_USE_NEON "Option to enable NEON" ON)
73
+ option(OPUS_MAY_HAVE_NEON "Does runtime check for neon support" ON)
74
+ option(OPUS_PRESUME_NEON "Assume target CPU has NEON support" OFF)
75
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
76
+ set(OPUS_PRESUME_NEON ON)
77
+ elseif(CMAKE_SYSTEM_NAME MATCHES "iOS")
78
+ set(OPUS_PRESUME_NEON ON)
79
+ endif()
80
+ endif()
81
+ endif()
82
+
83
+ if(MSVC)
84
+ check_flag(FAST_MATH /fp:fast)
85
+ check_flag(STACK_PROTECTOR /GS)
86
+ check_flag(STACK_PROTECTOR_DISABLED /GS-)
87
+ else()
88
+ check_flag(FAST_MATH -ffast-math)
89
+ check_flag(STACK_PROTECTOR -fstack-protector-strong)
90
+ check_flag(HIDDEN_VISIBILITY -fvisibility=hidden)
91
+ set(FORTIFY_SOURCE_SUPPORTED 1)
92
+ endif()
93
+
94
+ if(MINGW)
95
+ # For MINGW we need to link ssp lib for security features such as
96
+ # stack protector and fortify_sources
97
+ check_library_exists(ssp __stack_chk_fail "" HAVE_LIBSSP)
98
+ if(NOT HAVE_LIBSSP)
99
+ message(WARNING "Could not find libssp in MinGW, disabling STACK_PROTECTOR and FORTIFY_SOURCE")
100
+ set(STACK_PROTECTOR_SUPPORTED 0)
101
+ set(FORTIFY_SOURCE_SUPPORTED 0)
102
+ endif()
103
+ endif()
104
+
105
+ if(MSVC)
106
+ # move cosmetic warnings to level 4
107
+ add_compile_options(/w44244 /w44305 /w44267)
108
+ else()
109
+ set(WARNING_LIST -Wall -W -Wstrict-prototypes -Wextra -Wcast-align -Wnested-externs -Wshadow)
110
+ include(CheckCCompilerFlag)
111
+ foreach(WARNING_FLAG ${WARNING_LIST})
112
+ string(REPLACE - "" WARNING_VAR ${WARNING_FLAG})
113
+ check_c_compiler_flag(${WARNING_FLAG} ${WARNING_VAR}_SUPPORTED)
114
+ if(${WARNING_VAR}_SUPPORTED)
115
+ add_compile_options(${WARNING_FLAG})
116
+ endif()
117
+ endforeach()
118
+ endif()
@@ -0,0 +1,20 @@
1
+ set(OPUS_VERSION @PROJECT_VERSION@)
2
+ set(OPUS_VERSION_STRING @PROJECT_VERSION@)
3
+ set(OPUS_VERSION_MAJOR @PROJECT_VERSION_MAJOR@)
4
+ set(OPUS_VERSION_MINOR @PROJECT_VERSION_MINOR@)
5
+ set(OPUS_VERSION_PATCH @PROJECT_VERSION_PATCH@)
6
+
7
+ @PACKAGE_INIT@
8
+
9
+ set_and_check(OPUS_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
10
+ set(OPUS_INCLUDE_DIR ${OPUS_INCLUDE_DIR};${OPUS_INCLUDE_DIR}/opus)
11
+ set(OPUS_INCLUDE_DIRS "@PACKAGE_INCLUDE_INSTALL_DIR@;@PACKAGE_INCLUDE_INSTALL_DIR@/opus")
12
+
13
+ include(${CMAKE_CURRENT_LIST_DIR}/OpusTargets.cmake)
14
+
15
+ set(OPUS_LIBRARY Opus::opus)
16
+ set(OPUS_LIBRARIES Opus::opus)
17
+
18
+ check_required_components(Opus)
19
+
20
+ set(OPUS_FOUND 1)
@@ -0,0 +1,231 @@
1
+ if(__opus_functions)
2
+ return()
3
+ endif()
4
+ set(__opus_functions INCLUDED)
5
+
6
+ function(get_library_version OPUS_LIBRARY_VERSION OPUS_LIBRARY_VERSION_MAJOR)
7
+ file(STRINGS configure.ac opus_lt_current_string
8
+ LIMIT_COUNT 1
9
+ REGEX "OPUS_LT_CURRENT=")
10
+ string(REGEX MATCH
11
+ "OPUS_LT_CURRENT=([0-9]*)"
12
+ _
13
+ ${opus_lt_current_string})
14
+ set(OPUS_LT_CURRENT ${CMAKE_MATCH_1})
15
+
16
+ file(STRINGS configure.ac opus_lt_revision_string
17
+ LIMIT_COUNT 1
18
+ REGEX "OPUS_LT_REVISION=")
19
+ string(REGEX MATCH
20
+ "OPUS_LT_REVISION=([0-9]*)"
21
+ _
22
+ ${opus_lt_revision_string})
23
+ set(OPUS_LT_REVISION ${CMAKE_MATCH_1})
24
+
25
+ file(STRINGS configure.ac opus_lt_age_string
26
+ LIMIT_COUNT 1
27
+ REGEX "OPUS_LT_AGE=")
28
+ string(REGEX MATCH
29
+ "OPUS_LT_AGE=([0-9]*)"
30
+ _
31
+ ${opus_lt_age_string})
32
+ set(OPUS_LT_AGE ${CMAKE_MATCH_1})
33
+
34
+ math(EXPR OPUS_LIBRARY_VERSION_MAJOR "${OPUS_LT_CURRENT} - ${OPUS_LT_AGE}")
35
+ set(OPUS_LIBRARY_VERSION_MINOR ${OPUS_LT_AGE})
36
+ set(OPUS_LIBRARY_VERSION_PATCH ${OPUS_LT_REVISION})
37
+ set(
38
+ OPUS_LIBRARY_VERSION
39
+ "${OPUS_LIBRARY_VERSION_MAJOR}.${OPUS_LIBRARY_VERSION_MINOR}.${OPUS_LIBRARY_VERSION_PATCH}"
40
+ PARENT_SCOPE)
41
+ set(OPUS_LIBRARY_VERSION_MAJOR ${OPUS_LIBRARY_VERSION_MAJOR} PARENT_SCOPE)
42
+ endfunction()
43
+
44
+ function(check_flag NAME FLAG)
45
+ include(CheckCCompilerFlag)
46
+ check_c_compiler_flag(${FLAG} ${NAME}_SUPPORTED)
47
+ endfunction()
48
+
49
+ include(CheckIncludeFile)
50
+
51
+ # This function determines if the compiler has support for SSE, SSE2, SSE4.1, AVX,
52
+ # AVX2 and FMA. Should the target systems potentially lack SSE support, the
53
+ # OPUS_MAY_HAVE_SSE option is recommended for use. If, however, the target system is
54
+ # assured to support SSE, the OPUS_PRESUME_SSE option can be employed, thus
55
+ # eliminating the necessity for an SSE runtime check.
56
+ function(opus_detect_sse COMPILER_SUPPORT_SIMD)
57
+ message(STATUS "Check SIMD support by compiler")
58
+ check_include_file(xmmintrin.h HAVE_XMMINTRIN_H) # SSE1
59
+ if(HAVE_XMMINTRIN_H)
60
+ if(MSVC)
61
+ # different arch options for 32 and 64 bit target for MSVC
62
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
63
+ check_flag(SSE1 /arch:SSE)
64
+ else()
65
+ set(SSE1_SUPPORTED
66
+ 1
67
+ PARENT_SCOPE)
68
+ endif()
69
+ else()
70
+ check_flag(SSE1 -msse)
71
+ endif()
72
+ else()
73
+ set(SSE1_SUPPORTED
74
+ 0
75
+ PARENT_SCOPE)
76
+ endif()
77
+
78
+ check_include_file(emmintrin.h HAVE_EMMINTRIN_H) # SSE2
79
+ if(HAVE_EMMINTRIN_H)
80
+ if(MSVC)
81
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
82
+ check_flag(SSE2 /arch:SSE2)
83
+ else()
84
+ set(SSE2_SUPPORTED
85
+ 1
86
+ PARENT_SCOPE)
87
+ endif()
88
+ else()
89
+ check_flag(SSE2 -msse2)
90
+ endif()
91
+ else()
92
+ set(SSE2_SUPPORTED
93
+ 0
94
+ PARENT_SCOPE)
95
+ endif()
96
+
97
+ check_include_file(smmintrin.h HAVE_SMMINTRIN_H) # SSE4.1
98
+ if(HAVE_SMMINTRIN_H)
99
+ if(MSVC)
100
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
101
+ check_flag(SSE4_1 /arch:SSE2) # SSE2 and above
102
+ else()
103
+ set(SSE4_1_SUPPORTED
104
+ 1
105
+ PARENT_SCOPE)
106
+ endif()
107
+ else()
108
+ check_flag(SSE4_1 -msse4.1)
109
+ endif()
110
+ else()
111
+ set(SSE4_1_SUPPORTED
112
+ 0
113
+ PARENT_SCOPE)
114
+ endif()
115
+
116
+ check_include_file(immintrin.h HAVE_IMMINTRIN_H) # AVX2
117
+ if(HAVE_IMMINTRIN_H)
118
+ if(MSVC)
119
+ check_flag(AVX2 /arch:AVX2)
120
+ else()
121
+ check_flag(AVX2 -mavx2 -mfma -mavx)
122
+ endif()
123
+ else()
124
+ set(AVX2_SUPPORTED
125
+ 0
126
+ PARENT_SCOPE)
127
+ endif()
128
+
129
+ if(SSE1_SUPPORTED OR SSE2_SUPPORTED OR SSE4_1_SUPPORTED OR AVX2_SUPPORTED)
130
+ set(COMPILER_SUPPORT_SIMD 1 PARENT_SCOPE)
131
+ else()
132
+ message(STATUS "No SIMD support in compiler")
133
+ endif()
134
+ endfunction()
135
+
136
+ function(opus_detect_neon COMPILER_SUPPORT_NEON)
137
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(arm|aarch64)")
138
+ message(STATUS "Check NEON support by compiler")
139
+ check_include_file(arm_neon.h HAVE_ARM_NEON_H)
140
+ if(HAVE_ARM_NEON_H)
141
+ set(COMPILER_SUPPORT_NEON ${HAVE_ARM_NEON_H} PARENT_SCOPE)
142
+ endif()
143
+ endif()
144
+ endfunction()
145
+
146
+ function(opus_supports_cpu_detection RUNTIME_CPU_CAPABILITY_DETECTION)
147
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 0 PARENT_SCOPE)
148
+ if(OPUS_CPU_X86 OR OPUS_CPU_X64)
149
+ if(MSVC)
150
+ check_include_file(intrin.h HAVE_INTRIN_H)
151
+ if(HAVE_INTRIN_H)
152
+ # if intrin.h is available we assume __cpuid is there
153
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 1 PARENT_SCOPE)
154
+ endif()
155
+ else()
156
+ include(CFeatureCheck)
157
+ c_feature_check(CPU_INFO_BY_ASM)
158
+ set(CPU_INFO_BY_ASM_SUPPORTED ${CPU_INFO_BY_ASM_SUPPORTED} PARENT_SCOPE)
159
+ check_include_file(cpuid.h HAVE_CPUID_H)
160
+ if(HAVE_CPUID_H)
161
+ c_feature_check(CPU_INFO_BY_C)
162
+ set(CPU_INFO_BY_C_SUPPORTED ${CPU_INFO_BY_C_SUPPORTED} PARENT_SCOPE)
163
+ endif()
164
+ if(CPU_INFO_BY_ASM_SUPPORTED OR CPU_INFO_BY_C_SUPPORTED)
165
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 1 PARENT_SCOPE)
166
+ endif()
167
+ endif()
168
+ elseif(OPUS_CPU_ARM)
169
+ # ARM cpu detection is implemented for Windows and anything
170
+ # using a Linux kernel (such as Android).
171
+ if (CMAKE_SYSTEM_NAME MATCHES "(Windows|Linux|Android)")
172
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 1 PARENT_SCOPE)
173
+ endif ()
174
+ else()
175
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 0 PARENT_SCOPE)
176
+ endif()
177
+ endfunction()
178
+
179
+ function(add_sources_group target group)
180
+ target_sources(${target} PRIVATE ${ARGN})
181
+ source_group(${group} FILES ${ARGN})
182
+ endfunction()
183
+
184
+ function(get_opus_sources SOURCE_GROUP MAKE_FILE SOURCES)
185
+ # read file, each item in list is one group
186
+ file(STRINGS ${MAKE_FILE} opus_sources)
187
+
188
+ # add wildcard for regex match
189
+ string(CONCAT SOURCE_GROUP ${SOURCE_GROUP} ".*$")
190
+
191
+ # find group
192
+ foreach(val IN LISTS opus_sources)
193
+ if(val MATCHES ${SOURCE_GROUP})
194
+ list(LENGTH val list_length)
195
+ if(${list_length} EQUAL 1)
196
+ # for tests split by '=' and clean up the rest into a list
197
+ string(FIND ${val} "=" index)
198
+ math(EXPR index "${index} + 1")
199
+ string(SUBSTRING ${val}
200
+ ${index}
201
+ -1
202
+ sources)
203
+ string(REPLACE " "
204
+ ";"
205
+ sources
206
+ ${sources})
207
+ else()
208
+ # discard the group
209
+ list(REMOVE_AT val 0)
210
+ set(sources ${val})
211
+ endif()
212
+ break()
213
+ endif()
214
+ endforeach()
215
+
216
+ list(LENGTH sources list_length)
217
+ if(${list_length} LESS 1)
218
+ message(
219
+ FATAL_ERROR
220
+ "No files parsed successfully from ${SOURCE_GROUP} in ${MAKE_FILE}")
221
+ endif()
222
+
223
+ # remove trailing whitespaces
224
+ set(list_var "")
225
+ foreach(source ${sources})
226
+ string(STRIP "${source}" source)
227
+ list(APPEND list_var "${source}")
228
+ endforeach()
229
+
230
+ set(${SOURCES} ${list_var} PARENT_SCOPE)
231
+ endfunction()
@@ -0,0 +1,70 @@
1
+ if(__opus_version)
2
+ return()
3
+ endif()
4
+ set(__opus_version INCLUDED)
5
+
6
+ function(get_package_version PACKAGE_VERSION PROJECT_VERSION)
7
+
8
+ find_package(Git)
9
+ if(GIT_FOUND AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/.git")
10
+ execute_process(COMMAND ${GIT_EXECUTABLE}
11
+ --git-dir=${CMAKE_CURRENT_LIST_DIR}/.git describe
12
+ --tags --match "v*" OUTPUT_VARIABLE OPUS_PACKAGE_VERSION)
13
+ if(OPUS_PACKAGE_VERSION)
14
+ string(STRIP ${OPUS_PACKAGE_VERSION}, OPUS_PACKAGE_VERSION)
15
+ string(REPLACE \n
16
+ ""
17
+ OPUS_PACKAGE_VERSION
18
+ ${OPUS_PACKAGE_VERSION})
19
+ string(REPLACE ,
20
+ ""
21
+ OPUS_PACKAGE_VERSION
22
+ ${OPUS_PACKAGE_VERSION})
23
+
24
+ string(SUBSTRING ${OPUS_PACKAGE_VERSION}
25
+ 1
26
+ -1
27
+ OPUS_PACKAGE_VERSION)
28
+ message(STATUS "Opus package version from git repo: ${OPUS_PACKAGE_VERSION}")
29
+ endif()
30
+
31
+ elseif(EXISTS "${CMAKE_CURRENT_LIST_DIR}/package_version"
32
+ AND NOT OPUS_PACKAGE_VERSION)
33
+ # Not a git repo, lets' try to parse it from package_version file if exists
34
+ file(STRINGS package_version OPUS_PACKAGE_VERSION
35
+ LIMIT_COUNT 1
36
+ REGEX "PACKAGE_VERSION=")
37
+ string(REPLACE "PACKAGE_VERSION="
38
+ ""
39
+ OPUS_PACKAGE_VERSION
40
+ ${OPUS_PACKAGE_VERSION})
41
+ string(REPLACE "\""
42
+ ""
43
+ OPUS_PACKAGE_VERSION
44
+ ${OPUS_PACKAGE_VERSION})
45
+ # In case we have a unknown dist here we just replace it with 0
46
+ string(REPLACE "unknown"
47
+ "0"
48
+ OPUS_PACKAGE_VERSION
49
+ ${OPUS_PACKAGE_VERSION})
50
+ message(STATUS "Opus package version from package_version file: ${OPUS_PACKAGE_VERSION}")
51
+ endif()
52
+
53
+ if(OPUS_PACKAGE_VERSION)
54
+ string(REGEX
55
+ REPLACE "^([0-9]+.[0-9]+\\.?([0-9]+)?).*"
56
+ "\\1"
57
+ OPUS_PROJECT_VERSION
58
+ ${OPUS_PACKAGE_VERSION})
59
+ else()
60
+ # fail to parse version from git and package version
61
+ message(WARNING "Could not get package version.")
62
+ set(OPUS_PACKAGE_VERSION 0)
63
+ set(OPUS_PROJECT_VERSION 0)
64
+ endif()
65
+
66
+ message(STATUS "Opus project version: ${OPUS_PROJECT_VERSION}")
67
+
68
+ set(PACKAGE_VERSION ${OPUS_PACKAGE_VERSION} PARENT_SCOPE)
69
+ set(PROJECT_VERSION ${OPUS_PROJECT_VERSION} PARENT_SCOPE)
70
+ endfunction()
@@ -0,0 +1,71 @@
1
+ if(__opus_sources)
2
+ return()
3
+ endif()
4
+ set(__opus_sources INCLUDED)
5
+
6
+ include(OpusFunctions)
7
+
8
+ get_opus_sources(SILK_HEAD silk_headers.mk silk_headers)
9
+ get_opus_sources(SILK_SOURCES silk_sources.mk silk_sources)
10
+ get_opus_sources(SILK_SOURCES_FLOAT silk_sources.mk silk_sources_float)
11
+ get_opus_sources(SILK_SOURCES_FIXED silk_sources.mk silk_sources_fixed)
12
+ get_opus_sources(SILK_SOURCES_X86_RTCD silk_sources.mk silk_sources_x86_rtcd)
13
+ get_opus_sources(SILK_SOURCES_SSE4_1 silk_sources.mk silk_sources_sse4_1)
14
+ get_opus_sources(SILK_SOURCES_FIXED_SSE4_1 silk_sources.mk
15
+ silk_sources_fixed_sse4_1)
16
+ get_opus_sources(SILK_SOURCES_AVX2 silk_sources.mk silk_sources_avx2)
17
+ get_opus_sources(SILK_SOURCES_FLOAT_AVX2 silk_sources.mk silk_sources_float_avx2)
18
+ get_opus_sources(SILK_SOURCES_ARM_RTCD silk_sources.mk silk_sources_arm_rtcd)
19
+ get_opus_sources(SILK_SOURCES_ARM_NEON_INTR silk_sources.mk
20
+ silk_sources_arm_neon_intr)
21
+ get_opus_sources(SILK_SOURCES_FIXED_ARM_NEON_INTR silk_sources.mk
22
+ silk_sources_fixed_arm_neon_intr)
23
+
24
+ get_opus_sources(OPUS_HEAD opus_headers.mk opus_headers)
25
+ get_opus_sources(OPUS_SOURCES opus_sources.mk opus_sources)
26
+ get_opus_sources(OPUS_SOURCES_FLOAT opus_sources.mk opus_sources_float)
27
+
28
+ get_opus_sources(CELT_HEAD celt_headers.mk celt_headers)
29
+ get_opus_sources(CELT_SOURCES celt_sources.mk celt_sources)
30
+ get_opus_sources(CELT_SOURCES_X86_RTCD celt_sources.mk celt_sources_x86_rtcd)
31
+ get_opus_sources(CELT_SOURCES_SSE celt_sources.mk celt_sources_sse)
32
+ get_opus_sources(CELT_SOURCES_SSE2 celt_sources.mk celt_sources_sse2)
33
+ get_opus_sources(CELT_SOURCES_SSE4_1 celt_sources.mk celt_sources_sse4_1)
34
+ get_opus_sources(CELT_SOURCES_AVX2 celt_sources.mk celt_sources_avx2)
35
+ get_opus_sources(CELT_SOURCES_ARM_RTCD celt_sources.mk celt_sources_arm_rtcd)
36
+ get_opus_sources(CELT_SOURCES_ARM_ASM celt_sources.mk celt_sources_arm_asm)
37
+ get_opus_sources(CELT_AM_SOURCES_ARM_ASM celt_sources.mk
38
+ celt_am_sources_arm_asm)
39
+ get_opus_sources(CELT_SOURCES_ARM_NEON_INTR celt_sources.mk
40
+ celt_sources_arm_neon_intr)
41
+ get_opus_sources(CELT_SOURCES_ARM_NE10 celt_sources.mk celt_sources_arm_ne10)
42
+
43
+ get_opus_sources(DEEP_PLC_HEAD lpcnet_headers.mk deep_plc_headers)
44
+ get_opus_sources(DRED_HEAD lpcnet_headers.mk dred_headers)
45
+ get_opus_sources(OSCE_HEAD lpcnet_headers.mk osce_headers)
46
+ get_opus_sources(DEEP_PLC_SOURCES lpcnet_sources.mk deep_plc_sources)
47
+ get_opus_sources(DRED_SOURCES lpcnet_sources.mk dred_sources)
48
+ get_opus_sources(OSCE_SOURCES lpcnet_sources.mk osce_sources)
49
+ get_opus_sources(DNN_SOURCES_X86_RTCD lpcnet_sources.mk dnn_sources_x86_rtcd)
50
+ get_opus_sources(DNN_SOURCES_SSE2 lpcnet_sources.mk dnn_sources_sse2)
51
+ get_opus_sources(DNN_SOURCES_SSE4_1 lpcnet_sources.mk dnn_sources_sse4_1)
52
+ get_opus_sources(DNN_SOURCES_AVX2 lpcnet_sources.mk dnn_sources_avx2)
53
+ get_opus_sources(DNN_SOURCES_NEON lpcnet_sources.mk dnn_sources_arm_neon)
54
+ get_opus_sources(DNN_SOURCES_DOTPROD lpcnet_sources.mk dnn_sources_arm_dotprod)
55
+
56
+ get_opus_sources(opus_demo_SOURCES Makefile.am opus_demo_sources)
57
+ get_opus_sources(opus_custom_demo_SOURCES Makefile.am opus_custom_demo_sources)
58
+ get_opus_sources(opus_compare_SOURCES Makefile.am opus_compare_sources)
59
+ get_opus_sources(tests_test_opus_api_SOURCES Makefile.am test_opus_api_sources)
60
+ get_opus_sources(tests_test_opus_encode_SOURCES Makefile.am
61
+ test_opus_encode_sources)
62
+ get_opus_sources(tests_test_opus_extensions_SOURCES Makefile.am
63
+ test_opus_extensions_sources)
64
+ get_opus_sources(tests_test_opus_decode_SOURCES Makefile.am
65
+ test_opus_decode_sources)
66
+ get_opus_sources(tests_test_opus_padding_SOURCES Makefile.am
67
+ test_opus_padding_sources)
68
+ get_opus_sources(tests_test_opus_dred_SOURCES Makefile.am
69
+ test_opus_dred_sources)
70
+ get_opus_sources(tests_test_opus_custom_SOURCES Makefile.am
71
+ test_opus_custom_sources)
@@ -0,0 +1,132 @@
1
+ # Using CMake for the Opus Project
2
+
3
+ This guide provides instructions for using CMake to build the Opus project with various configuration options. CMake is a widely used build system generator that helps manage the build process across different platforms.
4
+
5
+ Note: Please keep in mind that software documentation can sometimes go out of date as new versions are released. It is always recommended to refer to the official CMake documentation for the most up-to-date and accurate information. You can find the official CMake documentation at [cmake.org/documentation](https://cmake.org/documentation/).
6
+
7
+ ## Prerequisites
8
+
9
+ Before proceeding, make sure you have the following prerequisites installed:
10
+
11
+ - CMake
12
+ - Git (optional, but recommended for version control integration)
13
+ - Working C compiler
14
+
15
+ ## Build Instructions
16
+
17
+ Follow the steps below to build the Opus project using CMake:
18
+
19
+ 1. Clone the Opus repository using Git:
20
+
21
+ ```shell
22
+ git clone https://gitlab.xiph.org/xiph/opus
23
+ ```
24
+
25
+ 2. Create a build directory within the Opus repository:
26
+
27
+ ```shell
28
+ cd opus
29
+ mkdir build
30
+ cd build
31
+ ```
32
+
33
+ 3. Configure the build with CMake. You can set the desired configuration options using CMake's `-D` flag. Here are some available options:
34
+
35
+ - `OPUS_BUILD_SHARED_LIBRARY`: build shared library.
36
+ - `OPUS_BUILD_TESTING`: build tests.
37
+ - `OPUS_BUILD_PROGRAMS`: build programs.
38
+ - `OPUS_CUSTOM_MODES`, enable non-Opus modes, e.g. 44.1 kHz & 2^n frames.
39
+
40
+ For example, to enable the custom modes and build programs, use the following command:
41
+
42
+ ```shell
43
+ cmake .. -DOPUS_BUILD_PROGRAMS=ON -DOPUS_BUILD_TESTING=ON
44
+ ```
45
+
46
+ 4. Build the Opus project:
47
+
48
+ ```shell
49
+ cmake --build .
50
+ ```
51
+
52
+ 5. After a successful build, you can find the compiled Opus library and associated files in the build directory.
53
+
54
+ ## Testing with CTest
55
+
56
+ Opus provides a comprehensive test suite to ensure the functionality and correctness of the project. You can execute the tests using CTest, a part of the CMake build system. CTest allows for automated testing and provides useful features for managing and evaluating the test results.
57
+
58
+ To run the Opus tests using CTest, follow these steps:
59
+
60
+ 1. Navigate to the build directory after configuring and building the project with CMake:
61
+
62
+ ```shell
63
+ cd build
64
+ ```
65
+
66
+ 2. Execute the tests using CTest:
67
+
68
+ ```shell
69
+ ctest
70
+ ```
71
+
72
+ Note: For Windows you need to specify which configuration to test
73
+
74
+ ```shell
75
+ ctest -C Debug
76
+ ```
77
+
78
+ ## Platform Support and Bug Reporting
79
+
80
+ CMake aims to provide broad platform support, allowing the Opus project to be built and used on major operating systems and platforms. The supported platforms include:
81
+
82
+ - Windows
83
+ - macOS
84
+ - Linux
85
+ - Android
86
+ - iOS
87
+
88
+ CMake achieves platform support by generating platform-specific build files (e.g., Makefiles, Visual Studio projects) based on the target platform. This allows developers to build and configure the Opus project consistently across different operating systems and environments.
89
+
90
+ While CMake strives to ensure compatibility and stability across 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).
91
+
92
+ When reporting an issue, please provide the following information to help us understand and reproduce the configuration problem effectively:
93
+
94
+ 1. Detailed description of the issue, including any error messages or unexpected behavior observed.
95
+ 2. Steps to reproduce the problem, including the CMake command and any specific configuration options used.
96
+ 3. Operating system and version (e.g., Windows 10, macOS Big Sur, Ubuntu 20.04).
97
+ 4. CMake version (e.g., CMake 3.21.1).
98
+ 5. Any relevant information about the platform, toolchain, or dependencies used.
99
+ 6. Additional context or details that might assist in troubleshooting the issue.
100
+
101
+ By providing thorough information when reporting configuration issues, you contribute to improving the Opus project's compatibility and reliability across different platforms.
102
+
103
+ We appreciate your help in identifying and addressing any configuration-related problems, ensuring a better experience for all users of the Opus project.
104
+
105
+ ## Platform Specific Examples
106
+
107
+ Note: Examples can go out of date. Always refer to documentation for latest reference.
108
+
109
+ ### Cross compiling for Android
110
+
111
+ ```shell
112
+ cmake .. -DCMAKE_TOOLCHAIN_FILE=${ANDROID_HOME}/ndk/25.2.9519653/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a
113
+ ```
114
+
115
+ For more information about cross compiling for android, you can refer to the [Cross compiling for Android documentation](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-android).
116
+
117
+ ### Cross compiling for iOS
118
+
119
+ ```shell
120
+ cmake .. -G "Unix Makefiles" -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64
121
+ ```
122
+
123
+ For more information about cross compilation for iOS, you can refer to the [Cross compiling for iOS documentation](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-ios-tvos-or-watchos).
124
+
125
+
126
+ ### Windows Visual Studio
127
+
128
+ ```shell
129
+ cmake .. -G "Visual Studio 17 2022" -A x64
130
+ ```
131
+
132
+ For more information about the Visual Studio generator options and additional customization, you can refer to the [Visual Studio Generator documentation](https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html).