@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.
- package/opus/.gitattributes +10 -0
- package/opus/.gitlab-ci.yml +122 -0
- package/opus/AUTHORS +6 -0
- package/opus/CMakeLists.txt +755 -0
- package/opus/COPYING +44 -0
- package/opus/ChangeLog +0 -0
- package/opus/LICENSE_PLEASE_READ.txt +22 -0
- package/opus/Makefile.am +497 -0
- package/opus/Makefile.mips +169 -0
- package/opus/Makefile.unix +167 -0
- package/opus/NEWS +0 -0
- package/opus/README +189 -0
- package/opus/README.draft +54 -0
- package/opus/autogen.bat +13 -0
- package/opus/autogen.sh +16 -0
- package/opus/celt/_kiss_fft_guts.h +188 -0
- package/opus/celt/arch.h +390 -0
- package/opus/celt/arm/arm2gnu.pl +353 -0
- package/opus/celt/arm/arm_celt_map.c +171 -0
- package/opus/celt/arm/armcpu.c +291 -0
- package/opus/celt/arm/armcpu.h +90 -0
- package/opus/celt/arm/armopts.s.in +37 -0
- package/opus/celt/arm/celt_fft_ne10.c +173 -0
- package/opus/celt/arm/celt_mdct_ne10.c +258 -0
- package/opus/celt/arm/celt_neon_intr.c +272 -0
- package/opus/celt/arm/celt_pitch_xcorr_arm.s +551 -0
- package/opus/celt/arm/fft_arm.h +71 -0
- package/opus/celt/arm/fixed_arm64.h +35 -0
- package/opus/celt/arm/fixed_armv4.h +80 -0
- package/opus/celt/arm/fixed_armv5e.h +151 -0
- package/opus/celt/arm/kiss_fft_armv4.h +121 -0
- package/opus/celt/arm/kiss_fft_armv5e.h +118 -0
- package/opus/celt/arm/mdct_arm.h +59 -0
- package/opus/celt/arm/meson.build +12 -0
- package/opus/celt/arm/pitch_arm.h +160 -0
- package/opus/celt/arm/pitch_neon_intr.c +288 -0
- package/opus/celt/bands.c +1686 -0
- package/opus/celt/bands.h +123 -0
- package/opus/celt/celt.c +317 -0
- package/opus/celt/celt.h +255 -0
- package/opus/celt/celt_decoder.c +1616 -0
- package/opus/celt/celt_encoder.c +2854 -0
- package/opus/celt/celt_lpc.c +364 -0
- package/opus/celt/celt_lpc.h +66 -0
- package/opus/celt/cpu_support.h +72 -0
- package/opus/celt/cwrs.c +715 -0
- package/opus/celt/cwrs.h +48 -0
- package/opus/celt/dump_modes/dump_modes.c +400 -0
- package/opus/celt/dump_modes/dump_modes_arch.h +45 -0
- package/opus/celt/dump_modes/dump_modes_arm_ne10.c +152 -0
- package/opus/celt/ecintrin.h +91 -0
- package/opus/celt/entcode.c +153 -0
- package/opus/celt/entcode.h +152 -0
- package/opus/celt/entdec.c +266 -0
- package/opus/celt/entdec.h +110 -0
- package/opus/celt/entenc.c +305 -0
- package/opus/celt/entenc.h +119 -0
- package/opus/celt/fixed_c5x.h +79 -0
- package/opus/celt/fixed_c6x.h +70 -0
- package/opus/celt/fixed_debug.h +839 -0
- package/opus/celt/fixed_generic.h +201 -0
- package/opus/celt/float_cast.h +152 -0
- package/opus/celt/kiss_fft.c +648 -0
- package/opus/celt/kiss_fft.h +217 -0
- package/opus/celt/laplace.c +235 -0
- package/opus/celt/laplace.h +57 -0
- package/opus/celt/mathops.c +217 -0
- package/opus/celt/mathops.h +479 -0
- package/opus/celt/mdct.c +372 -0
- package/opus/celt/mdct.h +115 -0
- package/opus/celt/meson.build +64 -0
- package/opus/celt/mfrngcod.h +48 -0
- package/opus/celt/mips/celt_mipsr1.h +152 -0
- package/opus/celt/mips/fixed_generic_mipsr1.h +126 -0
- package/opus/celt/mips/kiss_fft_mipsr1.h +167 -0
- package/opus/celt/mips/mdct_mipsr1.h +288 -0
- package/opus/celt/mips/pitch_mipsr1.h +161 -0
- package/opus/celt/mips/vq_mipsr1.h +116 -0
- package/opus/celt/modes.c +450 -0
- package/opus/celt/modes.h +75 -0
- package/opus/celt/opus_custom_demo.c +451 -0
- package/opus/celt/os_support.h +99 -0
- package/opus/celt/pitch.c +555 -0
- package/opus/celt/pitch.h +203 -0
- package/opus/celt/quant_bands.c +562 -0
- package/opus/celt/quant_bands.h +66 -0
- package/opus/celt/rate.c +646 -0
- package/opus/celt/rate.h +101 -0
- package/opus/celt/stack_alloc.h +185 -0
- package/opus/celt/static_modes_fixed.h +1541 -0
- package/opus/celt/static_modes_fixed_arm_ne10.h +388 -0
- package/opus/celt/static_modes_float.h +888 -0
- package/opus/celt/static_modes_float_arm_ne10.h +404 -0
- package/opus/celt/tests/meson.build +19 -0
- package/opus/celt/tests/test_unit_cwrs32.c +162 -0
- package/opus/celt/tests/test_unit_dft.c +181 -0
- package/opus/celt/tests/test_unit_entropy.c +383 -0
- package/opus/celt/tests/test_unit_laplace.c +94 -0
- package/opus/celt/tests/test_unit_mathops.c +369 -0
- package/opus/celt/tests/test_unit_mdct.c +233 -0
- package/opus/celt/tests/test_unit_rotation.c +87 -0
- package/opus/celt/tests/test_unit_types.c +50 -0
- package/opus/celt/vq.c +442 -0
- package/opus/celt/vq.h +79 -0
- package/opus/celt/x86/celt_lpc_sse.h +67 -0
- package/opus/celt/x86/celt_lpc_sse4_1.c +96 -0
- package/opus/celt/x86/pitch_avx.c +101 -0
- package/opus/celt/x86/pitch_sse.c +185 -0
- package/opus/celt/x86/pitch_sse.h +216 -0
- package/opus/celt/x86/pitch_sse2.c +95 -0
- package/opus/celt/x86/pitch_sse4_1.c +240 -0
- package/opus/celt/x86/vq_sse.h +52 -0
- package/opus/celt/x86/vq_sse2.c +217 -0
- package/opus/celt/x86/x86_arch_macros.h +47 -0
- package/opus/celt/x86/x86_celt_map.c +187 -0
- package/opus/celt/x86/x86cpu.c +184 -0
- package/opus/celt/x86/x86cpu.h +112 -0
- package/opus/celt_headers.mk +54 -0
- package/opus/celt_sources.mk +55 -0
- package/opus/cmake/CFeatureCheck.cmake +39 -0
- package/opus/cmake/OpusBuildtype.cmake +27 -0
- package/opus/cmake/OpusConfig.cmake +118 -0
- package/opus/cmake/OpusConfig.cmake.in +20 -0
- package/opus/cmake/OpusFunctions.cmake +231 -0
- package/opus/cmake/OpusPackageVersion.cmake +70 -0
- package/opus/cmake/OpusSources.cmake +71 -0
- package/opus/cmake/README.md +132 -0
- package/opus/cmake/RunTest.cmake +61 -0
- package/opus/cmake/config.h.cmake.in +1 -0
- package/opus/cmake/cpu_info_by_asm.c +31 -0
- package/opus/cmake/cpu_info_by_c.c +9 -0
- package/opus/cmake/vla.c +7 -0
- package/opus/configure.ac +1091 -0
- package/opus/dnn/LPCNet.yml +24 -0
- package/opus/dnn/README +1 -0
- package/opus/dnn/README.md +126 -0
- package/opus/dnn/adaconvtest.c +449 -0
- package/opus/dnn/arm/arm_dnn_map.c +88 -0
- package/opus/dnn/arm/dnn_arm.h +104 -0
- package/opus/dnn/arm/nnet_dotprod.c +38 -0
- package/opus/dnn/arm/nnet_neon.c +38 -0
- package/opus/dnn/burg.c +246 -0
- package/opus/dnn/burg.h +41 -0
- package/opus/dnn/common.h +56 -0
- package/opus/dnn/datasets.txt +163 -0
- package/opus/dnn/download_model.bat +9 -0
- package/opus/dnn/download_model.sh +30 -0
- package/opus/dnn/dred_coding.c +44 -0
- package/opus/dnn/dred_coding.h +36 -0
- package/opus/dnn/dred_config.h +54 -0
- package/opus/dnn/dred_decoder.c +129 -0
- package/opus/dnn/dred_decoder.h +49 -0
- package/opus/dnn/dred_encoder.c +363 -0
- package/opus/dnn/dred_encoder.h +71 -0
- package/opus/dnn/dred_rdovae.h +42 -0
- package/opus/dnn/dred_rdovae_dec.c +139 -0
- package/opus/dnn/dred_rdovae_dec.h +53 -0
- package/opus/dnn/dred_rdovae_enc.c +110 -0
- package/opus/dnn/dred_rdovae_enc.h +52 -0
- package/opus/dnn/dump_data.c +238 -0
- package/opus/dnn/dump_lpcnet_tables.c +104 -0
- package/opus/dnn/fargan.c +225 -0
- package/opus/dnn/fargan.h +68 -0
- package/opus/dnn/fargan_demo.c +217 -0
- package/opus/dnn/freq.c +328 -0
- package/opus/dnn/freq.h +61 -0
- package/opus/dnn/fwgan.c +322 -0
- package/opus/dnn/fwgan.h +83 -0
- package/opus/dnn/kiss99.c +81 -0
- package/opus/dnn/kiss99.h +46 -0
- package/opus/dnn/lossgen.c +192 -0
- package/opus/dnn/lossgen.h +55 -0
- package/opus/dnn/lossgen_demo.c +22 -0
- package/opus/dnn/lpcnet.c +283 -0
- package/opus/dnn/lpcnet.h +183 -0
- package/opus/dnn/lpcnet_enc.c +230 -0
- package/opus/dnn/lpcnet_plc.c +211 -0
- package/opus/dnn/lpcnet_private.h +90 -0
- package/opus/dnn/lpcnet_tables.c +307 -0
- package/opus/dnn/meson.build +64 -0
- package/opus/dnn/nndsp.c +416 -0
- package/opus/dnn/nndsp.h +143 -0
- package/opus/dnn/nnet.c +149 -0
- package/opus/dnn/nnet.h +163 -0
- package/opus/dnn/nnet_arch.h +247 -0
- package/opus/dnn/nnet_default.c +35 -0
- package/opus/dnn/osce.c +1419 -0
- package/opus/dnn/osce.h +84 -0
- package/opus/dnn/osce_config.h +60 -0
- package/opus/dnn/osce_features.c +454 -0
- package/opus/dnn/osce_features.h +50 -0
- package/opus/dnn/osce_structs.h +125 -0
- package/opus/dnn/parse_lpcnet_weights.c +238 -0
- package/opus/dnn/pitchdnn.c +79 -0
- package/opus/dnn/pitchdnn.h +34 -0
- package/opus/dnn/tansig_table.h +50 -0
- package/opus/dnn/test_vec.c +128 -0
- package/opus/dnn/torch/dnntools/dnntools/__init__.py +2 -0
- package/opus/dnn/torch/dnntools/dnntools/quantization/__init__.py +1 -0
- package/opus/dnn/torch/dnntools/dnntools/quantization/softquant.py +113 -0
- package/opus/dnn/torch/dnntools/dnntools/relegance/__init__.py +2 -0
- package/opus/dnn/torch/dnntools/dnntools/relegance/meta_critic.py +85 -0
- package/opus/dnn/torch/dnntools/dnntools/relegance/relegance.py +449 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/__init__.py +6 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/base_sparsifier.py +58 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/common.py +123 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/conv1d_sparsifier.py +133 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/conv_transpose1d_sparsifier.py +134 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/gru_sparsifier.py +178 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/linear_sparsifier.py +128 -0
- package/opus/dnn/torch/dnntools/dnntools/sparsification/utils.py +64 -0
- package/opus/dnn/torch/dnntools/requirements.txt +1 -0
- package/opus/dnn/torch/dnntools/setup.py +48 -0
- package/opus/dnn/torch/fargan/README.md +54 -0
- package/opus/dnn/torch/fargan/adv_train_fargan.py +277 -0
- package/opus/dnn/torch/fargan/dataset.py +61 -0
- package/opus/dnn/torch/fargan/dump_fargan_weights.py +112 -0
- package/opus/dnn/torch/fargan/fargan.py +322 -0
- package/opus/dnn/torch/fargan/filters.py +46 -0
- package/opus/dnn/torch/fargan/rc.py +29 -0
- package/opus/dnn/torch/fargan/stft_loss.py +186 -0
- package/opus/dnn/torch/fargan/test_fargan.py +128 -0
- package/opus/dnn/torch/fargan/train_fargan.py +168 -0
- package/opus/dnn/torch/fwgan/dump_model_weights.py +88 -0
- package/opus/dnn/torch/fwgan/inference.py +141 -0
- package/opus/dnn/torch/fwgan/models/__init__.py +7 -0
- package/opus/dnn/torch/fwgan/models/fwgan400.py +308 -0
- package/opus/dnn/torch/fwgan/models/fwgan500.py +260 -0
- package/opus/dnn/torch/lossgen/README.md +27 -0
- package/opus/dnn/torch/lossgen/export_lossgen.py +101 -0
- package/opus/dnn/torch/lossgen/lossgen.py +29 -0
- package/opus/dnn/torch/lossgen/process_data.sh +17 -0
- package/opus/dnn/torch/lossgen/test_lossgen.py +42 -0
- package/opus/dnn/torch/lossgen/train_lossgen.py +99 -0
- package/opus/dnn/torch/lpcnet/README.md +27 -0
- package/opus/dnn/torch/lpcnet/add_dataset_config.py +77 -0
- package/opus/dnn/torch/lpcnet/data/__init__.py +1 -0
- package/opus/dnn/torch/lpcnet/data/lpcnet_dataset.py +227 -0
- package/opus/dnn/torch/lpcnet/engine/lpcnet_engine.py +141 -0
- package/opus/dnn/torch/lpcnet/make_default_setup.py +56 -0
- package/opus/dnn/torch/lpcnet/make_test_config.py +78 -0
- package/opus/dnn/torch/lpcnet/models/__init__.py +8 -0
- package/opus/dnn/torch/lpcnet/models/lpcnet.py +303 -0
- package/opus/dnn/torch/lpcnet/models/multi_rate_lpcnet.py +437 -0
- package/opus/dnn/torch/lpcnet/print_lpcnet_complexity.py +64 -0
- package/opus/dnn/torch/lpcnet/scripts/collect_multi_run_results.py +190 -0
- package/opus/dnn/torch/lpcnet/scripts/loop_run.sh +52 -0
- package/opus/dnn/torch/lpcnet/scripts/make_animation.py +67 -0
- package/opus/dnn/torch/lpcnet/scripts/modify_dataset_target.py +17 -0
- package/opus/dnn/torch/lpcnet/scripts/multi_run.sh +17 -0
- package/opus/dnn/torch/lpcnet/scripts/run_inference_test.sh +22 -0
- package/opus/dnn/torch/lpcnet/scripts/update_checkpoints.py +54 -0
- package/opus/dnn/torch/lpcnet/scripts/update_output_folder.sh +22 -0
- package/opus/dnn/torch/lpcnet/scripts/update_setups.py +57 -0
- package/opus/dnn/torch/lpcnet/test_lpcnet.py +89 -0
- package/opus/dnn/torch/lpcnet/train_lpcnet.py +272 -0
- package/opus/dnn/torch/lpcnet/utils/__init__.py +4 -0
- package/opus/dnn/torch/lpcnet/utils/data.py +141 -0
- package/opus/dnn/torch/lpcnet/utils/endoscopy.py +234 -0
- package/opus/dnn/torch/lpcnet/utils/layers/__init__.py +3 -0
- package/opus/dnn/torch/lpcnet/utils/layers/dual_fc.py +44 -0
- package/opus/dnn/torch/lpcnet/utils/layers/pcm_embeddings.py +71 -0
- package/opus/dnn/torch/lpcnet/utils/layers/subconditioner.py +497 -0
- package/opus/dnn/torch/lpcnet/utils/misc.py +65 -0
- package/opus/dnn/torch/lpcnet/utils/pcm.py +35 -0
- package/opus/dnn/torch/lpcnet/utils/sample.py +44 -0
- package/opus/dnn/torch/lpcnet/utils/sparsification/__init__.py +2 -0
- package/opus/dnn/torch/lpcnet/utils/sparsification/common.py +121 -0
- package/opus/dnn/torch/lpcnet/utils/sparsification/gru_sparsifier.py +187 -0
- package/opus/dnn/torch/lpcnet/utils/templates.py +157 -0
- package/opus/dnn/torch/lpcnet/utils/ulaw.py +58 -0
- package/opus/dnn/torch/lpcnet/utils/wav.py +43 -0
- package/opus/dnn/torch/neural-pitch/README.md +18 -0
- package/opus/dnn/torch/neural-pitch/data_augmentation.py +149 -0
- package/opus/dnn/torch/neural-pitch/download_demand.sh +43 -0
- package/opus/dnn/torch/neural-pitch/evaluation.py +349 -0
- package/opus/dnn/torch/neural-pitch/experiments.py +38 -0
- package/opus/dnn/torch/neural-pitch/export_neuralpitch_weights.py +109 -0
- package/opus/dnn/torch/neural-pitch/models.py +178 -0
- package/opus/dnn/torch/neural-pitch/neural_pitch_update.py +179 -0
- package/opus/dnn/torch/neural-pitch/ptdb_process.sh +34 -0
- package/opus/dnn/torch/neural-pitch/run_crepe.py +72 -0
- package/opus/dnn/torch/neural-pitch/training.py +162 -0
- package/opus/dnn/torch/neural-pitch/utils.py +59 -0
- package/opus/dnn/torch/osce/README.md +66 -0
- package/opus/dnn/torch/osce/adv_train_model.py +462 -0
- package/opus/dnn/torch/osce/adv_train_vocoder.py +451 -0
- package/opus/dnn/torch/osce/create_testvectors.py +165 -0
- package/opus/dnn/torch/osce/data/__init__.py +2 -0
- package/opus/dnn/torch/osce/data/lpcnet_vocoding_dataset.py +225 -0
- package/opus/dnn/torch/osce/data/silk_conversion_set.py +132 -0
- package/opus/dnn/torch/osce/data/silk_enhancement_set.py +140 -0
- package/opus/dnn/torch/osce/engine/engine.py +103 -0
- package/opus/dnn/torch/osce/engine/vocoder_engine.py +101 -0
- package/opus/dnn/torch/osce/export_model_weights.py +174 -0
- package/opus/dnn/torch/osce/losses/stft_loss.py +277 -0
- package/opus/dnn/torch/osce/losses/td_lowpass.py +34 -0
- package/opus/dnn/torch/osce/make_default_setup.py +93 -0
- package/opus/dnn/torch/osce/models/__init__.py +42 -0
- package/opus/dnn/torch/osce/models/fd_discriminator.py +974 -0
- package/opus/dnn/torch/osce/models/lace.py +190 -0
- package/opus/dnn/torch/osce/models/lavoce.py +274 -0
- package/opus/dnn/torch/osce/models/lavoce_400.py +254 -0
- package/opus/dnn/torch/osce/models/lpcnet_feature_net.py +91 -0
- package/opus/dnn/torch/osce/models/nns_base.py +69 -0
- package/opus/dnn/torch/osce/models/no_lace.py +218 -0
- package/opus/dnn/torch/osce/models/scale_embedding.py +68 -0
- package/opus/dnn/torch/osce/models/shape_up_48.py +179 -0
- package/opus/dnn/torch/osce/models/silk_feature_net.py +86 -0
- package/opus/dnn/torch/osce/models/silk_feature_net_pl.py +127 -0
- package/opus/dnn/torch/osce/requirements.txt +9 -0
- package/opus/dnn/torch/osce/resources/training_files.txt +107716 -0
- package/opus/dnn/torch/osce/resources/validation_files.txt +26929 -0
- package/opus/dnn/torch/osce/scripts/concatenator.py +85 -0
- package/opus/dnn/torch/osce/silk_16_to_48.py +28 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/commonvoice_clip_selection.py +123 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/create_input_data.sh +25 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/env.rc +7 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/evaluate.py +113 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/lace_loss_metric.py +330 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/make_boxplots.py +116 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/make_boxplots_moctest.py +109 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/make_tables.py +124 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/make_tables_moctest.py +121 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/moc.py +182 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/moc2.py +190 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/process_dataset.sh +98 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/run_nomad.py +138 -0
- package/opus/dnn/torch/osce/stndrd/evaluation/run_osce_test.py +196 -0
- package/opus/dnn/torch/osce/stndrd/presentation/endoscopy.py +205 -0
- package/opus/dnn/torch/osce/stndrd/presentation/lace_demo.ipynb +313 -0
- package/opus/dnn/torch/osce/stndrd/presentation/linear_prediction.ipynb +320 -0
- package/opus/dnn/torch/osce/stndrd/presentation/playback.py +25 -0
- package/opus/dnn/torch/osce/stndrd/presentation/postfilter.ipynb +275 -0
- package/opus/dnn/torch/osce/stndrd/presentation/spectrogram.ipynb +173 -0
- package/opus/dnn/torch/osce/test_model.py +96 -0
- package/opus/dnn/torch/osce/test_vocoder.py +103 -0
- package/opus/dnn/torch/osce/train_model.py +307 -0
- package/opus/dnn/torch/osce/train_vocoder.py +287 -0
- package/opus/dnn/torch/osce/utils/ada_conv.py +71 -0
- package/opus/dnn/torch/osce/utils/complexity.py +8 -0
- package/opus/dnn/torch/osce/utils/endoscopy.py +205 -0
- package/opus/dnn/torch/osce/utils/layers/fir.py +27 -0
- package/opus/dnn/torch/osce/utils/layers/limited_adaptive_comb1d.py +230 -0
- package/opus/dnn/torch/osce/utils/layers/limited_adaptive_conv1d.py +200 -0
- package/opus/dnn/torch/osce/utils/layers/noise_shaper.py +100 -0
- package/opus/dnn/torch/osce/utils/layers/pitch_auto_correlator.py +84 -0
- package/opus/dnn/torch/osce/utils/layers/silk_upsampler.py +167 -0
- package/opus/dnn/torch/osce/utils/layers/td_shaper.py +145 -0
- package/opus/dnn/torch/osce/utils/lpcnet_features.py +112 -0
- package/opus/dnn/torch/osce/utils/misc.py +95 -0
- package/opus/dnn/torch/osce/utils/moc.py +153 -0
- package/opus/dnn/torch/osce/utils/pitch.py +122 -0
- package/opus/dnn/torch/osce/utils/silk_features.py +144 -0
- package/opus/dnn/torch/osce/utils/softquant.py +110 -0
- package/opus/dnn/torch/osce/utils/spec.py +210 -0
- package/opus/dnn/torch/osce/utils/templates.py +347 -0
- package/opus/dnn/torch/plc/export_plc.py +100 -0
- package/opus/dnn/torch/plc/plc.py +144 -0
- package/opus/dnn/torch/plc/plc_dataset.py +60 -0
- package/opus/dnn/torch/plc/train_plc.py +145 -0
- package/opus/dnn/torch/rdovae/README.md +55 -0
- package/opus/dnn/torch/rdovae/download_datasets.sh +6 -0
- package/opus/dnn/torch/rdovae/export_rdovae_weights.py +365 -0
- package/opus/dnn/torch/rdovae/fec_encoder.py +212 -0
- package/opus/dnn/torch/rdovae/import_rdovae_weights.py +143 -0
- package/opus/dnn/torch/rdovae/packets/__init__.py +1 -0
- package/opus/dnn/torch/rdovae/packets/fec_packets.c +142 -0
- package/opus/dnn/torch/rdovae/packets/fec_packets.h +34 -0
- package/opus/dnn/torch/rdovae/packets/fec_packets.py +108 -0
- package/opus/dnn/torch/rdovae/process_speech.sh +7 -0
- package/opus/dnn/torch/rdovae/rdovae/__init__.py +2 -0
- package/opus/dnn/torch/rdovae/rdovae/dataset.py +67 -0
- package/opus/dnn/torch/rdovae/rdovae/rdovae.py +719 -0
- package/opus/dnn/torch/rdovae/requirements.txt +4 -0
- package/opus/dnn/torch/rdovae/train_rdovae.py +278 -0
- package/opus/dnn/torch/testsuite/README.md +46 -0
- package/opus/dnn/torch/testsuite/examples/lpcnet_c_example.yml +6 -0
- package/opus/dnn/torch/testsuite/examples/lpcnet_c_plc_example.yml +5 -0
- package/opus/dnn/torch/testsuite/examples/lpcnet_torch_example.yml +5 -0
- package/opus/dnn/torch/testsuite/requirements.txt +12 -0
- package/opus/dnn/torch/testsuite/run_test.py +375 -0
- package/opus/dnn/torch/testsuite/utils/__init__.py +0 -0
- package/opus/dnn/torch/testsuite/utils/files.py +54 -0
- package/opus/dnn/torch/testsuite/utils/pesq.py +43 -0
- package/opus/dnn/torch/testsuite/utils/pitch.py +61 -0
- package/opus/dnn/torch/weight-exchange/README.md +21 -0
- package/opus/dnn/torch/weight-exchange/requirements.txt +1 -0
- package/opus/dnn/torch/weight-exchange/setup.py +48 -0
- package/opus/dnn/torch/weight-exchange/wexchange/__init__.py +30 -0
- package/opus/dnn/torch/weight-exchange/wexchange/c_export/__init__.py +31 -0
- package/opus/dnn/torch/weight-exchange/wexchange/c_export/c_writer.py +181 -0
- package/opus/dnn/torch/weight-exchange/wexchange/c_export/common.py +386 -0
- package/opus/dnn/torch/weight-exchange/wexchange/tf/__init__.py +5 -0
- package/opus/dnn/torch/weight-exchange/wexchange/tf/tf.py +188 -0
- package/opus/dnn/torch/weight-exchange/wexchange/torch/__init__.py +37 -0
- package/opus/dnn/torch/weight-exchange/wexchange/torch/torch.py +433 -0
- package/opus/dnn/training_tf2/dataloader.py +49 -0
- package/opus/dnn/training_tf2/decode_rdovae.py +111 -0
- package/opus/dnn/training_tf2/diffembed.py +49 -0
- package/opus/dnn/training_tf2/dump_lpcnet.py +388 -0
- package/opus/dnn/training_tf2/dump_plc.py +296 -0
- package/opus/dnn/training_tf2/dump_rdovae.py +306 -0
- package/opus/dnn/training_tf2/encode_rdovae.py +125 -0
- package/opus/dnn/training_tf2/fec_encoder.py +256 -0
- package/opus/dnn/training_tf2/fec_packets.c +142 -0
- package/opus/dnn/training_tf2/fec_packets.h +34 -0
- package/opus/dnn/training_tf2/fec_packets.py +108 -0
- package/opus/dnn/training_tf2/keraslayerdump.py +189 -0
- package/opus/dnn/training_tf2/lossfuncs.py +99 -0
- package/opus/dnn/training_tf2/lpcnet.py +339 -0
- package/opus/dnn/training_tf2/lpcnet_plc.py +101 -0
- package/opus/dnn/training_tf2/mdense.py +95 -0
- package/opus/dnn/training_tf2/pade.py +70 -0
- package/opus/dnn/training_tf2/parameters.py +29 -0
- package/opus/dnn/training_tf2/plc_loader.py +73 -0
- package/opus/dnn/training_tf2/rdovae.py +372 -0
- package/opus/dnn/training_tf2/rdovae_exchange.py +138 -0
- package/opus/dnn/training_tf2/rdovae_import.py +123 -0
- package/opus/dnn/training_tf2/test_lpcnet.py +120 -0
- package/opus/dnn/training_tf2/test_plc.py +92 -0
- package/opus/dnn/training_tf2/tf_funcs.py +70 -0
- package/opus/dnn/training_tf2/train_lpcnet.py +214 -0
- package/opus/dnn/training_tf2/train_plc.py +197 -0
- package/opus/dnn/training_tf2/train_rdovae.py +151 -0
- package/opus/dnn/training_tf2/ulaw.py +19 -0
- package/opus/dnn/training_tf2/uniform_noise.py +78 -0
- package/opus/dnn/vec.h +389 -0
- package/opus/dnn/vec_avx.h +884 -0
- package/opus/dnn/vec_neon.h +473 -0
- package/opus/dnn/write_lpcnet_weights.c +97 -0
- package/opus/dnn/x86/dnn_x86.h +121 -0
- package/opus/dnn/x86/nnet_avx2.c +40 -0
- package/opus/dnn/x86/nnet_sse2.c +40 -0
- package/opus/dnn/x86/nnet_sse4_1.c +40 -0
- package/opus/dnn/x86/x86_dnn_map.c +83 -0
- package/opus/doc/Doxyfile.in +340 -0
- package/opus/doc/Makefile.am +45 -0
- package/opus/doc/build_draft.sh +113 -0
- package/opus/doc/build_isobmff.sh +50 -0
- package/opus/doc/build_oggdraft.sh +52 -0
- package/opus/doc/customdoxygen.css +1011 -0
- package/opus/doc/draft-ietf-codec-oggopus.xml +1873 -0
- package/opus/doc/draft-ietf-codec-opus-update.xml +513 -0
- package/opus/doc/draft-ietf-codec-opus.xml +8276 -0
- package/opus/doc/draft-ietf-payload-rtp-opus.xml +960 -0
- package/opus/doc/footer.html +32 -0
- package/opus/doc/header.html +61 -0
- package/opus/doc/meson.build +33 -0
- package/opus/doc/opus_in_isobmff.css +60 -0
- package/opus/doc/opus_in_isobmff.html +692 -0
- package/opus/doc/opus_logo.svg +157 -0
- package/opus/doc/opus_update.patch +244 -0
- package/opus/doc/release.txt +43 -0
- package/opus/doc/trivial_example.c +171 -0
- package/opus/include/meson.build +13 -0
- package/opus/include/opus.h +1172 -0
- package/opus/include/opus_custom.h +381 -0
- package/opus/include/opus_defines.h +830 -0
- package/opus/include/opus_multistream.h +736 -0
- package/opus/include/opus_projection.h +643 -0
- package/opus/include/opus_types.h +166 -0
- package/opus/lpcnet_headers.mk +44 -0
- package/opus/lpcnet_sources.mk +44 -0
- package/opus/m4/as-gcc-inline-assembly.m4 +98 -0
- package/opus/m4/ax_add_fortify_source.m4 +53 -0
- package/opus/m4/opus-intrinsics.m4 +29 -0
- package/opus/meson/README.md +88 -0
- package/opus/meson/get-version.py +86 -0
- package/opus/meson/read-sources-list.py +28 -0
- package/opus/meson.build +745 -0
- package/opus/meson_options.txt +27 -0
- package/opus/opus-uninstalled.pc.in +12 -0
- package/opus/opus.m4 +117 -0
- package/opus/opus.pc.in +16 -0
- package/opus/opus_headers.mk +8 -0
- package/opus/opus_sources.mk +17 -0
- package/opus/releases.sha2 +85 -0
- package/opus/scripts/dump_rnn.py +57 -0
- package/opus/scripts/local_build.py +220 -0
- package/opus/scripts/rnn_train.py +67 -0
- package/opus/scripts/shrink_model.sh +7 -0
- package/opus/silk/A2NLSF.c +267 -0
- package/opus/silk/API.h +156 -0
- package/opus/silk/CNG.c +188 -0
- package/opus/silk/HP_variable_cutoff.c +77 -0
- package/opus/silk/Inlines.h +188 -0
- package/opus/silk/LPC_analysis_filter.c +111 -0
- package/opus/silk/LPC_fit.c +82 -0
- package/opus/silk/LPC_inv_pred_gain.c +141 -0
- package/opus/silk/LP_variable_cutoff.c +135 -0
- package/opus/silk/MacroCount.h +710 -0
- package/opus/silk/MacroDebug.h +945 -0
- package/opus/silk/NLSF2A.c +141 -0
- package/opus/silk/NLSF_VQ.c +76 -0
- package/opus/silk/NLSF_VQ_weights_laroia.c +80 -0
- package/opus/silk/NLSF_decode.c +93 -0
- package/opus/silk/NLSF_del_dec_quant.c +215 -0
- package/opus/silk/NLSF_encode.c +124 -0
- package/opus/silk/NLSF_stabilize.c +142 -0
- package/opus/silk/NLSF_unpack.c +55 -0
- package/opus/silk/NSQ.c +437 -0
- package/opus/silk/NSQ.h +101 -0
- package/opus/silk/NSQ_del_dec.c +733 -0
- package/opus/silk/PLC.c +493 -0
- package/opus/silk/PLC.h +65 -0
- package/opus/silk/SigProc_FIX.h +643 -0
- package/opus/silk/VAD.c +360 -0
- package/opus/silk/VQ_WMat_EC.c +131 -0
- package/opus/silk/ana_filt_bank_1.c +74 -0
- package/opus/silk/arm/LPC_inv_pred_gain_arm.h +57 -0
- package/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c +288 -0
- package/opus/silk/arm/NSQ_del_dec_arm.h +100 -0
- package/opus/silk/arm/NSQ_del_dec_neon_intr.c +1138 -0
- package/opus/silk/arm/NSQ_neon.c +112 -0
- package/opus/silk/arm/NSQ_neon.h +114 -0
- package/opus/silk/arm/SigProc_FIX_armv4.h +47 -0
- package/opus/silk/arm/SigProc_FIX_armv5e.h +61 -0
- package/opus/silk/arm/arm_silk_map.c +128 -0
- package/opus/silk/arm/biquad_alt_arm.h +68 -0
- package/opus/silk/arm/biquad_alt_neon_intr.c +156 -0
- package/opus/silk/arm/macros_arm64.h +39 -0
- package/opus/silk/arm/macros_armv4.h +110 -0
- package/opus/silk/arm/macros_armv5e.h +220 -0
- package/opus/silk/biquad_alt.c +121 -0
- package/opus/silk/bwexpander.c +51 -0
- package/opus/silk/bwexpander_32.c +51 -0
- package/opus/silk/check_control_input.c +106 -0
- package/opus/silk/code_signs.c +115 -0
- package/opus/silk/control.h +161 -0
- package/opus/silk/control_SNR.c +113 -0
- package/opus/silk/control_audio_bandwidth.c +132 -0
- package/opus/silk/control_codec.c +423 -0
- package/opus/silk/debug.c +174 -0
- package/opus/silk/debug.h +267 -0
- package/opus/silk/dec_API.c +465 -0
- package/opus/silk/decode_core.c +243 -0
- package/opus/silk/decode_frame.c +169 -0
- package/opus/silk/decode_indices.c +151 -0
- package/opus/silk/decode_parameters.c +115 -0
- package/opus/silk/decode_pitch.c +77 -0
- package/opus/silk/decode_pulses.c +115 -0
- package/opus/silk/decoder_set_fs.c +108 -0
- package/opus/silk/define.h +235 -0
- package/opus/silk/enc_API.c +593 -0
- package/opus/silk/encode_indices.c +181 -0
- package/opus/silk/encode_pulses.c +206 -0
- package/opus/silk/errors.h +98 -0
- package/opus/silk/fixed/LTP_analysis_filter_FIX.c +90 -0
- package/opus/silk/fixed/LTP_scale_ctrl_FIX.c +58 -0
- package/opus/silk/fixed/apply_sine_window_FIX.c +101 -0
- package/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h +68 -0
- package/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c +265 -0
- package/opus/silk/fixed/autocorr_FIX.c +48 -0
- package/opus/silk/fixed/burg_modified_FIX.c +280 -0
- package/opus/silk/fixed/corrMatrix_FIX.c +150 -0
- package/opus/silk/fixed/encode_frame_FIX.c +444 -0
- package/opus/silk/fixed/find_LPC_FIX.c +151 -0
- package/opus/silk/fixed/find_LTP_FIX.c +99 -0
- package/opus/silk/fixed/find_pitch_lags_FIX.c +143 -0
- package/opus/silk/fixed/find_pred_coefs_FIX.c +146 -0
- package/opus/silk/fixed/k2a_FIX.c +54 -0
- package/opus/silk/fixed/k2a_Q16_FIX.c +54 -0
- package/opus/silk/fixed/main_FIX.h +244 -0
- package/opus/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h +336 -0
- package/opus/silk/fixed/mips/prefilter_FIX_mipsr1.h +184 -0
- package/opus/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h +165 -0
- package/opus/silk/fixed/noise_shape_analysis_FIX.c +407 -0
- package/opus/silk/fixed/pitch_analysis_core_FIX.c +721 -0
- package/opus/silk/fixed/process_gains_FIX.c +117 -0
- package/opus/silk/fixed/regularize_correlations_FIX.c +47 -0
- package/opus/silk/fixed/residual_energy16_FIX.c +103 -0
- package/opus/silk/fixed/residual_energy_FIX.c +98 -0
- package/opus/silk/fixed/schur64_FIX.c +93 -0
- package/opus/silk/fixed/schur_FIX.c +107 -0
- package/opus/silk/fixed/structs_FIX.h +116 -0
- package/opus/silk/fixed/vector_ops_FIX.c +102 -0
- package/opus/silk/fixed/warped_autocorrelation_FIX.c +92 -0
- package/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c +400 -0
- package/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c +93 -0
- package/opus/silk/float/LPC_analysis_filter_FLP.c +249 -0
- package/opus/silk/float/LPC_inv_pred_gain_FLP.c +73 -0
- package/opus/silk/float/LTP_analysis_filter_FLP.c +75 -0
- package/opus/silk/float/LTP_scale_ctrl_FLP.c +58 -0
- package/opus/silk/float/SigProc_FLP.h +205 -0
- package/opus/silk/float/apply_sine_window_FLP.c +81 -0
- package/opus/silk/float/autocorrelation_FLP.c +53 -0
- package/opus/silk/float/burg_modified_FLP.c +187 -0
- package/opus/silk/float/bwexpander_FLP.c +49 -0
- package/opus/silk/float/corrMatrix_FLP.c +95 -0
- package/opus/silk/float/encode_frame_FLP.c +432 -0
- package/opus/silk/float/energy_FLP.c +59 -0
- package/opus/silk/float/find_LPC_FLP.c +105 -0
- package/opus/silk/float/find_LTP_FLP.c +65 -0
- package/opus/silk/float/find_pitch_lags_FLP.c +132 -0
- package/opus/silk/float/find_pred_coefs_FLP.c +117 -0
- package/opus/silk/float/inner_product_FLP.c +59 -0
- package/opus/silk/float/k2a_FLP.c +54 -0
- package/opus/silk/float/main_FLP.h +290 -0
- package/opus/silk/float/noise_shape_analysis_FLP.c +350 -0
- package/opus/silk/float/pitch_analysis_core_FLP.c +630 -0
- package/opus/silk/float/process_gains_FLP.c +103 -0
- package/opus/silk/float/regularize_correlations_FLP.c +48 -0
- package/opus/silk/float/residual_energy_FLP.c +117 -0
- package/opus/silk/float/scale_copy_vector_FLP.c +57 -0
- package/opus/silk/float/scale_vector_FLP.c +56 -0
- package/opus/silk/float/schur_FLP.c +70 -0
- package/opus/silk/float/sort_FLP.c +83 -0
- package/opus/silk/float/structs_FLP.h +112 -0
- package/opus/silk/float/warped_autocorrelation_FLP.c +75 -0
- package/opus/silk/float/wrappers_FLP.c +209 -0
- package/opus/silk/float/x86/inner_product_FLP_avx2.c +85 -0
- package/opus/silk/gain_quant.c +142 -0
- package/opus/silk/init_decoder.c +84 -0
- package/opus/silk/init_encoder.c +68 -0
- package/opus/silk/inner_prod_aligned.c +47 -0
- package/opus/silk/interpolate.c +51 -0
- package/opus/silk/lin2log.c +46 -0
- package/opus/silk/log2lin.c +58 -0
- package/opus/silk/macros.h +151 -0
- package/opus/silk/main.h +486 -0
- package/opus/silk/meson.build +69 -0
- package/opus/silk/mips/NSQ_del_dec_mipsr1.h +410 -0
- package/opus/silk/mips/macros_mipsr1.h +92 -0
- package/opus/silk/mips/sigproc_fix_mipsr1.h +60 -0
- package/opus/silk/pitch_est_defines.h +88 -0
- package/opus/silk/pitch_est_tables.c +99 -0
- package/opus/silk/process_NLSFs.c +107 -0
- package/opus/silk/quant_LTP_gains.c +132 -0
- package/opus/silk/resampler.c +215 -0
- package/opus/silk/resampler_down2.c +74 -0
- package/opus/silk/resampler_down2_3.c +103 -0
- package/opus/silk/resampler_private.h +88 -0
- package/opus/silk/resampler_private_AR2.c +55 -0
- package/opus/silk/resampler_private_IIR_FIR.c +107 -0
- package/opus/silk/resampler_private_down_FIR.c +194 -0
- package/opus/silk/resampler_private_up2_HQ.c +113 -0
- package/opus/silk/resampler_rom.c +96 -0
- package/opus/silk/resampler_rom.h +68 -0
- package/opus/silk/resampler_structs.h +60 -0
- package/opus/silk/shell_coder.c +151 -0
- package/opus/silk/sigm_Q15.c +76 -0
- package/opus/silk/sort.c +154 -0
- package/opus/silk/stereo_LR_to_MS.c +229 -0
- package/opus/silk/stereo_MS_to_LR.c +85 -0
- package/opus/silk/stereo_decode_pred.c +73 -0
- package/opus/silk/stereo_encode_pred.c +62 -0
- package/opus/silk/stereo_find_predictor.c +79 -0
- package/opus/silk/stereo_quant_pred.c +73 -0
- package/opus/silk/structs.h +357 -0
- package/opus/silk/sum_sqr_shift.c +83 -0
- package/opus/silk/table_LSF_cos.c +70 -0
- package/opus/silk/tables.h +114 -0
- package/opus/silk/tables_LTP.c +294 -0
- package/opus/silk/tables_NLSF_CB_NB_MB.c +195 -0
- package/opus/silk/tables_NLSF_CB_WB.c +234 -0
- package/opus/silk/tables_gain.c +63 -0
- package/opus/silk/tables_other.c +124 -0
- package/opus/silk/tables_pitch_lag.c +69 -0
- package/opus/silk/tables_pulses_per_block.c +264 -0
- package/opus/silk/tests/meson.build +8 -0
- package/opus/silk/tests/test_unit_LPC_inv_pred_gain.c +130 -0
- package/opus/silk/tuning_parameters.h +155 -0
- package/opus/silk/typedef.h +81 -0
- package/opus/silk/x86/NSQ_del_dec_avx2.c +1075 -0
- package/opus/silk/x86/NSQ_del_dec_sse4_1.c +915 -0
- package/opus/silk/x86/NSQ_sse4_1.c +772 -0
- package/opus/silk/x86/SigProc_FIX_sse.h +99 -0
- package/opus/silk/x86/VAD_sse4_1.c +289 -0
- package/opus/silk/x86/VQ_WMat_EC_sse4_1.c +173 -0
- package/opus/silk/x86/main_sse.h +299 -0
- package/opus/silk/x86/x86_silk_map.c +179 -0
- package/opus/silk_headers.mk +44 -0
- package/opus/silk_sources.mk +164 -0
- package/opus/src/analysis.c +979 -0
- package/opus/src/analysis.h +103 -0
- package/opus/src/extensions.c +663 -0
- package/opus/src/mapping_matrix.c +993 -0
- package/opus/src/mapping_matrix.h +165 -0
- package/opus/src/meson.build +45 -0
- package/opus/src/mlp.c +132 -0
- package/opus/src/mlp.h +60 -0
- package/opus/src/mlp_data.c +672 -0
- package/opus/src/opus.c +362 -0
- package/opus/src/opus_compare.c +382 -0
- package/opus/src/opus_decoder.c +1579 -0
- package/opus/src/opus_demo.c +1194 -0
- package/opus/src/opus_encoder.c +3180 -0
- package/opus/src/opus_multistream.c +92 -0
- package/opus/src/opus_multistream_decoder.c +563 -0
- package/opus/src/opus_multistream_encoder.c +1321 -0
- package/opus/src/opus_private.h +263 -0
- package/opus/src/opus_projection_decoder.c +283 -0
- package/opus/src/opus_projection_encoder.c +522 -0
- package/opus/src/repacketizer.c +469 -0
- package/opus/src/repacketizer_demo.c +247 -0
- package/opus/src/tansig_table.h +45 -0
- package/opus/tar_list.txt +28 -0
- package/opus/tests/meson.build +39 -0
- package/opus/tests/opus_build_test.sh +29 -0
- package/opus/tests/opus_decode_fuzzer.c +124 -0
- package/opus/tests/opus_decode_fuzzer.options +2 -0
- package/opus/tests/opus_encode_regressions.c +1034 -0
- package/opus/tests/random_config.sh +126 -0
- package/opus/tests/run_vectors.sh +143 -0
- package/opus/tests/test_opus_api.c +1904 -0
- package/opus/tests/test_opus_common.h +86 -0
- package/opus/tests/test_opus_custom.c +694 -0
- package/opus/tests/test_opus_decode.c +481 -0
- package/opus/tests/test_opus_dred.c +107 -0
- package/opus/tests/test_opus_encode.c +738 -0
- package/opus/tests/test_opus_extensions.c +750 -0
- package/opus/tests/test_opus_padding.c +94 -0
- package/opus/tests/test_opus_projection.c +384 -0
- package/opus/training/rnn_dump.py +66 -0
- package/opus/training/rnn_train.py +177 -0
- package/opus/training/txt2hdf5.py +12 -0
- package/opus/update_version +65 -0
- package/package.json +2 -2
- package/src/build-ffmpeg-msys.sh +8 -2
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<svg
|
|
3
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
6
|
+
version="1.1"
|
|
7
|
+
x="0px"
|
|
8
|
+
y="0px"
|
|
9
|
+
width="360"
|
|
10
|
+
height="205"
|
|
11
|
+
viewBox="-72 -23.757 360 205"
|
|
12
|
+
overflow="visible"
|
|
13
|
+
enable-background="new -72 -23.757 504 252"
|
|
14
|
+
xml:space="preserve"
|
|
15
|
+
id="svg2"
|
|
16
|
+
style="overflow:visible">
|
|
17
|
+
<defs
|
|
18
|
+
id="defs4">
|
|
19
|
+
<linearGradient
|
|
20
|
+
xlink:href="#SVGID_1_"
|
|
21
|
+
id="linearGradient3027"
|
|
22
|
+
gradientUnits="userSpaceOnUse"
|
|
23
|
+
x1="194.53169"
|
|
24
|
+
y1="95.107399"
|
|
25
|
+
x2="194.53169"
|
|
26
|
+
y2="9.9475983e-14" /><linearGradient
|
|
27
|
+
xlink:href="#SVGID_2_"
|
|
28
|
+
id="linearGradient3029"
|
|
29
|
+
gradientUnits="userSpaceOnUse"
|
|
30
|
+
x1="229.61819"
|
|
31
|
+
y1="116.208"
|
|
32
|
+
x2="229.61819"
|
|
33
|
+
y2="164.46291" /><linearGradient
|
|
34
|
+
xlink:href="#SVGID_3_"
|
|
35
|
+
id="linearGradient3031"
|
|
36
|
+
gradientUnits="userSpaceOnUse"
|
|
37
|
+
x1="43.9897"
|
|
38
|
+
y1="115.4395"
|
|
39
|
+
x2="43.9897"
|
|
40
|
+
y2="165.2314" /><linearGradient
|
|
41
|
+
xlink:href="#SVGID_4_"
|
|
42
|
+
id="linearGradient3033"
|
|
43
|
+
gradientUnits="userSpaceOnUse"
|
|
44
|
+
x1="311.2847"
|
|
45
|
+
y1="115.7188"
|
|
46
|
+
x2="311.2847"
|
|
47
|
+
y2="165.2822" /><linearGradient
|
|
48
|
+
xlink:href="#SVGID_5_"
|
|
49
|
+
id="linearGradient3035"
|
|
50
|
+
gradientUnits="userSpaceOnUse"
|
|
51
|
+
x1="129.1987"
|
|
52
|
+
y1="115.5791"
|
|
53
|
+
x2="129.1987"
|
|
54
|
+
y2="204.4863" /></defs>
|
|
55
|
+
<linearGradient
|
|
56
|
+
id="SVGID_1_"
|
|
57
|
+
gradientUnits="userSpaceOnUse"
|
|
58
|
+
x1="194.53169"
|
|
59
|
+
y1="95.107399"
|
|
60
|
+
x2="194.53169"
|
|
61
|
+
y2="9.9475983e-14">
|
|
62
|
+
<stop
|
|
63
|
+
offset="0.0056"
|
|
64
|
+
style="stop-color:#8E8E8E"
|
|
65
|
+
id="stop7" />
|
|
66
|
+
<stop
|
|
67
|
+
offset="1"
|
|
68
|
+
style="stop-color:#B5B5B5"
|
|
69
|
+
id="stop9" />
|
|
70
|
+
</linearGradient>
|
|
71
|
+
|
|
72
|
+
<linearGradient
|
|
73
|
+
id="SVGID_2_"
|
|
74
|
+
gradientUnits="userSpaceOnUse"
|
|
75
|
+
x1="229.61819"
|
|
76
|
+
y1="116.208"
|
|
77
|
+
x2="229.61819"
|
|
78
|
+
y2="164.46291">
|
|
79
|
+
<stop
|
|
80
|
+
offset="0.0056"
|
|
81
|
+
style="stop-color:#494748"
|
|
82
|
+
id="stop14" />
|
|
83
|
+
<stop
|
|
84
|
+
offset="1"
|
|
85
|
+
style="stop-color:#000000"
|
|
86
|
+
id="stop16" />
|
|
87
|
+
</linearGradient>
|
|
88
|
+
|
|
89
|
+
<linearGradient
|
|
90
|
+
id="SVGID_3_"
|
|
91
|
+
gradientUnits="userSpaceOnUse"
|
|
92
|
+
x1="43.9897"
|
|
93
|
+
y1="115.4395"
|
|
94
|
+
x2="43.9897"
|
|
95
|
+
y2="165.2314">
|
|
96
|
+
<stop
|
|
97
|
+
offset="0.0056"
|
|
98
|
+
style="stop-color:#494748"
|
|
99
|
+
id="stop21" />
|
|
100
|
+
<stop
|
|
101
|
+
offset="1"
|
|
102
|
+
style="stop-color:#000000"
|
|
103
|
+
id="stop23" />
|
|
104
|
+
</linearGradient>
|
|
105
|
+
|
|
106
|
+
<linearGradient
|
|
107
|
+
id="SVGID_4_"
|
|
108
|
+
gradientUnits="userSpaceOnUse"
|
|
109
|
+
x1="311.2847"
|
|
110
|
+
y1="115.7188"
|
|
111
|
+
x2="311.2847"
|
|
112
|
+
y2="165.2822">
|
|
113
|
+
<stop
|
|
114
|
+
offset="0.0056"
|
|
115
|
+
style="stop-color:#494748"
|
|
116
|
+
id="stop28" />
|
|
117
|
+
<stop
|
|
118
|
+
offset="1"
|
|
119
|
+
style="stop-color:#000000"
|
|
120
|
+
id="stop30" />
|
|
121
|
+
</linearGradient>
|
|
122
|
+
|
|
123
|
+
<linearGradient
|
|
124
|
+
id="SVGID_5_"
|
|
125
|
+
gradientUnits="userSpaceOnUse"
|
|
126
|
+
x1="129.1987"
|
|
127
|
+
y1="115.5791"
|
|
128
|
+
x2="129.1987"
|
|
129
|
+
y2="204.4863">
|
|
130
|
+
<stop
|
|
131
|
+
offset="0.0056"
|
|
132
|
+
style="stop-color:#494748"
|
|
133
|
+
id="stop35" />
|
|
134
|
+
<stop
|
|
135
|
+
offset="1"
|
|
136
|
+
style="stop-color:#000000"
|
|
137
|
+
id="stop37" />
|
|
138
|
+
</linearGradient>
|
|
139
|
+
<g
|
|
140
|
+
id="g3020"
|
|
141
|
+
transform="translate(-72.001783,-23.243)"><path
|
|
142
|
+
id="path11"
|
|
143
|
+
d="M 257.355,13.996 C 249.943,7.826 238.533,3.695 223.153,1.588 l -11.302,35.935 c -0.244,1.318 -0.664,2.815 -1.315,4.54 -1.153,2.883 -2.542,5.258 -4.174,7.127 -1.634,1.874 -3.463,3.335 -5.489,4.4 -2.028,1.059 -4.232,1.79 -6.614,2.193 -2.382,0.4 -4.847,0.526 -7.393,0.378 -2.549,-0.148 -4.717,-0.495 -6.501,-1.042 -1.786,-0.546 -3.428,-1.452 -4.925,-2.72 -1.107,-1.245 -1.751,-2.878 -1.927,-4.902 -0.177,-2.024 0.313,-4.527 1.471,-7.509 1.035,-2.592 2.345,-4.852 3.933,-6.771 1.587,-1.921 3.443,-3.411 5.565,-4.467 2.027,-1.059 4.206,-1.768 6.539,-2.125 2.327,-0.354 4.915,-0.448 7.756,-0.283 2.352,0.139 4.542,0.485 6.574,1.048 0.964,0.265 1.808,0.613 2.542,1.033 L 216.57,0.832 c -2.142,-0.202 -4.333,-0.379 -6.609,-0.51 -21.901,-1.279 -40.308,1.251 -55.229,7.576 -14.918,6.33 -24.865,15.715 -29.833,28.154 -1.491,3.814 -2.292,7.408 -2.41,10.785 l -0.01,-0.005 c -1.426,24.463 14.295,38.245 24.007,44.373 3.897,2.609 7.362,3.901 7.362,3.901 l 4.451,-14.225 1.316,-3.496 c 5.859,1.108 12.375,1.879 19.573,2.298 22.053,1.286 40.539,-1.232 55.458,-7.564 14.916,-6.325 24.78,-15.638 29.591,-27.942 4.806,-12.295 2.514,-22.357 -6.882,-30.181 z"
|
|
144
|
+
style="fill:url(#linearGradient3027)"/><path
|
|
145
|
+
id="path18"
|
|
146
|
+
d="m 269.531,139.499 c -2.511,7.718 -8.23,13.807 -17.156,18.27 -8.926,4.463 -20.223,6.694 -33.891,6.694 -13.484,0 -23.292,-2.208 -29.43,-6.626 -6.136,-4.415 -7.904,-10.528 -5.299,-18.338 l 7.53,-23.291 h 25.663 l -7.252,23.151 c -0.931,2.883 -1.232,5.278 -0.906,7.183 0.326,1.907 1.046,3.417 2.162,4.533 1.394,1.113 2.95,1.88 4.672,2.299 1.72,0.419 3.788,0.629 6.207,0.629 2.417,0 4.742,-0.255 6.974,-0.769 2.231,-0.51 4.275,-1.323 6.138,-2.438 1.858,-1.116 3.508,-2.602 4.951,-4.463 1.44,-1.859 2.626,-4.186 3.557,-6.974 l 7.532,-23.151 h 25.663 l -7.115,23.291 z"
|
|
147
|
+
style="fill:url(#linearGradient3029)"/><path
|
|
148
|
+
id="path25"
|
|
149
|
+
d="m 86.875,140.404 c 2.51,-7.717 0.743,-13.808 -5.301,-18.271 -6.044,-4.463 -15.899,-6.694 -29.567,-6.694 -13.483,0 -24.686,2.21 -33.611,6.625 -8.928,4.417 -14.693,10.53 -17.295,18.34 -2.51,7.72 -0.722,13.786 5.37,18.201 6.089,4.418 15.922,6.626 29.498,6.626 13.575,0 24.826,-2.208 33.753,-6.626 8.924,-4.415 14.642,-10.481 17.153,-18.201 z m -26.082,0.14 c -0.931,2.978 -2.069,5.3 -3.417,6.974 -1.349,1.675 -3.046,3.116 -5.09,4.323 -1.768,1.116 -3.765,1.883 -5.997,2.302 -2.232,0.419 -4.463,0.627 -6.696,0.627 -2.697,0 -4.999,-0.23 -6.903,-0.696 -1.907,-0.465 -3.417,-1.256 -4.533,-2.371 -1.21,-1.116 -1.906,-2.626 -2.092,-4.533 -0.188,-1.904 0.14,-4.114 0.977,-6.625 0.929,-2.88 2.161,-5.275 3.696,-7.183 1.534,-1.904 3.229,-3.417 5.09,-4.533 2.138,-1.115 4.206,-1.882 6.207,-2.301 1.999,-0.419 4.207,-0.627 6.625,-0.627 2.416,0 4.603,0.257 6.555,0.767 1.953,0.512 3.486,1.325 4.603,2.44 1.115,1.116 1.789,2.605 2.021,4.463 0.231,1.86 -0.117,4.185 -1.046,6.973 z"
|
|
150
|
+
style="fill:url(#linearGradient3031)"/><path
|
|
151
|
+
id="path32"
|
|
152
|
+
d="m 310.14,126.807 c 2.928,-0.698 9.041,-1.046 18.339,-1.046 4.833,0 9.506,0.487 14.018,1.465 4.508,0.976 9.042,2.209 13.598,3.696 L 360,119.066 c -2.698,-0.744 -6.625,-1.487 -11.787,-2.231 -5.159,-0.744 -10.669,-1.116 -16.526,-1.116 -17.574,0 -30.405,1.513 -38.493,4.533 -8.089,3.022 -12.879,6.812 -14.366,11.366 -1.115,3.44 -0.348,6.346 2.302,8.717 2.65,2.371 7.322,4.115 14.016,5.229 2.511,0.467 6.624,0.838 12.343,1.117 5.718,0.279 9.46,0.557 11.228,0.836 3.717,0.373 6.205,0.837 7.461,1.396 1.254,0.558 1.695,1.394 1.325,2.511 -0.467,1.303 -1.976,2.279 -4.533,2.928 -2.559,0.652 -6.3,0.977 -11.227,0.977 -0.77,0 -1.513,-0.003 -2.241,-0.007 -1.846,-0.101 -3.858,-0.272 -5.791,-0.476 -2.06,-0.22 -4.118,-0.485 -6.162,-0.795 -4.089,-0.62 -8.132,-1.419 -12.058,-2.439 -3.921,-1.022 -7.734,-2.267 -11.26,-3.813 -0.474,-0.208 -0.932,-0.433 -1.394,-0.654 -2.476,3.979 -5.905,7.451 -10.27,10.396 2.259,1.085 4.539,1.976 6.807,2.742 4.52,1.506 9.034,2.52 13.525,3.266 4.494,0.741 8.969,1.203 13.431,1.472 2.231,0.133 4.459,0.215 6.691,0.248 1.966,0.026 3.882,0.02 5.902,-0.045 12.216,-0.072 22.318,-1.53 30.294,-4.386 8.18,-2.929 13.062,-6.81 14.644,-11.645 1.116,-3.349 0.441,-6.138 -2.021,-8.369 -2.466,-2.231 -6.813,-3.857 -13.041,-4.882 -2.883,-0.371 -5.768,-0.719 -8.647,-1.046 -2.884,-0.324 -5.533,-0.628 -7.951,-0.906 -9.577,-0.65 -14.924,-1.255 -16.039,-1.813 -1.116,-0.558 -1.488,-1.394 -1.116,-2.511 0.467,-1.209 2.164,-2.163 5.094,-2.859 z"
|
|
153
|
+
style="fill:url(#linearGradient3033)"/><path
|
|
154
|
+
id="path39"
|
|
155
|
+
d="m 172.838,122.204 c -6.091,-4.415 -15.924,-6.625 -29.499,-6.625 -13.577,0 -24.826,2.21 -33.751,6.625 -8.926,4.417 -14.4,10.415 -16.911,18.131 l -0.105,0.349 -12.692,39.19 c -5.26,17.631 17.526,24.612 17.526,24.612 l 7.58,-24.612 0.656,-2.106 c 0.592,-1.982 1.192,-3.964 1.781,-5.948 l 1.686,-5.531 c 0.603,-1.832 1.207,-3.662 1.85,-5.481 l 3.979,-10.875 1.993,-5.436 1.429,-3.718 c 0.051,-0.172 0.099,-0.339 0.155,-0.514 0.836,-2.509 1.953,-4.718 3.347,-6.624 1.396,-1.904 3.069,-3.417 5.021,-4.533 1.859,-1.115 3.882,-1.904 6.067,-2.371 2.183,-0.464 4.625,-0.696 7.322,-0.696 2.231,0 4.325,0.208 6.277,0.627 1.952,0.419 3.438,1.186 4.463,2.301 1.301,1.209 2.068,2.65 2.3,4.323 0.231,1.675 -0.117,3.999 -1.046,6.974 -0.931,2.79 -2.116,5.116 -3.557,6.974 -1.442,1.862 -3.091,3.348 -4.951,4.464 -1.861,1.115 -3.905,1.931 -6.136,2.44 -2.231,0.512 -4.558,0.767 -6.973,0.767 -2.419,0 -4.487,-0.208 -6.207,-0.627 -1.721,-0.419 -3.326,-1.186 -4.812,-2.302 -0.112,-0.112 -0.201,-0.247 -0.305,-0.366 l -3.674,10.658 c -0.206,0.613 -0.403,1.228 -0.601,1.842 3.479,0.708 7.507,1.13 12.111,1.256 13.668,0 24.965,-2.231 33.893,-6.694 8.926,-4.464 14.643,-10.552 17.154,-18.271 2.511,-7.719 0.718,-13.786 -5.37,-18.203 z"
|
|
156
|
+
style="fill:url(#linearGradient3035)"/></g>
|
|
157
|
+
</svg>
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
diff --git a/celt/bands.c b/celt/bands.c
|
|
2
|
+
index 6962587..32e1de6 100644
|
|
3
|
+
--- a/celt/bands.c
|
|
4
|
+
+++ b/celt/bands.c
|
|
5
|
+
@@ -1234,9 +1234,23 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end,
|
|
6
|
+
b = 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
- if (resynth && M*eBands[i]-N >= M*eBands[start] && (update_lowband || lowband_offset==0))
|
|
10
|
+
+ if (resynth && (M*eBands[i]-N >= M*eBands[start] || i==start+1) && (update_lowband || lowband_offset==0))
|
|
11
|
+
lowband_offset = i;
|
|
12
|
+
|
|
13
|
+
+ if (i == start+1)
|
|
14
|
+
+ {
|
|
15
|
+
+ int n1, n2;
|
|
16
|
+
+ int offset;
|
|
17
|
+
+ n1 = M*(eBands[start+1]-eBands[start]);
|
|
18
|
+
+ n2 = M*(eBands[start+2]-eBands[start+1]);
|
|
19
|
+
+ offset = M*eBands[start];
|
|
20
|
+
+ /* Duplicate enough of the first band folding data to be able to fold the second band.
|
|
21
|
+
+ Copies no data for CELT-only mode. */
|
|
22
|
+
+ OPUS_COPY(&norm[offset+n1], &norm[offset+2*n1 - n2], n2-n1);
|
|
23
|
+
+ if (C==2)
|
|
24
|
+
+ OPUS_COPY(&norm2[offset+n1], &norm2[offset+2*n1 - n2], n2-n1);
|
|
25
|
+
+ }
|
|
26
|
+
+
|
|
27
|
+
tf_change = tf_res[i];
|
|
28
|
+
if (i>=m->effEBands)
|
|
29
|
+
{
|
|
30
|
+
@@ -1257,7 +1271,7 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end,
|
|
31
|
+
fold_start = lowband_offset;
|
|
32
|
+
while(M*eBands[--fold_start] > effective_lowband);
|
|
33
|
+
fold_end = lowband_offset-1;
|
|
34
|
+
- while(M*eBands[++fold_end] < effective_lowband+N);
|
|
35
|
+
+ while(++fold_end < i && M*eBands[fold_end] < effective_lowband+N);
|
|
36
|
+
x_cm = y_cm = 0;
|
|
37
|
+
fold_i = fold_start; do {
|
|
38
|
+
x_cm |= collapse_masks[fold_i*C+0];
|
|
39
|
+
diff --git a/celt/quant_bands.c b/celt/quant_bands.c
|
|
40
|
+
index e5ed9ef..82fb823 100644
|
|
41
|
+
--- a/celt/quant_bands.c
|
|
42
|
+
+++ b/celt/quant_bands.c
|
|
43
|
+
@@ -552,6 +552,7 @@ void log2Amp(const CELTMode *m, int start, int end,
|
|
44
|
+
{
|
|
45
|
+
opus_val16 lg = ADD16(oldEBands[i+c*m->nbEBands],
|
|
46
|
+
SHL16((opus_val16)eMeans[i],6));
|
|
47
|
+
+ lg = MIN32(QCONST32(32.f, 16), lg);
|
|
48
|
+
eBands[i+c*m->nbEBands] = PSHR32(celt_exp2(lg),4);
|
|
49
|
+
}
|
|
50
|
+
for (;i<m->nbEBands;i++)
|
|
51
|
+
diff --git a/silk/LPC_inv_pred_gain.c b/silk/LPC_inv_pred_gain.c
|
|
52
|
+
index 60c439b..6c301da 100644
|
|
53
|
+
--- a/silk/LPC_inv_pred_gain.c
|
|
54
|
+
+++ b/silk/LPC_inv_pred_gain.c
|
|
55
|
+
@@ -84,8 +84,13 @@ static opus_int32 LPC_inverse_pred_gain_QA( /* O Returns inver
|
|
56
|
+
|
|
57
|
+
/* Update AR coefficient */
|
|
58
|
+
for( n = 0; n < k; n++ ) {
|
|
59
|
+
- tmp_QA = Aold_QA[ n ] - MUL32_FRAC_Q( Aold_QA[ k - n - 1 ], rc_Q31, 31 );
|
|
60
|
+
- Anew_QA[ n ] = MUL32_FRAC_Q( tmp_QA, rc_mult2 , mult2Q );
|
|
61
|
+
+ opus_int64 tmp64;
|
|
62
|
+
+ tmp_QA = silk_SUB_SAT32( Aold_QA[ n ], MUL32_FRAC_Q( Aold_QA[ k - n - 1 ], rc_Q31, 31 ) );
|
|
63
|
+
+ tmp64 = silk_RSHIFT_ROUND64( silk_SMULL( tmp_QA, rc_mult2 ), mult2Q);
|
|
64
|
+
+ if( tmp64 > silk_int32_MAX || tmp64 < silk_int32_MIN ) {
|
|
65
|
+
+ return 0;
|
|
66
|
+
+ }
|
|
67
|
+
+ Anew_QA[ n ] = ( opus_int32 )tmp64;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
diff --git a/silk/NLSF_stabilize.c b/silk/NLSF_stabilize.c
|
|
72
|
+
index 979aaba..2ef2398 100644
|
|
73
|
+
--- a/silk/NLSF_stabilize.c
|
|
74
|
+
+++ b/silk/NLSF_stabilize.c
|
|
75
|
+
@@ -134,7 +134,7 @@ void silk_NLSF_stabilize(
|
|
76
|
+
|
|
77
|
+
/* Keep delta_min distance between the NLSFs */
|
|
78
|
+
for( i = 1; i < L; i++ )
|
|
79
|
+
- NLSF_Q15[i] = silk_max_int( NLSF_Q15[i], NLSF_Q15[i-1] + NDeltaMin_Q15[i] );
|
|
80
|
+
+ NLSF_Q15[i] = silk_max_int( NLSF_Q15[i], silk_ADD_SAT16( NLSF_Q15[i-1], NDeltaMin_Q15[i] ) );
|
|
81
|
+
|
|
82
|
+
/* Last NLSF should be no higher than 1 - NDeltaMin[L] */
|
|
83
|
+
NLSF_Q15[L-1] = silk_min_int( NLSF_Q15[L-1], (1<<15) - NDeltaMin_Q15[L] );
|
|
84
|
+
diff --git a/silk/dec_API.c b/silk/dec_API.c
|
|
85
|
+
index efd7918..21bb7e0 100644
|
|
86
|
+
--- a/silk/dec_API.c
|
|
87
|
+
+++ b/silk/dec_API.c
|
|
88
|
+
@@ -72,6 +72,9 @@ opus_int silk_InitDecoder( /* O Returns error co
|
|
89
|
+
for( n = 0; n < DECODER_NUM_CHANNELS; n++ ) {
|
|
90
|
+
ret = silk_init_decoder( &channel_state[ n ] );
|
|
91
|
+
}
|
|
92
|
+
+ silk_memset(&((silk_decoder *)decState)->sStereo, 0, sizeof(((silk_decoder *)decState)->sStereo));
|
|
93
|
+
+ /* Not strictly needed, but it's cleaner that way */
|
|
94
|
+
+ ((silk_decoder *)decState)->prev_decode_only_middle = 0;
|
|
95
|
+
|
|
96
|
+
return ret;
|
|
97
|
+
}
|
|
98
|
+
diff --git a/silk/resampler_private_IIR_FIR.c b/silk/resampler_private_IIR_FIR.c
|
|
99
|
+
index dbd6d9a..91a43aa 100644
|
|
100
|
+
--- a/silk/resampler_private_IIR_FIR.c
|
|
101
|
+
+++ b/silk/resampler_private_IIR_FIR.c
|
|
102
|
+
@@ -75,10 +75,10 @@ void silk_resampler_private_IIR_FIR(
|
|
103
|
+
silk_resampler_state_struct *S = (silk_resampler_state_struct *)SS;
|
|
104
|
+
opus_int32 nSamplesIn;
|
|
105
|
+
opus_int32 max_index_Q16, index_increment_Q16;
|
|
106
|
+
- opus_int16 buf[ RESAMPLER_MAX_BATCH_SIZE_IN + RESAMPLER_ORDER_FIR_12 ];
|
|
107
|
+
+ opus_int16 buf[ 2*RESAMPLER_MAX_BATCH_SIZE_IN + RESAMPLER_ORDER_FIR_12 ];
|
|
108
|
+
|
|
109
|
+
/* Copy buffered samples to start of buffer */
|
|
110
|
+
- silk_memcpy( buf, S->sFIR, RESAMPLER_ORDER_FIR_12 * sizeof( opus_int32 ) );
|
|
111
|
+
+ silk_memcpy( buf, S->sFIR, RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) );
|
|
112
|
+
|
|
113
|
+
/* Iterate over blocks of frameSizeIn input samples */
|
|
114
|
+
index_increment_Q16 = S->invRatio_Q16;
|
|
115
|
+
@@ -95,13 +95,13 @@ void silk_resampler_private_IIR_FIR(
|
|
116
|
+
|
|
117
|
+
if( inLen > 0 ) {
|
|
118
|
+
/* More iterations to do; copy last part of filtered signal to beginning of buffer */
|
|
119
|
+
- silk_memcpy( buf, &buf[ nSamplesIn << 1 ], RESAMPLER_ORDER_FIR_12 * sizeof( opus_int32 ) );
|
|
120
|
+
+ silk_memmove( buf, &buf[ nSamplesIn << 1 ], RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) );
|
|
121
|
+
} else {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Copy last part of filtered signal to the state for the next call */
|
|
127
|
+
- silk_memcpy( S->sFIR, &buf[ nSamplesIn << 1 ], RESAMPLER_ORDER_FIR_12 * sizeof( opus_int32 ) );
|
|
128
|
+
+ silk_memcpy( S->sFIR, &buf[ nSamplesIn << 1 ], RESAMPLER_ORDER_FIR_12 * sizeof( opus_int16 ) );
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
diff --git a/src/opus_decoder.c b/src/opus_decoder.c
|
|
132
|
+
index 0cc56f8..8a30fbc 100644
|
|
133
|
+
--- a/src/opus_decoder.c
|
|
134
|
+
+++ b/src/opus_decoder.c
|
|
135
|
+
@@ -595,16 +595,14 @@ static int opus_packet_parse_impl(const unsigned char *data, int len,
|
|
136
|
+
/* Padding flag is bit 6 */
|
|
137
|
+
if (ch&0x40)
|
|
138
|
+
{
|
|
139
|
+
- int padding=0;
|
|
140
|
+
int p;
|
|
141
|
+
do {
|
|
142
|
+
if (len<=0)
|
|
143
|
+
return OPUS_INVALID_PACKET;
|
|
144
|
+
p = *data++;
|
|
145
|
+
len--;
|
|
146
|
+
- padding += p==255 ? 254: p;
|
|
147
|
+
+ len -= p==255 ? 254: p;
|
|
148
|
+
} while (p==255);
|
|
149
|
+
- len -= padding;
|
|
150
|
+
}
|
|
151
|
+
if (len<0)
|
|
152
|
+
return OPUS_INVALID_PACKET;
|
|
153
|
+
diff --git a/run_vectors.sh b/run_vectors.sh
|
|
154
|
+
index 7cd23ed..4841b0a 100755
|
|
155
|
+
--- a/run_vectors.sh
|
|
156
|
+
+++ b/run_vectors.sh
|
|
157
|
+
@@ -1,3 +1,5 @@
|
|
158
|
+
+#!/bin/sh
|
|
159
|
+
+#
|
|
160
|
+
# Copyright (c) 2011-2012 IETF Trust, Jean-Marc Valin. All rights reserved.
|
|
161
|
+
#
|
|
162
|
+
# This file is extracted from RFC6716. Please see that RFC for additional
|
|
163
|
+
@@ -31,10 +33,8 @@
|
|
164
|
+
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
165
|
+
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
166
|
+
|
|
167
|
+
-#!/bin/sh
|
|
168
|
+
-
|
|
169
|
+
-rm logs_mono.txt
|
|
170
|
+
-rm logs_stereo.txt
|
|
171
|
+
+rm -f logs_mono.txt logs_mono2.txt
|
|
172
|
+
+rm -f logs_stereo.txt logs_stereo2.txt
|
|
173
|
+
|
|
174
|
+
if [ "$#" -ne "3" ]; then
|
|
175
|
+
echo "usage: run_vectors.sh <exec path> <vector path> <rate>"
|
|
176
|
+
@@ -45,18 +45,23 @@ CMD_PATH=$1
|
|
177
|
+
VECTOR_PATH=$2
|
|
178
|
+
RATE=$3
|
|
179
|
+
|
|
180
|
+
-OPUS_DEMO=$CMD_PATH/opus_demo
|
|
181
|
+
-OPUS_COMPARE=$CMD_PATH/opus_compare
|
|
182
|
+
+: ${OPUS_DEMO:=$CMD_PATH/opus_demo}
|
|
183
|
+
+: ${OPUS_COMPARE:=$CMD_PATH/opus_compare}
|
|
184
|
+
|
|
185
|
+
if [ -d $VECTOR_PATH ]; then
|
|
186
|
+
echo Test vectors found in $VECTOR_PATH
|
|
187
|
+
else
|
|
188
|
+
echo No test vectors found
|
|
189
|
+
- #Don't make the test fail here because the test vectors will be
|
|
190
|
+
- #distributed separately
|
|
191
|
+
+ #Don't make the test fail here because the test vectors
|
|
192
|
+
+ #will be distributed separately
|
|
193
|
+
exit 0
|
|
194
|
+
fi
|
|
195
|
+
|
|
196
|
+
+if [ ! -x $OPUS_COMPARE ]; then
|
|
197
|
+
+ echo ERROR: Compare program not found: $OPUS_COMPARE
|
|
198
|
+
+ exit 1
|
|
199
|
+
+fi
|
|
200
|
+
+
|
|
201
|
+
if [ -x $OPUS_DEMO ]; then
|
|
202
|
+
echo Decoding with $OPUS_DEMO
|
|
203
|
+
else
|
|
204
|
+
@@ -82,9 +87,11 @@ do
|
|
205
|
+
echo ERROR: decoding failed
|
|
206
|
+
exit 1
|
|
207
|
+
fi
|
|
208
|
+
- $OPUS_COMPARE -r $RATE $VECTOR_PATH/testvector$file.dec tmp.out >> logs_mono.txt 2>&1
|
|
209
|
+
+ $OPUS_COMPARE -r $RATE $VECTOR_PATH/testvector${file}.dec tmp.out >> logs_mono.txt 2>&1
|
|
210
|
+
float_ret=$?
|
|
211
|
+
- if [ "$float_ret" -eq "0" ]; then
|
|
212
|
+
+ $OPUS_COMPARE -r $RATE $VECTOR_PATH/testvector${file}m.dec tmp.out >> logs_mono2.txt 2>&1
|
|
213
|
+
+ float_ret2=$?
|
|
214
|
+
+ if [ "$float_ret" -eq "0" ] || [ "$float_ret2" -eq "0" ]; then
|
|
215
|
+
echo output matches reference
|
|
216
|
+
else
|
|
217
|
+
echo ERROR: output does not match reference
|
|
218
|
+
@@ -111,9 +118,11 @@ do
|
|
219
|
+
echo ERROR: decoding failed
|
|
220
|
+
exit 1
|
|
221
|
+
fi
|
|
222
|
+
- $OPUS_COMPARE -s -r $RATE $VECTOR_PATH/testvector$file.dec tmp.out >> logs_stereo.txt 2>&1
|
|
223
|
+
+ $OPUS_COMPARE -s -r $RATE $VECTOR_PATH/testvector${file}.dec tmp.out >> logs_stereo.txt 2>&1
|
|
224
|
+
float_ret=$?
|
|
225
|
+
- if [ "$float_ret" -eq "0" ]; then
|
|
226
|
+
+ $OPUS_COMPARE -s -r $RATE $VECTOR_PATH/testvector${file}m.dec tmp.out >> logs_stereo2.txt 2>&1
|
|
227
|
+
+ float_ret2=$?
|
|
228
|
+
+ if [ "$float_ret" -eq "0" ] || [ "$float_ret2" -eq "0" ]; then
|
|
229
|
+
echo output matches reference
|
|
230
|
+
else
|
|
231
|
+
echo ERROR: output does not match reference
|
|
232
|
+
@@ -125,5 +134,10 @@ done
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
echo All tests have passed successfully
|
|
236
|
+
-grep quality logs_mono.txt | awk '{sum+=$4}END{print "Average mono quality is", sum/NR, "%"}'
|
|
237
|
+
-grep quality logs_stereo.txt | awk '{sum+=$4}END{print "Average stereo quality is", sum/NR, "%"}'
|
|
238
|
+
+mono1=`grep quality logs_mono.txt | awk '{sum+=$4}END{if (NR == 12) sum /= 12; else sum = 0; print sum}'`
|
|
239
|
+
+mono2=`grep quality logs_mono2.txt | awk '{sum+=$4}END{if (NR == 12) sum /= 12; else sum = 0; print sum}'`
|
|
240
|
+
+echo $mono1 $mono2 | awk '{if ($2 > $1) $1 = $2; print "Average mono quality is", $1, "%"}'
|
|
241
|
+
+
|
|
242
|
+
+stereo1=`grep quality logs_stereo.txt | awk '{sum+=$4}END{if (NR == 12) sum /= 12; else sum = 0; print sum}'`
|
|
243
|
+
+stereo2=`grep quality logs_stereo2.txt | awk '{sum+=$4}END{if (NR == 12) sum /= 12; else sum = 0; print sum}'`
|
|
244
|
+
+echo $stereo1 $stereo2 | awk '{if ($2 > $1) $1 = $2; print "Average stereo quality is", $1, "%"}'
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
= Release checklist =
|
|
2
|
+
|
|
3
|
+
== Source release ==
|
|
4
|
+
|
|
5
|
+
- Check for uncommitted changes to master.
|
|
6
|
+
- Update OPUS_LT_* API versioning in configure.ac.
|
|
7
|
+
- Tag the release commit with 'git tag -s vN.M'.
|
|
8
|
+
- Include release notes in the tag annotation.
|
|
9
|
+
- Verify 'make distcheck' produces a tarball with
|
|
10
|
+
the desired name.
|
|
11
|
+
- Push tag to public repo.
|
|
12
|
+
- Upload source package 'opus-${version}.tar.gz'
|
|
13
|
+
- Add to https://svn.xiph.org/releases/opus/
|
|
14
|
+
- Update checksum files
|
|
15
|
+
- svn commit
|
|
16
|
+
- Copy to archive.mozilla.org/pub/opus/
|
|
17
|
+
- Update checksum files there as well.
|
|
18
|
+
- Add release notes to https://gitlab.xiph.org/xiph/opus-website.git
|
|
19
|
+
- Update links and checksums on the downloads page.
|
|
20
|
+
- Add a copy of the documentation to <https://www.opus-codec.org/docs/>
|
|
21
|
+
and update the links.
|
|
22
|
+
- Update /topic in #opus IRC channel.
|
|
23
|
+
|
|
24
|
+
Releases are committed to https://svn.xiph.org/releases/opus/
|
|
25
|
+
which propagates to downloads.xiph.org, and copied manually
|
|
26
|
+
to https://archive.mozilla.org/pub/opus/
|
|
27
|
+
|
|
28
|
+
Website updates are committed to https://gitlab.xiph.org/xiph/opus-website.git
|
|
29
|
+
which propagates to https://opus-codec.org/
|
|
30
|
+
|
|
31
|
+
== Binary release ==
|
|
32
|
+
|
|
33
|
+
We usually build opus-tools binaries for MacOS and Windows.
|
|
34
|
+
|
|
35
|
+
Binary releases are copied manually to
|
|
36
|
+
https://archive.mozilla.org/pub/opus/win32/
|
|
37
|
+
|
|
38
|
+
For Mac, submit a pull request to homebrew.
|
|
39
|
+
|
|
40
|
+
== Website updates ==
|
|
41
|
+
|
|
42
|
+
For major releases, recreate the files on https://opus-codec.org/examples/
|
|
43
|
+
with the next encoder.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/* Copyright (c) 2013 Jean-Marc Valin */
|
|
2
|
+
/*
|
|
3
|
+
Redistribution and use in source and binary forms, with or without
|
|
4
|
+
modification, are permitted provided that the following conditions
|
|
5
|
+
are met:
|
|
6
|
+
|
|
7
|
+
- Redistributions of source code must retain the above copyright
|
|
8
|
+
notice, this list of conditions and the following disclaimer.
|
|
9
|
+
|
|
10
|
+
- Redistributions in binary form must reproduce the above copyright
|
|
11
|
+
notice, this list of conditions and the following disclaimer in the
|
|
12
|
+
documentation and/or other materials provided with the distribution.
|
|
13
|
+
|
|
14
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
+
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
16
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
17
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
|
|
18
|
+
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
19
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
20
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
21
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
22
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
23
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
24
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/* This is meant to be a simple example of encoding and decoding audio
|
|
28
|
+
using Opus. It should make it easy to understand how the Opus API
|
|
29
|
+
works. For more information, see the full API documentation at:
|
|
30
|
+
https://www.opus-codec.org/docs/ */
|
|
31
|
+
|
|
32
|
+
#include <stdlib.h>
|
|
33
|
+
#include <errno.h>
|
|
34
|
+
#include <string.h>
|
|
35
|
+
#include <opus.h>
|
|
36
|
+
#include <stdio.h>
|
|
37
|
+
|
|
38
|
+
/*The frame size is hardcoded for this sample code but it doesn't have to be*/
|
|
39
|
+
#define FRAME_SIZE 960
|
|
40
|
+
#define SAMPLE_RATE 48000
|
|
41
|
+
#define CHANNELS 2
|
|
42
|
+
#define APPLICATION OPUS_APPLICATION_AUDIO
|
|
43
|
+
#define BITRATE 64000
|
|
44
|
+
|
|
45
|
+
#define MAX_FRAME_SIZE 6*960
|
|
46
|
+
#define MAX_PACKET_SIZE (3*1276)
|
|
47
|
+
|
|
48
|
+
int main(int argc, char **argv)
|
|
49
|
+
{
|
|
50
|
+
char *inFile;
|
|
51
|
+
FILE *fin;
|
|
52
|
+
char *outFile;
|
|
53
|
+
FILE *fout;
|
|
54
|
+
opus_int16 in[FRAME_SIZE*CHANNELS];
|
|
55
|
+
opus_int16 out[MAX_FRAME_SIZE*CHANNELS];
|
|
56
|
+
unsigned char cbits[MAX_PACKET_SIZE];
|
|
57
|
+
int nbBytes;
|
|
58
|
+
/*Holds the state of the encoder and decoder */
|
|
59
|
+
OpusEncoder *encoder;
|
|
60
|
+
OpusDecoder *decoder;
|
|
61
|
+
int err;
|
|
62
|
+
|
|
63
|
+
if (argc != 3)
|
|
64
|
+
{
|
|
65
|
+
fprintf(stderr, "usage: trivial_example input.pcm output.pcm\n");
|
|
66
|
+
fprintf(stderr, "input and output are 16-bit little-endian raw files\n");
|
|
67
|
+
return EXIT_FAILURE;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/*Create a new encoder state */
|
|
71
|
+
encoder = opus_encoder_create(SAMPLE_RATE, CHANNELS, APPLICATION, &err);
|
|
72
|
+
if (err<0)
|
|
73
|
+
{
|
|
74
|
+
fprintf(stderr, "failed to create an encoder: %s\n", opus_strerror(err));
|
|
75
|
+
return EXIT_FAILURE;
|
|
76
|
+
}
|
|
77
|
+
/* Set the desired bit-rate. You can also set other parameters if needed.
|
|
78
|
+
The Opus library is designed to have good defaults, so only set
|
|
79
|
+
parameters you know you need. Doing otherwise is likely to result
|
|
80
|
+
in worse quality, but better. */
|
|
81
|
+
err = opus_encoder_ctl(encoder, OPUS_SET_BITRATE(BITRATE));
|
|
82
|
+
if (err<0)
|
|
83
|
+
{
|
|
84
|
+
fprintf(stderr, "failed to set bitrate: %s\n", opus_strerror(err));
|
|
85
|
+
return EXIT_FAILURE;
|
|
86
|
+
}
|
|
87
|
+
inFile = argv[1];
|
|
88
|
+
fin = fopen(inFile, "rb");
|
|
89
|
+
if (fin==NULL)
|
|
90
|
+
{
|
|
91
|
+
fprintf(stderr, "failed to open input file: %s\n", strerror(errno));
|
|
92
|
+
return EXIT_FAILURE;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/* Create a new decoder state. */
|
|
97
|
+
decoder = opus_decoder_create(SAMPLE_RATE, CHANNELS, &err);
|
|
98
|
+
if (err<0)
|
|
99
|
+
{
|
|
100
|
+
fprintf(stderr, "failed to create decoder: %s\n", opus_strerror(err));
|
|
101
|
+
return EXIT_FAILURE;
|
|
102
|
+
}
|
|
103
|
+
outFile = argv[2];
|
|
104
|
+
fout = fopen(outFile, "wb");
|
|
105
|
+
if (fout==NULL)
|
|
106
|
+
{
|
|
107
|
+
fprintf(stderr, "failed to open output file: %s\n", strerror(errno));
|
|
108
|
+
return EXIT_FAILURE;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
while (1)
|
|
112
|
+
{
|
|
113
|
+
int i;
|
|
114
|
+
unsigned char pcm_bytes[MAX_FRAME_SIZE*CHANNELS*2];
|
|
115
|
+
int frame_size;
|
|
116
|
+
size_t samples;
|
|
117
|
+
|
|
118
|
+
/* Read a 16 bits/sample audio frame. */
|
|
119
|
+
samples = fread(pcm_bytes, sizeof(short)*CHANNELS, FRAME_SIZE, fin);
|
|
120
|
+
|
|
121
|
+
/* For simplicity, only read whole frames. In a real application,
|
|
122
|
+
* we'd pad the final partial frame with zeroes, record the exact
|
|
123
|
+
* duration, and trim the decoded audio to match.
|
|
124
|
+
*/
|
|
125
|
+
if (samples != FRAME_SIZE)
|
|
126
|
+
{
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* Convert from little-endian ordering. */
|
|
131
|
+
for (i=0;i<CHANNELS*FRAME_SIZE;i++)
|
|
132
|
+
{
|
|
133
|
+
in[i]=pcm_bytes[2*i+1]<<8|pcm_bytes[2*i];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Encode the frame. */
|
|
137
|
+
nbBytes = opus_encode(encoder, in, FRAME_SIZE, cbits, MAX_PACKET_SIZE);
|
|
138
|
+
if (nbBytes<0)
|
|
139
|
+
{
|
|
140
|
+
fprintf(stderr, "encode failed: %s\n", opus_strerror(nbBytes));
|
|
141
|
+
return EXIT_FAILURE;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
/* Decode the data. In this example, frame_size will be constant because
|
|
146
|
+
the encoder is using a constant frame size. However, that may not
|
|
147
|
+
be the case for all encoders, so the decoder must always check
|
|
148
|
+
the frame size returned. */
|
|
149
|
+
frame_size = opus_decode(decoder, cbits, nbBytes, out, MAX_FRAME_SIZE, 0);
|
|
150
|
+
if (frame_size<0)
|
|
151
|
+
{
|
|
152
|
+
fprintf(stderr, "decoder failed: %s\n", opus_strerror(frame_size));
|
|
153
|
+
return EXIT_FAILURE;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Convert to little-endian ordering. */
|
|
157
|
+
for(i=0;i<CHANNELS*frame_size;i++)
|
|
158
|
+
{
|
|
159
|
+
pcm_bytes[2*i]=out[i]&0xFF;
|
|
160
|
+
pcm_bytes[2*i+1]=(out[i]>>8)&0xFF;
|
|
161
|
+
}
|
|
162
|
+
/* Write the decoded audio to file. */
|
|
163
|
+
fwrite(pcm_bytes, sizeof(short), frame_size*CHANNELS, fout);
|
|
164
|
+
}
|
|
165
|
+
/*Destroy the encoder state*/
|
|
166
|
+
opus_encoder_destroy(encoder);
|
|
167
|
+
opus_decoder_destroy(decoder);
|
|
168
|
+
fclose(fin);
|
|
169
|
+
fclose(fout);
|
|
170
|
+
return EXIT_SUCCESS;
|
|
171
|
+
}
|