Import Cobalt 25.master.0.1033734
diff --git a/third_party/opus/.appveyor.yml b/third_party/opus/.appveyor.yml
deleted file mode 100644
index a0f4a77..0000000
--- a/third_party/opus/.appveyor.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-image: Visual Studio 2015
-configuration:
-- Debug
-- DebugDLL
-- DebugDLL_fixed
-- Release
-- ReleaseDLL
-- ReleaseDLL_fixed
-
-platform:
-- Win32
-- x64
-
-environment:
- api_key:
- secure: kR3Ac0NjGwFnTmXdFrR8d6VXjdk5F7L4F/BilC4nvaM=
-
-build:
- project: win32\VS2015\opus.sln
- parallel: true
- verbosity: minimal
-
-after_build:
-- cd %APPVEYOR_BUILD_FOLDER%
-- 7z a opus.zip win32\VS2015\%PLATFORM%\%CONFIGURATION%\opus.??? include\*.h
-
-test_script:
-- cd %APPVEYOR_BUILD_FOLDER%\win32\VS2015\%PLATFORM%\%CONFIGURATION%
-- test_opus_api.exe
-- test_opus_decode.exe
-- test_opus_encode.exe
-
-artifacts:
-- path: opus.zip
-
-on_success:
-- ps: if ($env:api_key -and "$env:configuration/$env:platform" -eq "ReleaseDLL_fixed/x64") { Start-AppveyorBuild -ApiKey $env:api_key -ProjectSlug 'opus-tools' }
diff --git a/third_party/opus/.travis.yml b/third_party/opus/.travis.yml
deleted file mode 100644
index 821c813..0000000
--- a/third_party/opus/.travis.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-language: c
-
-compiler:
- - gcc
- - clang
-
-os:
- - linux
- - osx
-
-env:
- - CONFIG=""
- - CONFIG="--enable-assertions"
- - CONFIG="--enable-fixed-point"
- - CONFIG="--enable-fixed-point --disable-float-api"
- - CONFIG="--enable-fixed-point --enable-assertions"
-
-script:
- - ./autogen.sh
- - ./configure $CONFIG
- - make distcheck
diff --git a/third_party/opus/BUILD.gn b/third_party/opus/BUILD.gn
index f311665..5993a6d 100644
--- a/third_party/opus/BUILD.gn
+++ b/third_party/opus/BUILD.gn
@@ -1,268 +1,645 @@
-# Copyright 2021 The Cobalt Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+import("//build/config/arm.gni")
+import("//testing/test.gni")
+
+# If fixed point implementation shall be used (otherwise float).
+use_opus_fixed_point = current_cpu == "arm" || current_cpu == "arm64"
+
+# If ARM optimizations shall be used to accelerate performance.
+# TODO(scottmg): Disabled on Fuchsia for now, see https://crbug.com/775272.
+use_opus_arm_optimization =
+ current_cpu == "arm" || (current_cpu == "arm64" && is_ios)
+ && !is_starboard
+
+# NaCl, unlike Chrome, doesn't target SSE2 minimum, so skip optimizations for
+# the sake of simplicity.
+use_opus_x86_optimization =
+ !is_nacl && (current_cpu == "x86" || current_cpu == "x64")
+ && sb_enable_opus_sse
+
+# If OPUS Run Time CPU Detections (RTCD) shall be used.
+# Based on the conditions in celt/arm/armcpu.c:
+# defined(_MSC_VER) || defined(__linux__).
+use_opus_arm_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux)
+ && !is_starboard
+
+config("opus_config") {
+ include_dirs = [ "src/include" ]
+
+ if (use_opus_fixed_point) {
+ defines = [ "OPUS_FIXED_POINT" ]
+ }
+}
+
+config("opus_private_config") {
+ defines = [
+ "OPUS_BUILD",
+ "OPUS_EXPORT=",
+ "ENABLE_HARDENING",
+
+ # Prefer alloca() over variable length arrays which are often inefficient;
+ # the opus code will automatically handle this correctly per-platform.
+ "USE_ALLOCA",
+ "HAVE_ALLOCA_H",
+ ]
+
+ include_dirs = [
+ "src",
+ "src/celt",
+ "src/silk",
+ ]
+
+ if (is_starboard) {
+ defines = [] # avoid GN error "Replacing nonempty list."
+ defines = [ "HAVE_CONFIG_H" ]
+ include_dirs += [ "starboard" ] # for starboard/config.h
+ }
+
+ cflags = []
+
+ if (is_win) {
+ defines += [ "inline=__inline" ]
+
+ cflags += [
+ "/wd4305", # Disable truncation warning in celt/pitch.c .
+ "/wd4334", # Disable 32-bit shift warning in src/opus_encoder.c .
+ ]
+ } else {
+ defines += [
+ "HAVE_LRINT",
+ "HAVE_LRINTF",
+ ]
+ }
+
+ if (is_official_build) {
+ # Disable assertion messages from ENABLE_HARDENING, saving 16.4 kb.
+ defines += [ "CHROMIUM_NO_LOGGING" ]
+ }
+
+ if (is_debug) {
+ # Turn off a warning in opus_decoder.c when compiling without optimization.
+ defines += [ "OPUS_WILL_BE_SLOW" ]
+ }
+
+ if (use_opus_x86_optimization) {
+ defines += [
+ # Run Time CPU Detections (RTCD) is always enabled for x86.
+ "OPUS_HAVE_RTCD",
+ "CPU_INFO_BY_ASM",
+
+ # Chrome always targets SSE2+.
+ "OPUS_X86_MAY_HAVE_SSE",
+ "OPUS_X86_MAY_HAVE_SSE2",
+ "OPUS_X86_PRESUME_SSE",
+ "OPUS_X86_PRESUME_SSE2",
+
+ # Some systems may have SSE4.1+ support.
+ "OPUS_X86_MAY_HAVE_SSE4_1",
+
+ # At present libopus has no AVX functions so no sources are add for this,
+ # if you see linker errors on AVX code the this flag is why.
+ "OPUS_X86_MAY_HAVE_AVX",
+ ]
+ }
+
+ if (use_opus_fixed_point) {
+ defines += [ "FIXED_POINT" ]
+ include_dirs += [ "src/silk/fixed" ]
+ } else {
+ include_dirs += [ "src/silk/float" ]
+ }
+
+ if (use_opus_arm_optimization) {
+ if (current_cpu == "arm") {
+ defines += [
+ "OPUS_ARM_ASM",
+ "OPUS_ARM_INLINE_ASM",
+ "OPUS_ARM_INLINE_EDSP",
+ ]
+ }
+
+ if (use_opus_arm_rtcd) {
+ defines += [
+ "OPUS_ARM_MAY_HAVE_EDSP",
+ "OPUS_ARM_MAY_HAVE_MEDIA",
+ "OPUS_HAVE_RTCD",
+ ]
+ }
+
+ if (arm_use_neon) {
+ defines += [
+ "OPUS_ARM_MAY_HAVE_NEON",
+ "OPUS_ARM_MAY_HAVE_NEON_INTR",
+ ]
+ }
+
+ if (is_ios && current_cpu == "arm64") {
+ # Runtime detection of CPU features not available on iOS.
+ defines += [
+ "OPUS_ARM_PRESUME_NEON_INTR",
+ "OPUS_ARM_PRESUME_AARCH64_NEON_INTR",
+ ]
+ }
+ }
+}
+
+config("opus_test_config") {
+ include_dirs = [
+ "src/celt",
+ "src/silk",
+ ]
+
+ if (is_win) {
+ defines = [ "inline=__inline" ]
+ }
+ if (is_android) {
+ libs = [ "log" ]
+ }
+ if (is_clang) {
+ cflags = [ "-Wno-absolute-value" ]
+ }
+}
+
+# GN orders flags on a target before flags from configs. The default config
+# adds -Wall, and this flag has to be after -Wall -- so they need to
+# come from a config and can't be on the target directly.
+config("opus_test_no_nonnull_config") {
+ # tests may pass a null pointer to functions for an argument marked as
+ # requiring a non-null value by the nonnull function attribute, and expects
+ # the function call to fail. Disable the -Wnonnull option to avoid a
+ # compilation error if -Werror is specified.
+ if (is_clang) {
+ cflags = [ "-Wno-nonnull" ]
+ }
+}
+
+if (use_opus_arm_rtcd) {
+ action("convert_rtcd_assembler") {
+ script = "convert_rtcd_assembler.py"
+ outputs = [ "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S" ]
+ args = [
+ rebase_path("//third_party/opus/src/celt/arm/arm2gnu.pl", root_build_dir),
+ rebase_path("//third_party/opus/src/celt/arm/celt_pitch_xcorr_arm.s",
+ root_build_dir),
+ rebase_path("$target_gen_dir/celt_pitch_xcorr_arm_gnu.S", root_build_dir),
+ ]
+ }
+}
+
+if (use_opus_x86_optimization) {
+ source_set("opus_sse41") {
+ sources = [
+ "src/celt/x86/pitch_sse4_1.c",
+ "src/silk/x86/NSQ_del_dec_sse4_1.c",
+ "src/silk/x86/NSQ_sse4_1.c",
+ "src/silk/x86/VAD_sse4_1.c",
+ "src/silk/x86/VQ_WMat_EC_sse4_1.c",
+ ]
+
+if (!is_starboard) {
+ configs -= [ "//build/config/compiler:chromium_code" ]
+}
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ configs += [
+ ":opus_private_config",
+ ":opus_config",
+ ]
+
+ if (!is_win || is_clang) {
+ cflags = [ "-msse4.1" ]
+ }
+ }
+ # TODO(dalecurtis): If libopus ever adds AVX support, add an opus_avx block.
+}
+
+# Note: Do not add any defines or include_dirs to this target, those should all
+# go in the opus_private_config so they can be shared with intrinsic targets.
static_library("opus") {
sources = [
- "celt/_kiss_fft_guts.h",
- "celt/arch.h",
- "celt/bands.c",
- "celt/bands.h",
- "celt/celt.c",
- "celt/celt.h",
- "celt/celt_decoder.c",
- "celt/celt_encoder.c",
- "celt/celt_lpc.c",
- "celt/celt_lpc.h",
- "celt/cwrs.c",
- "celt/cwrs.h",
- "celt/ecintrin.h",
- "celt/entcode.c",
- "celt/entcode.h",
- "celt/entdec.c",
- "celt/entdec.h",
- "celt/entenc.c",
- "celt/entenc.h",
- "celt/fixed_c5x.h",
- "celt/fixed_c6x.h",
- "celt/fixed_debug.h",
- "celt/fixed_generic.h",
- "celt/float_cast.h",
- "celt/kiss_fft.c",
- "celt/kiss_fft.h",
- "celt/laplace.c",
- "celt/laplace.h",
- "celt/mathops.c",
- "celt/mathops.h",
- "celt/mdct.c",
- "celt/mdct.h",
- "celt/mfrngcod.h",
- "celt/modes.c",
- "celt/modes.h",
- "celt/os_support.h",
- "celt/pitch.c",
- "celt/pitch.h",
- "celt/quant_bands.c",
- "celt/quant_bands.h",
- "celt/rate.c",
- "celt/rate.h",
- "celt/stack_alloc.h",
- "celt/static_modes_fixed.h",
- "celt/static_modes_float.h",
- "celt/vq.c",
- "celt/vq.h",
-
- "include/opus.h",
- "include/opus_defines.h",
- "include/opus_types.h",
- "include/opus_multistream.h",
-
- "src/analysis.h",
- "src/mlp.h",
- "src/opus_private.h",
- "src/tansig_table.h",
-
- "silk/A2NLSF.c",
- "silk/ana_filt_bank_1.c",
- "silk/API.h",
- "silk/biquad_alt.c",
- "silk/bwexpander.c",
- "silk/bwexpander_32.c",
- "silk/check_control_input.c",
- "silk/CNG.c",
- "silk/code_signs.c",
- "silk/control.h",
- "silk/control_audio_bandwidth.c",
- "silk/control_codec.c",
- "silk/control_SNR.c",
- "silk/debug.c",
- "silk/debug.h",
- "silk/decoder_set_fs.c",
- "silk/decode_core.c",
- "silk/decode_frame.c",
- "silk/decode_indices.c",
- "silk/decode_parameters.c",
- "silk/decode_pitch.c",
- "silk/decode_pulses.c",
- "silk/dec_API.c",
- "silk/define.h",
- "silk/encode_indices.c",
- "silk/encode_pulses.c",
- "silk/enc_API.c",
- "silk/errors.h",
- "silk/gain_quant.c",
- "silk/HP_variable_cutoff.c",
- "silk/init_decoder.c",
- "silk/init_encoder.c",
- "silk/Inlines.h",
- "silk/inner_prod_aligned.c",
- "silk/interpolate.c",
- "silk/lin2log.c",
- "silk/log2lin.c",
- "silk/LPC_analysis_filter.c",
- "silk/LPC_fit.c",
- "silk/LPC_inv_pred_gain.c",
- "silk/LP_variable_cutoff.c",
- "silk/macros.h",
- "silk/MacroCount.h",
- "silk/MacroDebug.h",
- "silk/main.h",
- "silk/NLSF2A.c",
- "silk/NLSF_decode.c",
- "silk/NLSF_del_dec_quant.c",
- "silk/NLSF_encode.c",
- "silk/NLSF_stabilize.c",
- "silk/NLSF_unpack.c",
- "silk/NLSF_VQ.c",
- "silk/NLSF_VQ_weights_laroia.c",
- "silk/NSQ.c",
- "silk/NSQ_del_dec.c",
- "silk/pitch_est_defines.h",
- "silk/pitch_est_tables.c",
- "silk/PLC.c",
- "silk/PLC.h",
- "silk/process_NLSFs.c",
- "silk/quant_LTP_gains.c",
- "silk/resampler.c",
- "silk/resampler_down2.c",
- "silk/resampler_down2_3.c",
- "silk/resampler_private.h",
- "silk/resampler_private_AR2.c",
- "silk/resampler_private_down_FIR.c",
- "silk/resampler_private_IIR_FIR.c",
- "silk/resampler_private_up2_HQ.c",
- "silk/resampler_rom.c",
- "silk/resampler_rom.h",
- "silk/resampler_structs.h",
- "silk/shell_coder.c",
- "silk/sigm_Q15.c",
- "silk/sort.c",
- "silk/stereo_decode_pred.c",
- "silk/stereo_encode_pred.c",
- "silk/stereo_find_predictor.c",
- "silk/stereo_LR_to_MS.c",
- "silk/stereo_MS_to_LR.c",
- "silk/stereo_quant_pred.c",
- "silk/structs.h",
- "silk/sum_sqr_shift.c",
- "silk/tables.h",
- "silk/tables_gain.c",
- "silk/tables_LTP.c",
- "silk/tables_NLSF_CB_NB_MB.c",
- "silk/tables_NLSF_CB_WB.c",
- "silk/tables_other.c",
- "silk/tables_pitch_lag.c",
- "silk/tables_pulses_per_block.c",
- "silk/table_LSF_cos.c",
- "silk/tuning_parameters.h",
- "silk/typedef.h",
- "silk/VAD.c",
- "silk/VQ_WMat_EC.c",
- "src/analysis.c",
- "src/mlp.c",
- "src/mlp_data.c",
- "src/opus.c",
- "src/opus_decoder.c",
- "src/opus_encoder.c",
- "src/opus_multistream.c",
- "src/opus_multistream_decoder.c",
- "src/opus_multistream_encoder.c",
- "src/repacketizer.c",
-
- # Floating point decoding files
- "silk/float/autocorrelation_FLP.c",
- "silk/float/burg_modified_FLP.c",
- "silk/float/bwexpander_FLP.c",
- "silk/float/corrMatrix_FLP.c",
- "silk/float/encode_frame_FLP.c",
- "silk/float/energy_FLP.c",
- "silk/float/find_LPC_FLP.c",
- "silk/float/find_LTP_FLP.c",
- "silk/float/find_pitch_lags_FLP.c",
- "silk/float/find_pred_coefs_FLP.c",
- "silk/float/inner_product_FLP.c",
- "silk/float/k2a_FLP.c",
- "silk/float/LPC_analysis_filter_FLP.c",
- "silk/float/LPC_inv_pred_gain_FLP.c",
- "silk/float/LTP_analysis_filter_FLP.c",
- "silk/float/LTP_scale_ctrl_FLP.c",
- "silk/float/main_FLP.h",
- "silk/float/noise_shape_analysis_FLP.c",
- "silk/float/pitch_analysis_core_FLP.c",
- "silk/float/process_gains_FLP.c",
- "silk/float/regularize_correlations_FLP.c",
- "silk/float/residual_energy_FLP.c",
- "silk/float/scale_copy_vector_FLP.c",
- "silk/float/scale_vector_FLP.c",
- "silk/float/schur_FLP.c",
- "silk/float/SigProc_FLP.h",
- "silk/float/sort_FLP.c",
- "silk/float/structs_FLP.h",
- "silk/float/warped_autocorrelation_FLP.c",
- "silk/float/wrappers_FLP.c",
-
- "silk/float/apply_sine_window_FLP.c",
+ "src/celt/_kiss_fft_guts.h",
+ "src/celt/arch.h",
+ "src/celt/bands.c",
+ "src/celt/bands.h",
+ "src/celt/celt.c",
+ "src/celt/celt.h",
+ "src/celt/celt_decoder.c",
+ "src/celt/celt_encoder.c",
+ "src/celt/celt_lpc.c",
+ "src/celt/celt_lpc.h",
+ "src/celt/cpu_support.h",
+ "src/celt/cwrs.c",
+ "src/celt/cwrs.h",
+ "src/celt/ecintrin.h",
+ "src/celt/entcode.c",
+ "src/celt/entcode.h",
+ "src/celt/entdec.c",
+ "src/celt/entdec.h",
+ "src/celt/entenc.c",
+ "src/celt/entenc.h",
+ "src/celt/fixed_debug.h",
+ "src/celt/fixed_generic.h",
+ "src/celt/float_cast.h",
+ "src/celt/kiss_fft.c",
+ "src/celt/kiss_fft.h",
+ "src/celt/laplace.c",
+ "src/celt/laplace.h",
+ "src/celt/mathops.c",
+ "src/celt/mathops.h",
+ "src/celt/mdct.c",
+ "src/celt/mdct.h",
+ "src/celt/mfrngcod.h",
+ "src/celt/modes.c",
+ "src/celt/modes.h",
+ "src/celt/os_support.h",
+ "src/celt/pitch.c",
+ "src/celt/pitch.h",
+ "src/celt/quant_bands.c",
+ "src/celt/quant_bands.h",
+ "src/celt/rate.c",
+ "src/celt/rate.h",
+ "src/celt/stack_alloc.h",
+ "src/celt/static_modes_fixed.h",
+ "src/celt/static_modes_float.h",
+ "src/celt/vq.c",
+ "src/celt/vq.h",
+ "src/include/opus.h",
+ "src/include/opus_custom.h",
+ "src/include/opus_defines.h",
+ "src/include/opus_multistream.h",
+ "src/include/opus_projection.h",
+ "src/include/opus_types.h",
+ "src/silk/A2NLSF.c",
+ "src/silk/API.h",
+ "src/silk/CNG.c",
+ "src/silk/HP_variable_cutoff.c",
+ "src/silk/Inlines.h",
+ "src/silk/LPC_analysis_filter.c",
+ "src/silk/LPC_fit.c",
+ "src/silk/LPC_inv_pred_gain.c",
+ "src/silk/LP_variable_cutoff.c",
+ "src/silk/MacroCount.h",
+ "src/silk/MacroDebug.h",
+ "src/silk/NLSF2A.c",
+ "src/silk/NLSF_VQ.c",
+ "src/silk/NLSF_VQ_weights_laroia.c",
+ "src/silk/NLSF_decode.c",
+ "src/silk/NLSF_del_dec_quant.c",
+ "src/silk/NLSF_encode.c",
+ "src/silk/NLSF_stabilize.c",
+ "src/silk/NLSF_unpack.c",
+ "src/silk/NSQ.c",
+ "src/silk/NSQ.h",
+ "src/silk/NSQ_del_dec.c",
+ "src/silk/PLC.c",
+ "src/silk/PLC.h",
+ "src/silk/SigProc_FIX.h",
+ "src/silk/VAD.c",
+ "src/silk/VQ_WMat_EC.c",
+ "src/silk/ana_filt_bank_1.c",
+ "src/silk/biquad_alt.c",
+ "src/silk/bwexpander.c",
+ "src/silk/bwexpander_32.c",
+ "src/silk/check_control_input.c",
+ "src/silk/code_signs.c",
+ "src/silk/control.h",
+ "src/silk/control_SNR.c",
+ "src/silk/control_audio_bandwidth.c",
+ "src/silk/control_codec.c",
+ "src/silk/debug.c",
+ "src/silk/debug.h",
+ "src/silk/dec_API.c",
+ "src/silk/decode_core.c",
+ "src/silk/decode_frame.c",
+ "src/silk/decode_indices.c",
+ "src/silk/decode_parameters.c",
+ "src/silk/decode_pitch.c",
+ "src/silk/decode_pulses.c",
+ "src/silk/decoder_set_fs.c",
+ "src/silk/define.h",
+ "src/silk/enc_API.c",
+ "src/silk/encode_indices.c",
+ "src/silk/encode_pulses.c",
+ "src/silk/errors.h",
+ "src/silk/gain_quant.c",
+ "src/silk/init_decoder.c",
+ "src/silk/init_encoder.c",
+ "src/silk/inner_prod_aligned.c",
+ "src/silk/interpolate.c",
+ "src/silk/lin2log.c",
+ "src/silk/log2lin.c",
+ "src/silk/macros.h",
+ "src/silk/main.h",
+ "src/silk/pitch_est_defines.h",
+ "src/silk/pitch_est_tables.c",
+ "src/silk/process_NLSFs.c",
+ "src/silk/quant_LTP_gains.c",
+ "src/silk/resampler.c",
+ "src/silk/resampler_down2.c",
+ "src/silk/resampler_down2_3.c",
+ "src/silk/resampler_private.h",
+ "src/silk/resampler_private_AR2.c",
+ "src/silk/resampler_private_IIR_FIR.c",
+ "src/silk/resampler_private_down_FIR.c",
+ "src/silk/resampler_private_up2_HQ.c",
+ "src/silk/resampler_rom.c",
+ "src/silk/resampler_rom.h",
+ "src/silk/resampler_structs.h",
+ "src/silk/shell_coder.c",
+ "src/silk/sigm_Q15.c",
+ "src/silk/sort.c",
+ "src/silk/stereo_LR_to_MS.c",
+ "src/silk/stereo_MS_to_LR.c",
+ "src/silk/stereo_decode_pred.c",
+ "src/silk/stereo_encode_pred.c",
+ "src/silk/stereo_find_predictor.c",
+ "src/silk/stereo_quant_pred.c",
+ "src/silk/structs.h",
+ "src/silk/sum_sqr_shift.c",
+ "src/silk/table_LSF_cos.c",
+ "src/silk/tables.h",
+ "src/silk/tables_LTP.c",
+ "src/silk/tables_NLSF_CB_NB_MB.c",
+ "src/silk/tables_NLSF_CB_WB.c",
+ "src/silk/tables_gain.c",
+ "src/silk/tables_other.c",
+ "src/silk/tables_pitch_lag.c",
+ "src/silk/tables_pulses_per_block.c",
+ "src/silk/tuning_parameters.h",
+ "src/silk/typedef.h",
+ "src/src/analysis.c",
+ "src/src/analysis.h",
+ "src/src/mapping_matrix.c",
+ "src/src/mapping_matrix.h",
+ "src/src/mlp.c",
+ "src/src/mlp.h",
+ "src/src/mlp_data.c",
+ "src/src/opus.c",
+ "src/src/opus_decoder.c",
+ "src/src/opus_encoder.c",
+ "src/src/opus_multistream.c",
+ "src/src/opus_multistream_decoder.c",
+ "src/src/opus_multistream_encoder.c",
+ "src/src/opus_private.h",
+ "src/src/opus_projection_encoder.c",
+ "src/src/opus_projection_decoder.c",
+ "src/src/repacketizer.c",
+ "src/src/tansig_table.h",
]
- if (sb_enable_opus_sse && (target_cpu == "x86" || target_cpu == "x64")) {
+if (!is_starboard) {
+ configs -= [ "//build/config/compiler:chromium_code" ]
+}
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_private_config",
+ ]
+ public_configs = [ ":opus_config" ]
+
+ if (!is_debug && (current_cpu == "arm" || current_cpu == "arm64")) {
+if (!is_starboard) {
+ configs -= [ "//build/config/compiler:default_optimization" ]
+}
+
+ # TODO(crbug.com/621335) Rework this so that we don't have the confusion
+ # between "optimize_speed" and "optimize_max".
+ configs += [ "//build/config/compiler:optimize_speed" ]
+ }
+
+ deps = []
+
+ if (use_opus_x86_optimization) {
sources += [
- "celt/x86/celt_lpc_sse4_1.c",
- "celt/x86/celt_lpc_sse.h",
- "celt/x86/pitch_sse.c",
- "celt/x86/pitch_sse.h",
- "celt/x86/pitch_sse2.c",
- "celt/x86/pitch_sse4_1.c",
- "celt/x86/vq_sse2.c",
- "celt/x86/vq_sse.h",
- "celt/x86/x86cpu.c",
- "celt/x86/x86cpu.h",
- "celt/x86/x86_celt_map.c",
- "silk/x86/main_sse.h",
- "silk/x86/NSQ_del_dec_sse4_1.c",
- "silk/x86/NSQ_sse4_1.c",
- "silk/x86/VAD_sse4_1.c",
- "silk/x86/VQ_WMat_EC_sse4_1.c",
- "silk/x86/x86_silk_map.c",
+ "src/celt/x86/celt_lpc_sse.h",
+ "src/celt/x86/celt_lpc_sse4_1.c",
+ "src/celt/x86/pitch_sse.c",
+ "src/celt/x86/pitch_sse.h",
+ "src/celt/x86/pitch_sse2.c",
+ "src/celt/x86/vq_sse.h",
+ "src/celt/x86/vq_sse2.c",
+ "src/celt/x86/x86_celt_map.c",
+ "src/celt/x86/x86cpu.c",
+ "src/celt/x86/x86cpu.h",
+ "src/silk/x86/SigProc_FIX_sse.h",
+ "src/silk/x86/main_sse.h",
+ "src/silk/x86/x86_silk_map.c",
]
- } else if (target_cpu == "arm" || target_cpu == "arm64") {
- configs += [ ":opus_arm_defines" ]
+ deps += [ ":opus_sse41" ]
}
- configs += [ ":opus_internal" ]
- public_configs = [ ":opus_public" ]
+ if (use_opus_fixed_point) {
+ sources += [
+ "src/silk/fixed/LTP_analysis_filter_FIX.c",
+ "src/silk/fixed/LTP_scale_ctrl_FIX.c",
+ "src/silk/fixed/apply_sine_window_FIX.c",
+ "src/silk/fixed/autocorr_FIX.c",
+ "src/silk/fixed/burg_modified_FIX.c",
+ "src/silk/fixed/corrMatrix_FIX.c",
+ "src/silk/fixed/encode_frame_FIX.c",
+ "src/silk/fixed/find_LPC_FIX.c",
+ "src/silk/fixed/find_LTP_FIX.c",
+ "src/silk/fixed/find_pitch_lags_FIX.c",
+ "src/silk/fixed/find_pred_coefs_FIX.c",
+ "src/silk/fixed/k2a_FIX.c",
+ "src/silk/fixed/k2a_Q16_FIX.c",
+ "src/silk/fixed/main_FIX.h",
+ "src/silk/fixed/noise_shape_analysis_FIX.c",
+ "src/silk/fixed/pitch_analysis_core_FIX.c",
+ "src/silk/fixed/process_gains_FIX.c",
+ "src/silk/fixed/regularize_correlations_FIX.c",
+ "src/silk/fixed/residual_energy16_FIX.c",
+ "src/silk/fixed/residual_energy_FIX.c",
+ "src/silk/fixed/schur64_FIX.c",
+ "src/silk/fixed/schur_FIX.c",
+ "src/silk/fixed/structs_FIX.h",
+ "src/silk/fixed/vector_ops_FIX.c",
+ "src/silk/fixed/warped_autocorrelation_FIX.c",
+ ]
+ } else {
+ sources += [
+ "src/silk/float/LPC_analysis_filter_FLP.c",
+ "src/silk/float/LPC_inv_pred_gain_FLP.c",
+ "src/silk/float/LTP_analysis_filter_FLP.c",
+ "src/silk/float/LTP_scale_ctrl_FLP.c",
+ "src/silk/float/SigProc_FLP.h",
+ "src/silk/float/apply_sine_window_FLP.c",
+ "src/silk/float/autocorrelation_FLP.c",
+ "src/silk/float/burg_modified_FLP.c",
+ "src/silk/float/bwexpander_FLP.c",
+ "src/silk/float/corrMatrix_FLP.c",
+ "src/silk/float/encode_frame_FLP.c",
+ "src/silk/float/energy_FLP.c",
+ "src/silk/float/find_LPC_FLP.c",
+ "src/silk/float/find_LTP_FLP.c",
+ "src/silk/float/find_pitch_lags_FLP.c",
+ "src/silk/float/find_pred_coefs_FLP.c",
+ "src/silk/float/inner_product_FLP.c",
+ "src/silk/float/k2a_FLP.c",
+ "src/silk/float/main_FLP.h",
+ "src/silk/float/noise_shape_analysis_FLP.c",
+ "src/silk/float/pitch_analysis_core_FLP.c",
+ "src/silk/float/process_gains_FLP.c",
+ "src/silk/float/regularize_correlations_FLP.c",
+ "src/silk/float/residual_energy_FLP.c",
+ "src/silk/float/scale_copy_vector_FLP.c",
+ "src/silk/float/scale_vector_FLP.c",
+ "src/silk/float/schur_FLP.c",
+ "src/silk/float/sort_FLP.c",
+ "src/silk/float/structs_FLP.h",
+ "src/silk/float/warped_autocorrelation_FLP.c",
+ "src/silk/float/wrappers_FLP.c",
+ ]
+ }
+
+ if (use_opus_arm_optimization) {
+ sources += [
+ "src/celt/arm/fixed_arm64.h",
+ "src/celt/arm/fixed_armv4.h",
+ "src/celt/arm/fixed_armv5e.h",
+ "src/celt/arm/kiss_fft_armv4.h",
+ "src/celt/arm/kiss_fft_armv5e.h",
+ "src/celt/arm/pitch_arm.h",
+ "src/silk/arm/SigProc_FIX_armv4.h",
+ "src/silk/arm/SigProc_FIX_armv5e.h",
+ "src/silk/arm/macros_arm64.h",
+ "src/silk/arm/macros_armv4.h",
+ "src/silk/arm/macros_armv5e.h",
+ ]
+
+ if (use_opus_arm_rtcd) {
+ sources += [
+ "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S",
+ "src/celt/arm/arm_celt_map.c",
+ "src/celt/arm/armcpu.c",
+ "src/celt/arm/armcpu.h",
+ "src/celt/arm/fft_arm.h",
+ "src/celt/arm/mdct_arm.h",
+ "src/celt/arm/pitch_arm.h",
+ "src/silk/arm/arm_silk_map.c",
+ ]
+ deps += [ ":convert_rtcd_assembler" ]
+ }
+
+ if (arm_use_neon) {
+ sources += [
+ "src/celt/arm/celt_neon_intr.c",
+ "src/celt/arm/pitch_neon_intr.c",
+ "src/silk/arm/LPC_inv_pred_gain_arm.h",
+ "src/silk/arm/LPC_inv_pred_gain_neon_intr.c",
+ "src/silk/arm/NSQ_del_dec_arm.h",
+ "src/silk/arm/NSQ_del_dec_neon_intr.c",
+ "src/silk/arm/NSQ_neon.c",
+ "src/silk/arm/NSQ_neon.h",
+ "src/silk/arm/biquad_alt_arm.h",
+ "src/silk/arm/biquad_alt_neon_intr.c",
+ "src/silk/fixed/arm/warped_autocorrelation_FIX_arm.h",
+ "src/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c",
+ ]
+ }
+ }
}
-config("opus_internal") {
- include_dirs = [
- "celt",
- "include",
- "silk",
- "silk/float",
- "starboard",
+if (!is_starboard) {
+executable("opus_compare") {
+ sources = [ "src/src/opus_compare.c" ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
]
- defines = [ "HAVE_CONFIG_H" ]
+
+ deps = [
+ ":opus",
+ "//build/win:default_exe_manifest",
+ ]
}
-config("opus_public") {
- include_dirs = [ "." ]
+executable("opus_demo") {
+ sources = [ "src/src/opus_demo.c" ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/win:default_exe_manifest",
+ ]
}
-config("opus_arm_defines") {
- if (!is_starboard) {
- defines = [
- "OPUS_ARM_ASM",
- "OPUS_ARM_INLINE_ASM",
- "OPUS_ARM_INLINE_EDSP",
+test("test_opus_api") {
+ sources = [ "src/tests/test_opus_api.c" ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ":opus_test_no_nonnull_config",
+ ]
+
+ deps = [ ":opus" ]
+}
+
+test("test_opus_encode") {
+ sources = [
+ "src/tests/opus_encode_regressions.c",
+ "src/tests/test_opus_encode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [ ":opus" ]
+}
+
+test("test_opus_decode") {
+ sources = [ "src/tests/test_opus_decode.c" ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ":opus_test_no_nonnull_config",
+ ]
+
+ deps = [ ":opus" ]
+}
+
+test("test_opus_padding") {
+ sources = [ "src/tests/test_opus_padding.c" ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [ ":opus" ]
+}
+
+# Compilation fails on windows due to wstring/string mistmatch.
+# This is not worth looking at it since the benchmark is tailored for android.
+# It is ok to run it on linux though, for experimentation purpose.
+if (!is_win) {
+ test("opus_tests") {
+ sources = [ "tests/opus_benchmark.cc" ]
+
+ data = [ "tests/resources/speech_mono_32_48kHz.pcm" ]
+
+ deps = [
+ ":opus",
+ "//base",
+ "//testing/gtest",
+ "//testing/gtest:gtest_main",
]
}
}
+}
diff --git a/third_party/opus/DEPS b/third_party/opus/DEPS
new file mode 100644
index 0000000..32bad4e
--- /dev/null
+++ b/third_party/opus/DEPS
@@ -0,0 +1,15 @@
+include_rules = [
+ "+arm",
+ "+celt",
+ "+fixed",
+ "+mips",
+ "+x86",
+]
+
+# For our own unit tests.
+specific_include_rules = {
+ ".*(benchmark|tests)\.cc": [
+ "+base",
+ "+testing",
+ ]
+}
diff --git a/third_party/opus/METADATA b/third_party/opus/METADATA
index 3ebc166..f4a1405 100644
--- a/third_party/opus/METADATA
+++ b/third_party/opus/METADATA
@@ -3,15 +3,19 @@
"Subtree at third_party/opus."
third_party {
- url {
- type: LOCAL_SOURCE
- value: "/third_party/opus_mirror"
+ identifier {
+ type: "ChromiumVersion"
+ value: "83.0.4103.119" # from https://chromereleases.googleblog.com/2020/06/stable-channel-update-for-chrome-os.html
}
- url {
- type: GIT
- value: "https://github.com/xiph/opus.git"
+ identifier {
+ type: "Git"
+ value: "https://chromium.googlesource.com/chromium/src.git"
+ version: "0a190d89f97ad313d010ff2f03a3334eb4f1a604"
}
- version: "c1c247d7e715100a50ca185948c7336bdd4dfdba"
+ identifier {
+ type: "UpstreamSubdir"
+ value: "third_party/opus"
+ }
last_upgrade_date {
year: 2018
month: 6
diff --git a/third_party/opus/OWNERS b/third_party/opus/OWNERS
new file mode 100644
index 0000000..bcecd2a
--- /dev/null
+++ b/third_party/opus/OWNERS
@@ -0,0 +1,3 @@
+flim@chromium.org
+henrika@chromium.org
+# COMPONENT: Internals>Media>Codecs
diff --git a/third_party/opus/README.chromium b/third_party/opus/README.chromium
new file mode 100644
index 0000000..8f4ed5e
--- /dev/null
+++ b/third_party/opus/README.chromium
@@ -0,0 +1,22 @@
+Name: opus
+URL: https://git.xiph.org/?p=opus.git
+Version: 6d29f51a40be64e03acc2619f35b4971ba00617c
+License: BSD
+License File: src/COPYING
+Security Critical: yes
+
+Description:
+This directory contains a copy of Opus library
+
+This library is used by Chrome Remote Desktop and WebRTC for audio stream
+encoding/decoding.
+
+Local changes:
+* copy .gitignore from https://git.xiph.org/?p=opus.git;a=tree
+* set 'x' flags: "chmod 750 win32/genversion.bat"
+* remove assertion messages in release builds (see crbug/1053572)
+* apply patch to fix int-overflow in silk (https://gitlab.xiph.org/xiph/opus/-/commit/923bebde)
+* apply patch to fix another int-overflow in silk (https://gitlab.xiph.org/xiph/opus/-/commit/adcb7bc2)
+
+Opus' own unit tests are located in ./src/tests
+Additional chromium tests are located in ./tests
diff --git a/third_party/opus/celt/dump_modes/Makefile b/third_party/opus/celt/dump_modes/Makefile
deleted file mode 100644
index 93f599f..0000000
--- a/third_party/opus/celt/dump_modes/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-
-CFLAGS=-O2 -Wall -Wextra -DHAVE_CONFIG_H
-INCLUDES=-I. -I../ -I../.. -I../../include
-
-SOURCES = dump_modes.c \
- ../modes.c \
- ../cwrs.c \
- ../rate.c \
- ../entcode.c \
- ../entenc.c \
- ../entdec.c \
- ../mathops.c \
- ../mdct.c \
- ../kiss_fft.c
-
-ifdef HAVE_ARM_NE10
-CC = gcc
-CFLAGS += -mfpu=neon
-INCLUDES += -I$(NE10_INCDIR) -DHAVE_ARM_NE10 -DOPUS_ARM_PRESUME_NEON_INTR
-LIBS = -L$(NE10_LIBDIR) -lNE10
-SOURCES += ../arm/celt_ne10_fft.c \
- dump_modes_arm_ne10.c \
- ../arm/armcpu.c
-endif
-
-all: dump_modes
-
-dump_modes:
- $(PREFIX)$(CC) $(CFLAGS) $(INCLUDES) -DCUSTOM_MODES_ONLY -DCUSTOM_MODES $(SOURCES) -o $@ $(LIBS) -lm
-
-clean:
- rm -f dump_modes
diff --git a/third_party/opus/celt_headers.mk b/third_party/opus/celt_headers.mk
deleted file mode 100644
index 706185d..0000000
--- a/third_party/opus/celt_headers.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-CELT_HEAD = \
-celt/arch.h \
-celt/bands.h \
-celt/celt.h \
-celt/cpu_support.h \
-include/opus_types.h \
-include/opus_defines.h \
-include/opus_custom.h \
-celt/cwrs.h \
-celt/ecintrin.h \
-celt/entcode.h \
-celt/entdec.h \
-celt/entenc.h \
-celt/fixed_debug.h \
-celt/fixed_generic.h \
-celt/float_cast.h \
-celt/_kiss_fft_guts.h \
-celt/kiss_fft.h \
-celt/laplace.h \
-celt/mathops.h \
-celt/mdct.h \
-celt/mfrngcod.h \
-celt/modes.h \
-celt/os_support.h \
-celt/pitch.h \
-celt/celt_lpc.h \
-celt/x86/celt_lpc_sse.h \
-celt/quant_bands.h \
-celt/rate.h \
-celt/stack_alloc.h \
-celt/vq.h \
-celt/static_modes_float.h \
-celt/static_modes_fixed.h \
-celt/static_modes_float_arm_ne10.h \
-celt/static_modes_fixed_arm_ne10.h \
-celt/arm/armcpu.h \
-celt/arm/fixed_armv4.h \
-celt/arm/fixed_armv5e.h \
-celt/arm/fixed_arm64.h \
-celt/arm/kiss_fft_armv4.h \
-celt/arm/kiss_fft_armv5e.h \
-celt/arm/pitch_arm.h \
-celt/arm/fft_arm.h \
-celt/arm/mdct_arm.h \
-celt/mips/celt_mipsr1.h \
-celt/mips/fixed_generic_mipsr1.h \
-celt/mips/kiss_fft_mipsr1.h \
-celt/mips/mdct_mipsr1.h \
-celt/mips/pitch_mipsr1.h \
-celt/mips/vq_mipsr1.h \
-celt/x86/pitch_sse.h \
-celt/x86/vq_sse.h \
-celt/x86/x86cpu.h
diff --git a/third_party/opus/celt_sources.mk b/third_party/opus/celt_sources.mk
deleted file mode 100644
index b619dae..0000000
--- a/third_party/opus/celt_sources.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-CELT_SOURCES = celt/bands.c \
-celt/celt.c \
-celt/celt_encoder.c \
-celt/celt_decoder.c \
-celt/cwrs.c \
-celt/entcode.c \
-celt/entdec.c \
-celt/entenc.c \
-celt/kiss_fft.c \
-celt/laplace.c \
-celt/mathops.c \
-celt/mdct.c \
-celt/modes.c \
-celt/pitch.c \
-celt/celt_lpc.c \
-celt/quant_bands.c \
-celt/rate.c \
-celt/vq.c
-
-CELT_SOURCES_SSE = \
-celt/x86/x86cpu.c \
-celt/x86/x86_celt_map.c \
-celt/x86/pitch_sse.c
-
-CELT_SOURCES_SSE2 = \
-celt/x86/pitch_sse2.c \
-celt/x86/vq_sse2.c
-
-CELT_SOURCES_SSE4_1 = \
-celt/x86/celt_lpc_sse4_1.c \
-celt/x86/pitch_sse4_1.c
-
-CELT_SOURCES_ARM = \
-celt/arm/armcpu.c \
-celt/arm/arm_celt_map.c
-
-CELT_SOURCES_ARM_ASM = \
-celt/arm/celt_pitch_xcorr_arm.s
-
-CELT_AM_SOURCES_ARM_ASM = \
-celt/arm/armopts.s.in
-
-CELT_SOURCES_ARM_NEON_INTR = \
-celt/arm/celt_neon_intr.c \
-celt/arm/pitch_neon_intr.c
-
-CELT_SOURCES_ARM_NE10 = \
-celt/arm/celt_fft_ne10.c \
-celt/arm/celt_mdct_ne10.c
diff --git a/third_party/opus/convert_rtcd_assembler.py b/third_party/opus/convert_rtcd_assembler.py
new file mode 100755
index 0000000..2f6071f
--- /dev/null
+++ b/third_party/opus/convert_rtcd_assembler.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# Script for converting celt_pitch_xcorr_arm.s -> celt_pitch_xcorr_arm.S
+# using the arm2gnu.pl script.
+
+import os
+import sys
+
+
+USAGE = ('Usage:\n'
+ './convert_rtcd_assembler.py arm2gnu_script input_file output_file')
+
+
+def main(argv):
+ if len(argv) != 3:
+ print >> sys.stderr, ('Error: You must pass the following arguments:\n'
+ ' * arm2gnu_script_path\n'
+ ' * input_file\n'
+ ' * output_file')
+ print USAGE
+ return 1
+
+ arm2gnu_script = os.path.abspath(argv[0])
+ if not os.path.exists(arm2gnu_script):
+ print >> sys.stderr, ('Error: Cannot find arm2gnu.pl script at: %s.' %
+ arm2gnu_script)
+ return 2
+
+ input_file = os.path.abspath(argv[1])
+ if not os.path.exists(input_file):
+ print >> sys.stderr, 'Error: Cannot find input file at: %s.' % input_file
+ return 3
+
+ output_file = argv[2]
+
+ # Ensure the output file's directory path exists.
+ output_dir = os.path.dirname(output_file)
+ if not os.path.exists(output_dir):
+ os.makedirs(output_dir)
+
+ cmd = ('perl %s %s | '
+ 'sed "s/OPUS_ARM_MAY_HAVE_[A-Z]*/1/g" | '
+ 'sed "/.include/d" '
+ '> %s') % (arm2gnu_script, input_file, output_file)
+ return os.system(cmd)
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))
diff --git a/third_party/opus/opus_headers.mk b/third_party/opus/opus_headers.mk
deleted file mode 100644
index c8f63ea..0000000
--- a/third_party/opus/opus_headers.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-OPUS_HEAD = \
-include/opus.h \
-include/opus_multistream.h \
-src/opus_private.h \
-src/analysis.h \
-src/mapping_matrix.h \
-src/mlp.h \
-src/tansig_table.h
diff --git a/third_party/opus/opus_sources.mk b/third_party/opus/opus_sources.mk
deleted file mode 100644
index b0763f9..0000000
--- a/third_party/opus/opus_sources.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-OPUS_SOURCES = src/opus.c \
-src/opus_decoder.c \
-src/opus_encoder.c \
-src/opus_multistream.c \
-src/opus_multistream_encoder.c \
-src/opus_multistream_decoder.c \
-src/repacketizer.c \
-src/opus_projection_encoder.c \
-src/opus_projection_decoder.c \
-src/mapping_matrix.c
-
-OPUS_SOURCES_FLOAT = \
-src/analysis.c \
-src/mlp.c \
-src/mlp_data.c
diff --git a/third_party/opus/silk_headers.mk b/third_party/opus/silk_headers.mk
deleted file mode 100644
index 2588067..0000000
--- a/third_party/opus/silk_headers.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-SILK_HEAD = \
-silk/debug.h \
-silk/control.h \
-silk/errors.h \
-silk/API.h \
-silk/typedef.h \
-silk/define.h \
-silk/main.h \
-silk/x86/main_sse.h \
-silk/PLC.h \
-silk/structs.h \
-silk/tables.h \
-silk/tuning_parameters.h \
-silk/Inlines.h \
-silk/MacroCount.h \
-silk/MacroDebug.h \
-silk/macros.h \
-silk/NSQ.h \
-silk/pitch_est_defines.h \
-silk/resampler_private.h \
-silk/resampler_rom.h \
-silk/resampler_structs.h \
-silk/SigProc_FIX.h \
-silk/x86/SigProc_FIX_sse.h \
-silk/arm/biquad_alt_arm.h \
-silk/arm/LPC_inv_pred_gain_arm.h \
-silk/arm/macros_armv4.h \
-silk/arm/macros_armv5e.h \
-silk/arm/macros_arm64.h \
-silk/arm/SigProc_FIX_armv4.h \
-silk/arm/SigProc_FIX_armv5e.h \
-silk/arm/NSQ_del_dec_arm.h \
-silk/arm/NSQ_neon.h \
-silk/fixed/main_FIX.h \
-silk/fixed/structs_FIX.h \
-silk/fixed/arm/warped_autocorrelation_FIX_arm.h \
-silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h \
-silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h \
-silk/float/main_FLP.h \
-silk/float/structs_FLP.h \
-silk/float/SigProc_FLP.h \
-silk/mips/macros_mipsr1.h \
-silk/mips/NSQ_del_dec_mipsr1.h \
-silk/mips/sigproc_fix_mipsr1.h
diff --git a/third_party/opus/silk_sources.mk b/third_party/opus/silk_sources.mk
deleted file mode 100644
index 67c8a4f..0000000
--- a/third_party/opus/silk_sources.mk
+++ /dev/null
@@ -1,152 +0,0 @@
-SILK_SOURCES = \
-silk/CNG.c \
-silk/code_signs.c \
-silk/init_decoder.c \
-silk/decode_core.c \
-silk/decode_frame.c \
-silk/decode_parameters.c \
-silk/decode_indices.c \
-silk/decode_pulses.c \
-silk/decoder_set_fs.c \
-silk/dec_API.c \
-silk/enc_API.c \
-silk/encode_indices.c \
-silk/encode_pulses.c \
-silk/gain_quant.c \
-silk/interpolate.c \
-silk/LP_variable_cutoff.c \
-silk/NLSF_decode.c \
-silk/NSQ.c \
-silk/NSQ_del_dec.c \
-silk/PLC.c \
-silk/shell_coder.c \
-silk/tables_gain.c \
-silk/tables_LTP.c \
-silk/tables_NLSF_CB_NB_MB.c \
-silk/tables_NLSF_CB_WB.c \
-silk/tables_other.c \
-silk/tables_pitch_lag.c \
-silk/tables_pulses_per_block.c \
-silk/VAD.c \
-silk/control_audio_bandwidth.c \
-silk/quant_LTP_gains.c \
-silk/VQ_WMat_EC.c \
-silk/HP_variable_cutoff.c \
-silk/NLSF_encode.c \
-silk/NLSF_VQ.c \
-silk/NLSF_unpack.c \
-silk/NLSF_del_dec_quant.c \
-silk/process_NLSFs.c \
-silk/stereo_LR_to_MS.c \
-silk/stereo_MS_to_LR.c \
-silk/check_control_input.c \
-silk/control_SNR.c \
-silk/init_encoder.c \
-silk/control_codec.c \
-silk/A2NLSF.c \
-silk/ana_filt_bank_1.c \
-silk/biquad_alt.c \
-silk/bwexpander_32.c \
-silk/bwexpander.c \
-silk/debug.c \
-silk/decode_pitch.c \
-silk/inner_prod_aligned.c \
-silk/lin2log.c \
-silk/log2lin.c \
-silk/LPC_analysis_filter.c \
-silk/LPC_inv_pred_gain.c \
-silk/table_LSF_cos.c \
-silk/NLSF2A.c \
-silk/NLSF_stabilize.c \
-silk/NLSF_VQ_weights_laroia.c \
-silk/pitch_est_tables.c \
-silk/resampler.c \
-silk/resampler_down2_3.c \
-silk/resampler_down2.c \
-silk/resampler_private_AR2.c \
-silk/resampler_private_down_FIR.c \
-silk/resampler_private_IIR_FIR.c \
-silk/resampler_private_up2_HQ.c \
-silk/resampler_rom.c \
-silk/sigm_Q15.c \
-silk/sort.c \
-silk/sum_sqr_shift.c \
-silk/stereo_decode_pred.c \
-silk/stereo_encode_pred.c \
-silk/stereo_find_predictor.c \
-silk/stereo_quant_pred.c \
-silk/LPC_fit.c
-
-SILK_SOURCES_SSE4_1 = silk/x86/NSQ_sse4_1.c \
-silk/x86/NSQ_del_dec_sse4_1.c \
-silk/x86/x86_silk_map.c \
-silk/x86/VAD_sse4_1.c \
-silk/x86/VQ_WMat_EC_sse4_1.c
-
-SILK_SOURCES_ARM_NEON_INTR = \
-silk/arm/arm_silk_map.c \
-silk/arm/biquad_alt_neon_intr.c \
-silk/arm/LPC_inv_pred_gain_neon_intr.c \
-silk/arm/NSQ_del_dec_neon_intr.c \
-silk/arm/NSQ_neon.c
-
-SILK_SOURCES_FIXED = \
-silk/fixed/LTP_analysis_filter_FIX.c \
-silk/fixed/LTP_scale_ctrl_FIX.c \
-silk/fixed/corrMatrix_FIX.c \
-silk/fixed/encode_frame_FIX.c \
-silk/fixed/find_LPC_FIX.c \
-silk/fixed/find_LTP_FIX.c \
-silk/fixed/find_pitch_lags_FIX.c \
-silk/fixed/find_pred_coefs_FIX.c \
-silk/fixed/noise_shape_analysis_FIX.c \
-silk/fixed/process_gains_FIX.c \
-silk/fixed/regularize_correlations_FIX.c \
-silk/fixed/residual_energy16_FIX.c \
-silk/fixed/residual_energy_FIX.c \
-silk/fixed/warped_autocorrelation_FIX.c \
-silk/fixed/apply_sine_window_FIX.c \
-silk/fixed/autocorr_FIX.c \
-silk/fixed/burg_modified_FIX.c \
-silk/fixed/k2a_FIX.c \
-silk/fixed/k2a_Q16_FIX.c \
-silk/fixed/pitch_analysis_core_FIX.c \
-silk/fixed/vector_ops_FIX.c \
-silk/fixed/schur64_FIX.c \
-silk/fixed/schur_FIX.c
-
-SILK_SOURCES_FIXED_SSE4_1 = silk/fixed/x86/vector_ops_FIX_sse4_1.c \
-silk/fixed/x86/burg_modified_FIX_sse4_1.c
-
-SILK_SOURCES_FIXED_ARM_NEON_INTR = \
-silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
-
-SILK_SOURCES_FLOAT = \
-silk/float/apply_sine_window_FLP.c \
-silk/float/corrMatrix_FLP.c \
-silk/float/encode_frame_FLP.c \
-silk/float/find_LPC_FLP.c \
-silk/float/find_LTP_FLP.c \
-silk/float/find_pitch_lags_FLP.c \
-silk/float/find_pred_coefs_FLP.c \
-silk/float/LPC_analysis_filter_FLP.c \
-silk/float/LTP_analysis_filter_FLP.c \
-silk/float/LTP_scale_ctrl_FLP.c \
-silk/float/noise_shape_analysis_FLP.c \
-silk/float/process_gains_FLP.c \
-silk/float/regularize_correlations_FLP.c \
-silk/float/residual_energy_FLP.c \
-silk/float/warped_autocorrelation_FLP.c \
-silk/float/wrappers_FLP.c \
-silk/float/autocorrelation_FLP.c \
-silk/float/burg_modified_FLP.c \
-silk/float/bwexpander_FLP.c \
-silk/float/energy_FLP.c \
-silk/float/inner_product_FLP.c \
-silk/float/k2a_FLP.c \
-silk/float/LPC_inv_pred_gain_FLP.c \
-silk/float/pitch_analysis_core_FLP.c \
-silk/float/scale_copy_vector_FLP.c \
-silk/float/scale_vector_FLP.c \
-silk/float/schur_FLP.c \
-silk/float/sort_FLP.c
diff --git a/third_party/opus/src/.gitignore b/third_party/opus/src/.gitignore
new file mode 100644
index 0000000..31e2901
--- /dev/null
+++ b/third_party/opus/src/.gitignore
@@ -0,0 +1,89 @@
+Doxyfile
+Makefile
+Makefile.in
+TAGS
+aclocal.m4
+autom4te.cache
+*.kdevelop.pcs
+*.kdevses
+compile
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+depcomp
+INSTALL
+install-sh
+.deps
+.libs
+.dirstamp
+*.a
+*.exe
+*.la
+*-gnu.S
+testcelt
+libtool
+ltmain.sh
+missing
+m4/libtool.m4
+m4/ltoptions.m4
+m4/ltsugar.m4
+m4/ltversion.m4
+m4/lt~obsolete.m4
+opus_compare
+opus_demo
+repacketizer_demo
+stamp-h1
+test-driver
+*.sw*
+*.o
+*.lo
+*.pc
+*.tar.gz
+*~
+tests/*test
+tests/test_opus_api
+tests/test_opus_decode
+tests/test_opus_encode
+tests/test_opus_padding
+tests/test_opus_projection
+celt/arm/armopts.s
+celt/dump_modes/dump_modes
+celt/tests/test_unit_cwrs32
+celt/tests/test_unit_dft
+celt/tests/test_unit_entropy
+celt/tests/test_unit_laplace
+celt/tests/test_unit_mathops
+celt/tests/test_unit_mdct
+celt/tests/test_unit_rotation
+celt/tests/test_unit_types
+doc/doxygen_sqlite3.db
+doc/doxygen-build.stamp
+doc/html
+doc/latex
+doc/man
+package_version
+version.h
+celt/Debug
+celt/Release
+celt/x64
+silk/Debug
+silk/Release
+silk/x64
+silk/fixed/Debug
+silk/fixed/Release
+silk/fixed/x64
+silk/float/Debug
+silk/float/Release
+silk/float/x64
+silk/tests/test_unit_LPC_inv_pred_gain
+src/Debug
+src/Release
+src/x64
+/*[Bb]uild*/
+.vs/
+.vscode/
+CMakeSettings.json
diff --git a/third_party/opus/AUTHORS b/third_party/opus/src/AUTHORS
similarity index 100%
rename from third_party/opus/AUTHORS
rename to third_party/opus/src/AUTHORS
diff --git a/third_party/opus/src/CMakeLists.txt b/third_party/opus/src/CMakeLists.txt
new file mode 100644
index 0000000..ba86939
--- /dev/null
+++ b/third_party/opus/src/CMakeLists.txt
@@ -0,0 +1,420 @@
+cmake_minimum_required(VERSION 3.1)
+
+include(opus_functions.cmake)
+
+get_library_version(OPUS_LIBRARY_VERSION OPUS_LIBRARY_VERSION_MAJOR)
+message(STATUS "Opus library version: ${OPUS_LIBRARY_VERSION}")
+
+get_package_version(PACKAGE_VERSION)
+message(STATUS "Opus package version: ${PACKAGE_VERSION}")
+
+string(REGEX
+ REPLACE "^([0-9]+.[0-9]+\\.?([0-9]+)?).*"
+ "\\1"
+ PROJECT_VERSION
+ ${PACKAGE_VERSION})
+message(STATUS "Opus project version: ${PROJECT_VERSION}")
+
+project(Opus LANGUAGES C VERSION ${PROJECT_VERSION})
+include(opus_buildtype.cmake)
+
+option(OPUS_BUILD_SHARED_LIBRARY "Build shared library" OFF)
+option(OPUS_STACK_PROTECTOR "Use stack protection" ON)
+option(OPUS_USE_ALLOCA "Use alloca for stack arrays (on non-C99 compilers)" OFF)
+option(OPUS_CUSTOM_MODES "Enable non-Opus modes, e.g. 44.1 kHz & 2^n frames"
+ OFF)
+option(OPUS_BUILD_PROGRAMS "Build programs" OFF)
+option(OPUS_FIXED_POINT
+ "Compile as fixed-point (for machines without a fast enough FPU)" OFF)
+option(OPUS_ENABLE_FLOAT_API
+ "Compile with the floating point API (for machines with float library"
+ ON)
+option(OPUS_INSTALL_PKG_CONFIG_MODULE "Install PkgConfig module" ON)
+option(OPUS_INSTALL_CMAKE_CONFIG_MODULE "Install CMake package config module"
+ ON)
+
+include(opus_config.cmake)
+include(opus_sources.cmake)
+include(GNUInstallDirs)
+include(CMakeDependentOption)
+include(FeatureSummary)
+
+if(OPUS_BUILD_SHARED_LIBRARY OR BUILD_SHARED_LIBS)
+ # Global flag to cause add_library() to create shared libraries if on.
+ set(BUILD_SHARED_LIBS ON)
+ set(OPUS_BUILD_SHARED_LIBRARY ON)
+endif()
+
+if(OPUS_STACK_PROTECTOR)
+ if(NOT MSVC) # GC on by default on MSVC
+ check_and_set_flag(STACK_PROTECTION_STRONG -fstack-protector-strong)
+ endif()
+else()
+ if(MSVC)
+ check_and_set_flag(BUFFER_SECURITY_CHECK /GS-)
+ endif()
+endif()
+
+if(OPUS_CPU_X86 OR OPUS_CPU_X64)
+ cmake_dependent_option(OPUS_X86_MAY_HAVE_SSE
+ "Does runtime check for SSE1 support"
+ ON
+ "SSE1_SUPPORTED"
+ OFF)
+ cmake_dependent_option(OPUS_X86_MAY_HAVE_SSE2
+ "Does runtime check for SSE2 support"
+ ON
+ "SSE2_SUPPORTED"
+ OFF)
+ cmake_dependent_option(OPUS_X86_MAY_HAVE_SSE4_1
+ "Does runtime check for SSE4.1 support"
+ ON
+ "SSE4_1_SUPPORTED"
+ OFF)
+ cmake_dependent_option(OPUS_X86_MAY_HAVE_AVX
+ "Does runtime check for AVX support"
+ ON
+ "AVX_SUPPORTED"
+ OFF)
+
+ if(OPUS_CPU_X64) # Assume 64 bit has SSE2 support
+ cmake_dependent_option(OPUS_X86_PRESUME_SSE
+ "Assume target CPU has SSE1 support"
+ ON
+ "OPUS_X86_MAY_HAVE_SSE"
+ OFF)
+ cmake_dependent_option(OPUS_X86_PRESUME_SSE2
+ "Assume target CPU has SSE2 support"
+ ON
+ "OPUS_X86_MAY_HAVE_SSE2"
+ OFF)
+ else()
+ cmake_dependent_option(OPUS_X86_PRESUME_SSE
+ "Assume target CPU has SSE1 support"
+ OFF
+ "OPUS_X86_MAY_HAVE_SSE"
+ OFF)
+ cmake_dependent_option(OPUS_X86_PRESUME_SSE2
+ "Assume target CPU has SSE2 support"
+ OFF
+ "OPUS_X86_MAY_HAVE_SSE2"
+ OFF)
+ endif()
+ cmake_dependent_option(OPUS_X86_PRESUME_SSE4_1
+ "Assume target CPU has SSE4.1 support"
+ OFF
+ "OPUS_X86_MAY_HAVE_SSE4_1"
+ OFF)
+ cmake_dependent_option(OPUS_X86_PRESUME_AVX
+ "Assume target CPU has AVX support"
+ OFF
+ "OPUS_X86_MAY_HAVE_AVX"
+ OFF)
+endif()
+
+set_package_properties(Git
+ PROPERTIES
+ TYPE
+ REQUIRED
+ DESCRIPTION
+ "fast, scalable, distributed revision control system"
+ URL
+ "https://git-scm.com/"
+ PURPOSE
+ "required to set up package version")
+
+add_feature_info(BUILD_SHARED_LIBRARY OPUS_BUILD_SHARED_LIBRARY "Build shared library")
+add_feature_info(STACK_PROTECTOR OPUS_STACK_PROTECTOR "Use stack protection")
+add_feature_info(USE_ALLOCA OPUS_USE_ALLOCA
+ "Use alloca for stack arrays (on non-C99 compilers)")
+add_feature_info(CUSTOM_MODES OPUS_CUSTOM_MODES
+ "Enable non-Opus modes, e.g. 44.1 kHz & 2^n frames")
+add_feature_info(BUILD_PROGRAMS OPUS_BUILD_PROGRAMS "Build programs")
+add_feature_info(
+ FIXED_POINT OPUS_FIXED_POINT
+ "compile as fixed-point (for machines without a fast enough FPU)")
+add_feature_info(
+ FLOAT_API OPUS_ENABLE_FLOAT_API
+ "compile with the floating point API (for machines with float library)")
+
+add_feature_info(INSTALL_PKG_CONFIG_MODULE OPUS_INSTALL_PKG_CONFIG_MODULE
+ "install PkgConfig module")
+add_feature_info(INSTALL_CMAKE_CONFIG_MODULE OPUS_INSTALL_CMAKE_CONFIG_MODULE
+ "install CMake package config module")
+
+if(OPUS_CPU_X86 OR OPUS_CPU_X64)
+ add_feature_info(X86_MAY_HAVE_SSE OPUS_X86_MAY_HAVE_SSE
+ "does runtime check for SSE1 support")
+ add_feature_info(X86_MAY_HAVE_SSE2 OPUS_X86_MAY_HAVE_SSE2
+ "does runtime check for SSE2 support")
+ add_feature_info(X86_MAY_HAVE_SSE4_1 OPUS_X86_MAY_HAVE_SSE4_1
+ "does runtime check for SSE4_1 support")
+ add_feature_info(X86_MAY_HAVE_AVX OPUS_X86_MAY_HAVE_AVX
+ "does runtime check for AVX support")
+ add_feature_info(X86_PRESUME_SSE OPUS_X86_PRESUME_SSE
+ "assume target CPU has SSE1 support")
+ add_feature_info(X86_PRESUME_SSE2 OPUS_X86_PRESUME_SSE2
+ "assume target CPU has SSE2 support")
+ add_feature_info(X86_PRESUME_SSE4_1 OPUS_X86_PRESUME_SSE4_1
+ "assume target CPU has SSE4_1 support")
+ add_feature_info(X86_PRESUME_AVX OPUS_X86_PRESUME_AVX
+ "assume target CPU has AVX support")
+endif()
+
+feature_summary(WHAT ALL)
+
+add_library(opus ${opus_sources} ${opus_sources_float})
+
+add_library(Opus::opus ALIAS opus)
+
+set(Opus_PUBLIC_HEADER
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/opus.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/opus_custom.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/opus_defines.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/opus_multistream.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/opus_projection.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/opus_types.h)
+
+set_target_properties(opus
+ PROPERTIES SOVERSION
+ ${OPUS_LIBRARY_VERSION_MAJOR}
+ VERSION
+ ${OPUS_LIBRARY_VERSION}
+ PUBLIC_HEADER
+ "${Opus_PUBLIC_HEADER}")
+
+target_include_directories(
+ opus
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ celt
+ silk)
+
+target_link_libraries(opus PRIVATE ${OPUS_REQUIRED_LIBRARIES})
+target_compile_definitions(opus PRIVATE OPUS_BUILD ENABLE_HARDENING)
+
+if(NOT MSVC)
+ target_compile_definitions(opus PRIVATE _FORTIFY_SOURCE=2)
+endif()
+
+# It is strongly recommended to uncomment one of these VAR_ARRAYS: Use C99
+# variable-length arrays for stack allocation USE_ALLOCA: Use alloca() for stack
+# allocation If none is defined, then the fallback is a non-threadsafe global
+# array
+if(OPUS_USE_ALLOCA OR MSVC)
+ target_compile_definitions(opus PRIVATE USE_ALLOCA)
+else()
+ target_compile_definitions(opus PRIVATE VAR_ARRAYS)
+endif()
+
+if(OPUS_CUSTOM_MODES)
+ target_compile_definitions(opus PRIVATE CUSTOM_MODES)
+endif()
+
+if(BUILD_SHARED_LIBS)
+ if(WIN32)
+ target_compile_definitions(opus PRIVATE DLL_EXPORT)
+ else()
+ include(CheckCCompilerFlag)
+ check_c_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
+ if(COMPILER_HAS_HIDDEN_VISIBILITY)
+ set_target_properties(opus PROPERTIES C_VISIBILITY_PRESET hidden)
+ endif()
+ endif()
+endif()
+
+add_sources_group(opus silk ${silk_sources})
+add_sources_group(opus celt ${celt_sources})
+
+if(OPUS_FIXED_POINT)
+ add_sources_group(opus silk ${silk_sources_fixed})
+ target_include_directories(opus PRIVATE silk/fixed)
+ target_compile_definitions(opus PRIVATE FIXED_POINT=1)
+else()
+ add_sources_group(opus silk ${silk_sources_float})
+ target_include_directories(opus PRIVATE silk/float)
+endif()
+
+if(NOT OPUS_ENABLE_FLOAT_API)
+ target_compile_definitions(opus PRIVATE DISABLE_FLOAT_API)
+endif()
+
+if(OPUS_X86_MAY_HAVE_SSE
+ OR OPUS_X86_MAY_HAVE_SSE2
+ OR OPUS_X86_MAY_HAVE_SSE4_1
+ OR OPUS_X86_MAY_HAVE_AVX)
+ target_compile_definitions(opus PRIVATE OPUS_HAVE_RTCD)
+endif()
+
+if(OPUS_X86_MAY_HAVE_SSE)
+ add_sources_group(opus celt ${celt_sources_sse})
+ target_compile_definitions(opus PRIVATE OPUS_X86_MAY_HAVE_SSE)
+endif()
+if(OPUS_X86_PRESUME_SSE)
+ target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE)
+endif()
+
+if(OPUS_X86_MAY_HAVE_SSE2)
+ add_sources_group(opus celt ${celt_sources_sse2})
+ target_compile_definitions(opus PRIVATE OPUS_X86_MAY_HAVE_SSE2)
+endif()
+if(OPUS_X86_PRESUME_SSE2)
+ target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE2)
+endif()
+
+if(OPUS_X86_MAY_HAVE_SSE)
+ add_sources_group(opus celt ${celt_sources_sse4_1})
+ add_sources_group(opus silk ${silk_sources_sse4_1})
+ if(OPUS_FIXED_POINT)
+ add_sources_group(opus silk ${silk_sources_fixed_sse4_1})
+ endif()
+ target_compile_definitions(opus PRIVATE OPUS_X86_MAY_HAVE_SSE4_1)
+endif()
+if(OPUS_X86_PRESUME_SSE4_1)
+ target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE4_1)
+endif()
+
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "(armv7-a)")
+ add_sources_group(opus celt ${celt_sources_arm})
+endif()
+
+if(COMPILER_SUPPORT_NEON AND OPUS_USE_NEON)
+
+ if(OPUS_MAY_HAVE_NEON)
+ if(RUNTIME_CPU_CAPABILITY_DETECTION)
+ message(STATUS "OPUS_MAY_HAVE_NEON enabling runtime detection")
+ target_compile_definitions(opus PRIVATE OPUS_HAVE_RTCD)
+ else()
+ message(ERROR "Runtime cpu capability detection needed for MAY_HAVE_NEON")
+ endif()
+ # Do runtime check for NEON
+ target_compile_definitions(opus
+ PRIVATE
+ OPUS_ARM_MAY_HAVE_NEON
+ OPUS_ARM_MAY_HAVE_NEON_INTR)
+ endif()
+
+ add_sources_group(opus celt ${celt_sources_arm_neon_intr})
+ add_sources_group(opus silk ${silk_sources_arm_neon_intr})
+
+ # silk arm neon depends on main_Fix.h
+ target_include_directories(opus PRIVATE silk/fixed)
+
+ if(OPUS_FIXED_POINT)
+ add_sources_group(opus silk ${silk_sources_fixed_arm_neon_intr})
+ endif()
+
+ if(OPUS_PRESUME_NEON)
+ target_compile_definitions(opus
+ PRIVATE
+ OPUS_ARM_PRESUME_NEON
+ OPUS_ARM_PRESUME_NEON_INTR)
+ endif()
+endif()
+
+install(TARGETS opus
+ EXPORT OpusTargets
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/opus)
+
+if(OPUS_INSTALL_PKG_CONFIG_MODULE)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix ${CMAKE_INSTALL_PREFIX})
+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
+ set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
+ set(VERSION ${PACKAGE_VERSION})
+ if(HAVE_LIBM)
+ set(LIBM "-lm")
+ endif()
+ configure_file(opus.pc.in opus.pc)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/opus.pc
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
+
+if(OPUS_INSTALL_CMAKE_CONFIG_MODULE)
+ set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+ install(EXPORT OpusTargets
+ NAMESPACE Opus::
+ DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+
+ include(CMakePackageConfigHelpers)
+
+ set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
+ configure_package_config_file(OpusConfig.cmake.in
+ OpusConfig.cmake
+ INSTALL_DESTINATION
+ ${CMAKE_INSTALL_PACKAGEDIR}
+ PATH_VARS
+ INCLUDE_INSTALL_DIR
+ INSTALL_PREFIX
+ ${CMAKE_INSTALL_PREFIX})
+ write_basic_package_version_file(OpusConfigVersion.cmake
+ VERSION ${PROJECT_VERSION}
+ COMPATIBILITY SameMajorVersion)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/OpusConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/OpusConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+endif()
+
+if(OPUS_BUILD_PROGRAMS)
+ # demo
+ if(OPUS_CUSTOM_MODES)
+ add_executable(opus_custom_demo ${opus_custom_demo_sources})
+ target_include_directories(opus_custom_demo
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_link_libraries(opus_custom_demo PRIVATE opus)
+ endif()
+
+ add_executable(opus_demo ${opus_demo_sources})
+ target_include_directories(opus_demo PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_include_directories(opus_demo PRIVATE silk) # debug.h
+ target_include_directories(opus_demo PRIVATE celt) # arch.h
+ target_link_libraries(opus_demo PRIVATE opus)
+
+ # compare
+ add_executable(opus_compare ${opus_compare_sources})
+ target_include_directories(opus_compare PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_link_libraries(opus_compare PRIVATE opus)
+endif()
+
+if(BUILD_TESTING)
+ enable_testing()
+
+ # tests
+ add_executable(test_opus_decode ${test_opus_decode_sources})
+ target_include_directories(test_opus_decode
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_link_libraries(test_opus_decode PRIVATE opus)
+ if(OPUS_FIXED_POINT)
+ target_compile_definitions(test_opus_decode PRIVATE DISABLE_FLOAT_API)
+ endif()
+ add_test(test_opus_decode test_opus_decode)
+
+ add_executable(test_opus_padding ${test_opus_padding_sources})
+ target_include_directories(test_opus_padding
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+ target_link_libraries(test_opus_padding PRIVATE opus)
+ add_test(test_opus_padding test_opus_padding)
+
+ if(NOT BUILD_SHARED_LIBS)
+ # disable tests that depends on private API when building shared lib
+ add_executable(test_opus_api ${test_opus_api_sources})
+ target_include_directories(test_opus_api
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR} celt)
+ target_link_libraries(test_opus_api PRIVATE opus)
+ if(OPUS_FIXED_POINT)
+ target_compile_definitions(test_opus_api PRIVATE DISABLE_FLOAT_API)
+ endif()
+ add_test(test_opus_api test_opus_api)
+
+ add_executable(test_opus_encode ${test_opus_encode_sources})
+ target_include_directories(test_opus_encode
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR} celt)
+ target_link_libraries(test_opus_encode PRIVATE opus)
+ add_test(test_opus_encode test_opus_encode)
+ endif()
+endif()
diff --git a/third_party/opus/COPYING b/third_party/opus/src/COPYING
similarity index 100%
rename from third_party/opus/COPYING
rename to third_party/opus/src/COPYING
diff --git a/third_party/opus/ChangeLog b/third_party/opus/src/ChangeLog
similarity index 100%
rename from third_party/opus/ChangeLog
rename to third_party/opus/src/ChangeLog
diff --git a/third_party/opus/LICENSE_PLEASE_READ.txt b/third_party/opus/src/LICENSE_PLEASE_READ.txt
similarity index 100%
rename from third_party/opus/LICENSE_PLEASE_READ.txt
rename to third_party/opus/src/LICENSE_PLEASE_READ.txt
diff --git a/third_party/opus/Makefile.am b/third_party/opus/src/Makefile.am
similarity index 97%
rename from third_party/opus/Makefile.am
rename to third_party/opus/src/Makefile.am
index 9c09dec..7f905b0 100644
--- a/third_party/opus/Makefile.am
+++ b/third_party/opus/src/Makefile.am
@@ -210,6 +210,13 @@
opus.m4 \
Makefile.mips \
Makefile.unix \
+ CMakeLists.txt \
+ config.h.cmake.in \
+ opus_buildtype.cmake \
+ opus_config.cmake \
+ opus_functions.cmake \
+ opus_sources.cmake \
+ OpusConfig.cmake.in \
tests/run_vectors.sh \
celt/arm/arm2gnu.pl \
celt/arm/celt_pitch_xcorr_arm.s \
diff --git a/third_party/opus/Makefile.mips b/third_party/opus/src/Makefile.mips
similarity index 98%
rename from third_party/opus/Makefile.mips
rename to third_party/opus/src/Makefile.mips
index d25af8c..e9bfc22 100644
--- a/third_party/opus/Makefile.mips
+++ b/third_party/opus/src/Makefile.mips
@@ -12,7 +12,7 @@
# These options affect performance
# HAVE_LRINTF: Use C99 intrinsics to speed up float-to-int conversion
-#CFLAGS := -DHAVE_LRINTF $(CFLAGS)
+CFLAGS := -DHAVE_LRINTF $(CFLAGS)
###################### END OF OPTIONS ######################
diff --git a/third_party/opus/Makefile.unix b/third_party/opus/src/Makefile.unix
similarity index 100%
rename from third_party/opus/Makefile.unix
rename to third_party/opus/src/Makefile.unix
diff --git a/third_party/opus/NEWS b/third_party/opus/src/NEWS
similarity index 100%
rename from third_party/opus/NEWS
rename to third_party/opus/src/NEWS
diff --git a/third_party/opus/src/OpusConfig.cmake.in b/third_party/opus/src/OpusConfig.cmake.in
new file mode 100644
index 0000000..1577174
--- /dev/null
+++ b/third_party/opus/src/OpusConfig.cmake.in
@@ -0,0 +1,19 @@
+set(OPUS_VERSION @PROJECT_VERSION@)
+set(OPUS_VERSION_STRING @PROJECT_VERSION@)
+set(OPUS_VERSION_MAJOR @PROJECT_VERSION_MAJOR@)
+set(OPUS_VERSION_MINOR @PROJECT_VERSION_MINOR@)
+set(OPUS_VERSION_PATCH @PROJECT_VERSION_PATCH@)
+
+@PACKAGE_INIT@
+
+set_and_check(OPUS_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
+set_and_check(OPUS_INCLUDE_DIRS "@PACKAGE_INCLUDE_INSTALL_DIR@")
+
+include(${CMAKE_CURRENT_LIST_DIR}/OpusTargets.cmake)
+
+set(OPUS_LIBRARY Opus::opus)
+set(OPUS_LIBRARIES Opus::opus)
+
+check_required_components(Opus)
+
+set(OPUS_FOUND 1)
diff --git a/third_party/opus/README b/third_party/opus/src/README
similarity index 100%
rename from third_party/opus/README
rename to third_party/opus/src/README
diff --git a/third_party/opus/README.draft b/third_party/opus/src/README.draft
similarity index 100%
rename from third_party/opus/README.draft
rename to third_party/opus/src/README.draft
diff --git a/third_party/opus/autogen.sh b/third_party/opus/src/autogen.sh
similarity index 100%
rename from third_party/opus/autogen.sh
rename to third_party/opus/src/autogen.sh
diff --git a/third_party/opus/celt/_kiss_fft_guts.h b/third_party/opus/src/celt/_kiss_fft_guts.h
similarity index 100%
rename from third_party/opus/celt/_kiss_fft_guts.h
rename to third_party/opus/src/celt/_kiss_fft_guts.h
diff --git a/third_party/opus/celt/arch.h b/third_party/opus/src/celt/arch.h
similarity index 98%
rename from third_party/opus/celt/arch.h
rename to third_party/opus/src/celt/arch.h
index c627a74..5c49579 100644
--- a/third_party/opus/celt/arch.h
+++ b/third_party/opus/src/celt/arch.h
@@ -72,7 +72,9 @@
#endif
void celt_fatal(const char *str, const char *file, int line)
{
+#if !defined(CHROMIUM_NO_LOGGING)
fprintf (stderr, "Fatal (internal) error in %s, line %d: %s\n", file, line, str);
+#endif
abort();
}
#endif
@@ -160,7 +162,7 @@
#ifdef OPUS_ARM_PRESUME_AARCH64_NEON_INTR
#include "arm/fixed_arm64.h"
-#elif OPUS_ARM_INLINE_EDSP
+#elif defined (OPUS_ARM_INLINE_EDSP)
#include "arm/fixed_armv5e.h"
#elif defined (OPUS_ARM_INLINE_ASM)
#include "arm/fixed_armv4.h"
diff --git a/third_party/opus/celt/arm/arm2gnu.pl b/third_party/opus/src/celt/arm/arm2gnu.pl
similarity index 100%
rename from third_party/opus/celt/arm/arm2gnu.pl
rename to third_party/opus/src/celt/arm/arm2gnu.pl
diff --git a/third_party/opus/celt/arm/arm_celt_map.c b/third_party/opus/src/celt/arm/arm_celt_map.c
similarity index 100%
rename from third_party/opus/celt/arm/arm_celt_map.c
rename to third_party/opus/src/celt/arm/arm_celt_map.c
diff --git a/third_party/opus/celt/arm/armcpu.c b/third_party/opus/src/celt/arm/armcpu.c
similarity index 100%
rename from third_party/opus/celt/arm/armcpu.c
rename to third_party/opus/src/celt/arm/armcpu.c
diff --git a/third_party/opus/celt/arm/armcpu.h b/third_party/opus/src/celt/arm/armcpu.h
similarity index 100%
rename from third_party/opus/celt/arm/armcpu.h
rename to third_party/opus/src/celt/arm/armcpu.h
diff --git a/third_party/opus/celt/arm/armopts.s.in b/third_party/opus/src/celt/arm/armopts.s.in
similarity index 100%
rename from third_party/opus/celt/arm/armopts.s.in
rename to third_party/opus/src/celt/arm/armopts.s.in
diff --git a/third_party/opus/celt/arm/celt_fft_ne10.c b/third_party/opus/src/celt/arm/celt_fft_ne10.c
similarity index 100%
rename from third_party/opus/celt/arm/celt_fft_ne10.c
rename to third_party/opus/src/celt/arm/celt_fft_ne10.c
diff --git a/third_party/opus/celt/arm/celt_mdct_ne10.c b/third_party/opus/src/celt/arm/celt_mdct_ne10.c
similarity index 100%
rename from third_party/opus/celt/arm/celt_mdct_ne10.c
rename to third_party/opus/src/celt/arm/celt_mdct_ne10.c
diff --git a/third_party/opus/celt/arm/celt_neon_intr.c b/third_party/opus/src/celt/arm/celt_neon_intr.c
similarity index 100%
rename from third_party/opus/celt/arm/celt_neon_intr.c
rename to third_party/opus/src/celt/arm/celt_neon_intr.c
diff --git a/third_party/opus/celt/arm/celt_pitch_xcorr_arm.s b/third_party/opus/src/celt/arm/celt_pitch_xcorr_arm.s
similarity index 100%
rename from third_party/opus/celt/arm/celt_pitch_xcorr_arm.s
rename to third_party/opus/src/celt/arm/celt_pitch_xcorr_arm.s
diff --git a/third_party/opus/celt/arm/fft_arm.h b/third_party/opus/src/celt/arm/fft_arm.h
similarity index 100%
rename from third_party/opus/celt/arm/fft_arm.h
rename to third_party/opus/src/celt/arm/fft_arm.h
diff --git a/third_party/opus/celt/arm/fixed_arm64.h b/third_party/opus/src/celt/arm/fixed_arm64.h
similarity index 100%
rename from third_party/opus/celt/arm/fixed_arm64.h
rename to third_party/opus/src/celt/arm/fixed_arm64.h
diff --git a/third_party/opus/celt/arm/fixed_armv4.h b/third_party/opus/src/celt/arm/fixed_armv4.h
similarity index 100%
rename from third_party/opus/celt/arm/fixed_armv4.h
rename to third_party/opus/src/celt/arm/fixed_armv4.h
diff --git a/third_party/opus/celt/arm/fixed_armv5e.h b/third_party/opus/src/celt/arm/fixed_armv5e.h
similarity index 100%
rename from third_party/opus/celt/arm/fixed_armv5e.h
rename to third_party/opus/src/celt/arm/fixed_armv5e.h
diff --git a/third_party/opus/celt/arm/kiss_fft_armv4.h b/third_party/opus/src/celt/arm/kiss_fft_armv4.h
similarity index 100%
rename from third_party/opus/celt/arm/kiss_fft_armv4.h
rename to third_party/opus/src/celt/arm/kiss_fft_armv4.h
diff --git a/third_party/opus/celt/arm/kiss_fft_armv5e.h b/third_party/opus/src/celt/arm/kiss_fft_armv5e.h
similarity index 100%
rename from third_party/opus/celt/arm/kiss_fft_armv5e.h
rename to third_party/opus/src/celt/arm/kiss_fft_armv5e.h
diff --git a/third_party/opus/celt/arm/mdct_arm.h b/third_party/opus/src/celt/arm/mdct_arm.h
similarity index 100%
rename from third_party/opus/celt/arm/mdct_arm.h
rename to third_party/opus/src/celt/arm/mdct_arm.h
diff --git a/third_party/opus/celt/arm/pitch_arm.h b/third_party/opus/src/celt/arm/pitch_arm.h
similarity index 100%
rename from third_party/opus/celt/arm/pitch_arm.h
rename to third_party/opus/src/celt/arm/pitch_arm.h
diff --git a/third_party/opus/celt/arm/pitch_neon_intr.c b/third_party/opus/src/celt/arm/pitch_neon_intr.c
similarity index 100%
rename from third_party/opus/celt/arm/pitch_neon_intr.c
rename to third_party/opus/src/celt/arm/pitch_neon_intr.c
diff --git a/third_party/opus/celt/bands.c b/third_party/opus/src/celt/bands.c
similarity index 99%
rename from third_party/opus/celt/bands.c
rename to third_party/opus/src/celt/bands.c
index f7bb66a..2702963 100644
--- a/third_party/opus/celt/bands.c
+++ b/third_party/opus/src/celt/bands.c
@@ -371,14 +371,14 @@
static void compute_channel_weights(celt_ener Ex, celt_ener Ey, opus_val16 w[2])
{
celt_ener minE;
-#if FIXED_POINT
+#ifdef FIXED_POINT
int shift;
#endif
minE = MIN32(Ex, Ey);
/* Adjustment to make the weights a bit more conservative. */
Ex = ADD32(Ex, minE/3);
Ey = ADD32(Ey, minE/3);
-#if FIXED_POINT
+#ifdef FIXED_POINT
shift = celt_ilog2(EPSILON+MAX32(Ex, Ey))-14;
#endif
w[0] = VSHR32(Ex, shift);
diff --git a/third_party/opus/celt/bands.h b/third_party/opus/src/celt/bands.h
similarity index 100%
rename from third_party/opus/celt/bands.h
rename to third_party/opus/src/celt/bands.h
diff --git a/third_party/opus/celt/celt.c b/third_party/opus/src/celt/celt.c
similarity index 100%
rename from third_party/opus/celt/celt.c
rename to third_party/opus/src/celt/celt.c
diff --git a/third_party/opus/celt/celt.h b/third_party/opus/src/celt/celt.h
similarity index 100%
rename from third_party/opus/celt/celt.h
rename to third_party/opus/src/celt/celt.h
diff --git a/third_party/opus/celt/celt_decoder.c b/third_party/opus/src/celt/celt_decoder.c
similarity index 99%
rename from third_party/opus/celt/celt_decoder.c
rename to third_party/opus/src/celt/celt_decoder.c
index 8520e57..e6efce9 100644
--- a/third_party/opus/celt/celt_decoder.c
+++ b/third_party/opus/src/celt/celt_decoder.c
@@ -1059,7 +1059,7 @@
ALLOC(pulses, nbEBands, int);
ALLOC(fine_priority, nbEBands, int);
- codedBands = compute_allocation(mode, start, end, offsets, cap,
+ codedBands = clt_compute_allocation(mode, start, end, offsets, cap,
alloc_trim, &intensity, &dual_stereo, bits, &balance, pulses,
fine_quant, fine_priority, C, LM, dec, 0, 0, 0);
diff --git a/third_party/opus/celt/celt_encoder.c b/third_party/opus/src/celt/celt_encoder.c
similarity index 99%
rename from third_party/opus/celt/celt_encoder.c
rename to third_party/opus/src/celt/celt_encoder.c
index adf8573..44cb085 100644
--- a/third_party/opus/celt/celt_encoder.c
+++ b/third_party/opus/src/celt/celt_encoder.c
@@ -1021,13 +1021,13 @@
/* Compute SMR: Mask is never more than 72 dB below the peak and never below the noise floor.*/
opus_val16 smr = sig[i]-MAX16(MAX16(0, maxDepth-QCONST16(12.f, DB_SHIFT)), mask[i]);
/* Clamp SMR to make sure we're not shifting by something negative or too large. */
- smr = MAX16(-QCONST16(5.f, DB_SHIFT), MIN16(0, smr));
#ifdef FIXED_POINT
/* FIXME: Use PSHR16() instead */
- spread_weight[i] = IMAX(1, 32 >> -PSHR32(smr, DB_SHIFT));
+ int shift = -PSHR32(MAX16(-QCONST16(5.f, DB_SHIFT), MIN16(0, smr)), DB_SHIFT);
#else
- spread_weight[i] = IMAX(1, 32 >> -(int)floor(.5f + smr));
+ int shift = IMIN(5, IMAX(0, -(int)floor(.5f + smr)));
#endif
+ spread_weight[i] = 32 >> shift;
}
/*for (i=0;i<end;i++)
printf("%d ", spread_weight[i]);
@@ -1221,7 +1221,7 @@
}
#ifndef DISABLE_FLOAT_API
if (analysis->valid)
- gain1 *= analysis->max_pitch_ratio;
+ gain1 = (opus_val16)(gain1 * analysis->max_pitch_ratio);
#else
(void)analysis;
#endif
@@ -2191,7 +2191,7 @@
#endif
if (st->lfe)
signalBandwidth = 1;
- codedBands = compute_allocation(mode, start, end, offsets, cap,
+ codedBands = clt_compute_allocation(mode, start, end, offsets, cap,
alloc_trim, &st->intensity, &dual_stereo, bits, &balance, pulses,
fine_quant, fine_priority, C, LM, enc, 1, st->lastCodedBands, signalBandwidth);
if (st->lastCodedBands)
diff --git a/third_party/opus/celt/celt_lpc.c b/third_party/opus/src/celt/celt_lpc.c
similarity index 99%
rename from third_party/opus/celt/celt_lpc.c
rename to third_party/opus/src/celt/celt_lpc.c
index 90839f4..8ecb693 100644
--- a/third_party/opus/celt/celt_lpc.c
+++ b/third_party/opus/src/celt/celt_lpc.c
@@ -107,7 +107,7 @@
{
opus_val32 sum[4];
sum[0] = SHL32(EXTEND32(x[i ]), SIG_SHIFT);
- sum[1] = SHL32(EXTEND32(x[i+1]), SIG_SHIFT),
+ sum[1] = SHL32(EXTEND32(x[i+1]), SIG_SHIFT);
sum[2] = SHL32(EXTEND32(x[i+2]), SIG_SHIFT);
sum[3] = SHL32(EXTEND32(x[i+3]), SIG_SHIFT);
xcorr_kernel(rnum, x+i-ord, sum, ord, arch);
diff --git a/third_party/opus/celt/celt_lpc.h b/third_party/opus/src/celt/celt_lpc.h
similarity index 100%
rename from third_party/opus/celt/celt_lpc.h
rename to third_party/opus/src/celt/celt_lpc.h
diff --git a/third_party/opus/celt/cpu_support.h b/third_party/opus/src/celt/cpu_support.h
similarity index 100%
rename from third_party/opus/celt/cpu_support.h
rename to third_party/opus/src/celt/cpu_support.h
diff --git a/third_party/opus/celt/cwrs.c b/third_party/opus/src/celt/cwrs.c
similarity index 100%
rename from third_party/opus/celt/cwrs.c
rename to third_party/opus/src/celt/cwrs.c
diff --git a/third_party/opus/celt/cwrs.h b/third_party/opus/src/celt/cwrs.h
similarity index 100%
rename from third_party/opus/celt/cwrs.h
rename to third_party/opus/src/celt/cwrs.h
diff --git a/third_party/opus/celt/dump_modes/dump_modes.c b/third_party/opus/src/celt/dump_modes/dump_modes.c
similarity index 100%
rename from third_party/opus/celt/dump_modes/dump_modes.c
rename to third_party/opus/src/celt/dump_modes/dump_modes.c
diff --git a/third_party/opus/celt/dump_modes/dump_modes_arch.h b/third_party/opus/src/celt/dump_modes/dump_modes_arch.h
similarity index 100%
rename from third_party/opus/celt/dump_modes/dump_modes_arch.h
rename to third_party/opus/src/celt/dump_modes/dump_modes_arch.h
diff --git a/third_party/opus/celt/dump_modes/dump_modes_arm_ne10.c b/third_party/opus/src/celt/dump_modes/dump_modes_arm_ne10.c
similarity index 100%
rename from third_party/opus/celt/dump_modes/dump_modes_arm_ne10.c
rename to third_party/opus/src/celt/dump_modes/dump_modes_arm_ne10.c
diff --git a/third_party/opus/celt/ecintrin.h b/third_party/opus/src/celt/ecintrin.h
similarity index 100%
rename from third_party/opus/celt/ecintrin.h
rename to third_party/opus/src/celt/ecintrin.h
diff --git a/third_party/opus/celt/entcode.c b/third_party/opus/src/celt/entcode.c
similarity index 100%
rename from third_party/opus/celt/entcode.c
rename to third_party/opus/src/celt/entcode.c
diff --git a/third_party/opus/celt/entcode.h b/third_party/opus/src/celt/entcode.h
similarity index 100%
rename from third_party/opus/celt/entcode.h
rename to third_party/opus/src/celt/entcode.h
diff --git a/third_party/opus/celt/entdec.c b/third_party/opus/src/celt/entdec.c
similarity index 100%
rename from third_party/opus/celt/entdec.c
rename to third_party/opus/src/celt/entdec.c
diff --git a/third_party/opus/celt/entdec.h b/third_party/opus/src/celt/entdec.h
similarity index 100%
rename from third_party/opus/celt/entdec.h
rename to third_party/opus/src/celt/entdec.h
diff --git a/third_party/opus/celt/entenc.c b/third_party/opus/src/celt/entenc.c
similarity index 100%
rename from third_party/opus/celt/entenc.c
rename to third_party/opus/src/celt/entenc.c
diff --git a/third_party/opus/celt/entenc.h b/third_party/opus/src/celt/entenc.h
similarity index 100%
rename from third_party/opus/celt/entenc.h
rename to third_party/opus/src/celt/entenc.h
diff --git a/third_party/opus/celt/fixed_c5x.h b/third_party/opus/src/celt/fixed_c5x.h
similarity index 100%
rename from third_party/opus/celt/fixed_c5x.h
rename to third_party/opus/src/celt/fixed_c5x.h
diff --git a/third_party/opus/celt/fixed_c6x.h b/third_party/opus/src/celt/fixed_c6x.h
similarity index 100%
rename from third_party/opus/celt/fixed_c6x.h
rename to third_party/opus/src/celt/fixed_c6x.h
diff --git a/third_party/opus/celt/fixed_debug.h b/third_party/opus/src/celt/fixed_debug.h
similarity index 100%
rename from third_party/opus/celt/fixed_debug.h
rename to third_party/opus/src/celt/fixed_debug.h
diff --git a/third_party/opus/celt/fixed_generic.h b/third_party/opus/src/celt/fixed_generic.h
similarity index 100%
rename from third_party/opus/celt/fixed_generic.h
rename to third_party/opus/src/celt/fixed_generic.h
diff --git a/third_party/opus/celt/float_cast.h b/third_party/opus/src/celt/float_cast.h
similarity index 93%
rename from third_party/opus/celt/float_cast.h
rename to third_party/opus/src/celt/float_cast.h
index f7bde78..889dae9 100644
--- a/third_party/opus/celt/float_cast.h
+++ b/third_party/opus/src/celt/float_cast.h
@@ -96,10 +96,10 @@
#include <math.h>
#define float2int(x) lrint(x)
-#elif (defined(_MSC_VER) && _MSC_VER >= 1400) && defined (_M_X64)
+#elif (defined(_MSC_VER) && _MSC_VER >= 1400) && (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1))
#include <xmmintrin.h>
- __inline long int float2int(float value)
+ static __inline long int float2int(float value)
{
return _mm_cvtss_si32(_mm_load_ss(&value));
}
@@ -110,7 +110,7 @@
** Therefore implement OPUS_INLINE versions of these functions here.
*/
- __inline long int
+ static __inline long int
float2int (float flt)
{ int intgr;
@@ -126,8 +126,8 @@
#if (defined(__GNUC__) && defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L)
/* supported by gcc in C99 mode, but not by all other compilers */
- // #warning "Don't have the functions lrint() and lrintf ()."
- // #warning "Replacing these functions with a standard C cast."
+ #warning "Don't have the functions lrint() and lrintf ()."
+ #warning "Replacing these functions with a standard C cast."
#endif /* __STDC_VERSION__ >= 199901L */
#include <math.h>
#define float2int(flt) ((int)(floor(.5+flt)))
diff --git a/third_party/opus/celt/kiss_fft.c b/third_party/opus/src/celt/kiss_fft.c
similarity index 100%
rename from third_party/opus/celt/kiss_fft.c
rename to third_party/opus/src/celt/kiss_fft.c
diff --git a/third_party/opus/celt/kiss_fft.h b/third_party/opus/src/celt/kiss_fft.h
similarity index 100%
rename from third_party/opus/celt/kiss_fft.h
rename to third_party/opus/src/celt/kiss_fft.h
diff --git a/third_party/opus/celt/laplace.c b/third_party/opus/src/celt/laplace.c
similarity index 100%
rename from third_party/opus/celt/laplace.c
rename to third_party/opus/src/celt/laplace.c
diff --git a/third_party/opus/celt/laplace.h b/third_party/opus/src/celt/laplace.h
similarity index 100%
rename from third_party/opus/celt/laplace.h
rename to third_party/opus/src/celt/laplace.h
diff --git a/third_party/opus/celt/mathops.c b/third_party/opus/src/celt/mathops.c
similarity index 100%
rename from third_party/opus/celt/mathops.c
rename to third_party/opus/src/celt/mathops.c
diff --git a/third_party/opus/celt/mathops.h b/third_party/opus/src/celt/mathops.h
similarity index 100%
rename from third_party/opus/celt/mathops.h
rename to third_party/opus/src/celt/mathops.h
diff --git a/third_party/opus/celt/mdct.c b/third_party/opus/src/celt/mdct.c
similarity index 100%
rename from third_party/opus/celt/mdct.c
rename to third_party/opus/src/celt/mdct.c
diff --git a/third_party/opus/celt/mdct.h b/third_party/opus/src/celt/mdct.h
similarity index 100%
rename from third_party/opus/celt/mdct.h
rename to third_party/opus/src/celt/mdct.h
diff --git a/third_party/opus/celt/mfrngcod.h b/third_party/opus/src/celt/mfrngcod.h
similarity index 100%
rename from third_party/opus/celt/mfrngcod.h
rename to third_party/opus/src/celt/mfrngcod.h
diff --git a/third_party/opus/celt/mips/celt_mipsr1.h b/third_party/opus/src/celt/mips/celt_mipsr1.h
similarity index 99%
rename from third_party/opus/celt/mips/celt_mipsr1.h
rename to third_party/opus/src/celt/mips/celt_mipsr1.h
index e85661a..c332fe0 100644
--- a/third_party/opus/celt/mips/celt_mipsr1.h
+++ b/third_party/opus/src/celt/mips/celt_mipsr1.h
@@ -53,6 +53,7 @@
#include "celt_lpc.h"
#include "vq.h"
+#define OVERRIDE_COMB_FILTER_CONST
#define OVERRIDE_comb_filter
void comb_filter(opus_val32 *y, opus_val32 *x, int T0, int T1, int N,
opus_val16 g0, opus_val16 g1, int tapset0, int tapset1,
diff --git a/third_party/opus/celt/mips/fixed_generic_mipsr1.h b/third_party/opus/src/celt/mips/fixed_generic_mipsr1.h
similarity index 100%
rename from third_party/opus/celt/mips/fixed_generic_mipsr1.h
rename to third_party/opus/src/celt/mips/fixed_generic_mipsr1.h
diff --git a/third_party/opus/celt/mips/kiss_fft_mipsr1.h b/third_party/opus/src/celt/mips/kiss_fft_mipsr1.h
similarity index 100%
rename from third_party/opus/celt/mips/kiss_fft_mipsr1.h
rename to third_party/opus/src/celt/mips/kiss_fft_mipsr1.h
diff --git a/third_party/opus/celt/mips/mdct_mipsr1.h b/third_party/opus/src/celt/mips/mdct_mipsr1.h
similarity index 100%
rename from third_party/opus/celt/mips/mdct_mipsr1.h
rename to third_party/opus/src/celt/mips/mdct_mipsr1.h
diff --git a/third_party/opus/celt/mips/pitch_mipsr1.h b/third_party/opus/src/celt/mips/pitch_mipsr1.h
similarity index 100%
rename from third_party/opus/celt/mips/pitch_mipsr1.h
rename to third_party/opus/src/celt/mips/pitch_mipsr1.h
diff --git a/third_party/opus/celt/mips/vq_mipsr1.h b/third_party/opus/src/celt/mips/vq_mipsr1.h
similarity index 92%
rename from third_party/opus/celt/mips/vq_mipsr1.h
rename to third_party/opus/src/celt/mips/vq_mipsr1.h
index fd18eab..f26a33e 100644
--- a/third_party/opus/celt/mips/vq_mipsr1.h
+++ b/third_party/opus/src/celt/mips/vq_mipsr1.h
@@ -36,8 +36,6 @@
#include "mathops.h"
#include "arch.h"
-static void renormalise_vector_mips(celt_norm *X, int N, opus_val16 gain, int arch);
-
#define OVERRIDE_vq_exp_rotation1
static void exp_rotation1(celt_norm *X, int len, int stride, opus_val16 c, opus_val16 s)
{
@@ -66,11 +64,7 @@
}
#define OVERRIDE_renormalise_vector
-
-#define renormalise_vector(X, N, gain, arch) \
- (renormalise_vector_mips(X, N, gain, arch))
-
-void renormalise_vector_mips(celt_norm *X, int N, opus_val16 gain, int arch)
+void renormalise_vector(celt_norm *X, int N, opus_val16 gain, int arch)
{
int i;
#ifdef FIXED_POINT
diff --git a/third_party/opus/celt/modes.c b/third_party/opus/src/celt/modes.c
similarity index 100%
rename from third_party/opus/celt/modes.c
rename to third_party/opus/src/celt/modes.c
diff --git a/third_party/opus/celt/modes.h b/third_party/opus/src/celt/modes.h
similarity index 100%
rename from third_party/opus/celt/modes.h
rename to third_party/opus/src/celt/modes.h
diff --git a/third_party/opus/celt/opus_custom_demo.c b/third_party/opus/src/celt/opus_custom_demo.c
similarity index 100%
rename from third_party/opus/celt/opus_custom_demo.c
rename to third_party/opus/src/celt/opus_custom_demo.c
diff --git a/third_party/opus/celt/os_support.h b/third_party/opus/src/celt/os_support.h
similarity index 94%
rename from third_party/opus/celt/os_support.h
rename to third_party/opus/src/celt/os_support.h
index e4a6ea2..a217197 100644
--- a/third_party/opus/celt/os_support.h
+++ b/third_party/opus/src/celt/os_support.h
@@ -42,13 +42,6 @@
#include <stdio.h>
#include <stdlib.h>
-#ifdef STARBOARD
-#include "starboard/client_porting/poem/stdio_poem.h"
-#include "starboard/client_porting/poem/string_poem.h"
-#else // STARBOARD
-#include <malloc.h>
-#endif // STARBOARD
-
/** Opus wrapper for malloc(). To do your own dynamic allocation, all you need to do is replace this function and opus_free */
#ifndef OVERRIDE_OPUS_ALLOC
static OPUS_INLINE void *opus_alloc (size_t size)
diff --git a/third_party/opus/celt/pitch.c b/third_party/opus/src/celt/pitch.c
similarity index 100%
rename from third_party/opus/celt/pitch.c
rename to third_party/opus/src/celt/pitch.c
diff --git a/third_party/opus/celt/pitch.h b/third_party/opus/src/celt/pitch.h
similarity index 100%
rename from third_party/opus/celt/pitch.h
rename to third_party/opus/src/celt/pitch.h
diff --git a/third_party/opus/celt/quant_bands.c b/third_party/opus/src/celt/quant_bands.c
similarity index 100%
rename from third_party/opus/celt/quant_bands.c
rename to third_party/opus/src/celt/quant_bands.c
diff --git a/third_party/opus/celt/quant_bands.h b/third_party/opus/src/celt/quant_bands.h
similarity index 100%
rename from third_party/opus/celt/quant_bands.h
rename to third_party/opus/src/celt/quant_bands.h
diff --git a/third_party/opus/celt/rate.c b/third_party/opus/src/celt/rate.c
similarity index 99%
rename from third_party/opus/celt/rate.c
rename to third_party/opus/src/celt/rate.c
index ca4cc87..465e1ba 100644
--- a/third_party/opus/celt/rate.c
+++ b/third_party/opus/src/celt/rate.c
@@ -529,7 +529,7 @@
return codedBands;
}
-int compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stereo,
+int clt_compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stereo,
opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth)
{
int lo, hi, len, j;
diff --git a/third_party/opus/celt/rate.h b/third_party/opus/src/celt/rate.h
similarity index 95%
rename from third_party/opus/celt/rate.h
rename to third_party/opus/src/celt/rate.h
index 515f768..fad5e41 100644
--- a/third_party/opus/celt/rate.h
+++ b/third_party/opus/src/celt/rate.h
@@ -95,7 +95,7 @@
@param pulses Number of pulses per band (returned)
@return Total number of bits allocated
*/
-int compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stero,
+int clt_compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stereo,
opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth);
#endif
diff --git a/third_party/opus/celt/stack_alloc.h b/third_party/opus/src/celt/stack_alloc.h
similarity index 100%
rename from third_party/opus/celt/stack_alloc.h
rename to third_party/opus/src/celt/stack_alloc.h
diff --git a/third_party/opus/celt/static_modes_fixed.h b/third_party/opus/src/celt/static_modes_fixed.h
similarity index 100%
rename from third_party/opus/celt/static_modes_fixed.h
rename to third_party/opus/src/celt/static_modes_fixed.h
diff --git a/third_party/opus/celt/static_modes_fixed_arm_ne10.h b/third_party/opus/src/celt/static_modes_fixed_arm_ne10.h
similarity index 100%
rename from third_party/opus/celt/static_modes_fixed_arm_ne10.h
rename to third_party/opus/src/celt/static_modes_fixed_arm_ne10.h
diff --git a/third_party/opus/celt/static_modes_float.h b/third_party/opus/src/celt/static_modes_float.h
similarity index 100%
rename from third_party/opus/celt/static_modes_float.h
rename to third_party/opus/src/celt/static_modes_float.h
diff --git a/third_party/opus/celt/static_modes_float_arm_ne10.h b/third_party/opus/src/celt/static_modes_float_arm_ne10.h
similarity index 100%
rename from third_party/opus/celt/static_modes_float_arm_ne10.h
rename to third_party/opus/src/celt/static_modes_float_arm_ne10.h
diff --git a/third_party/opus/celt/tests/test_unit_cwrs32.c b/third_party/opus/src/celt/tests/test_unit_cwrs32.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_cwrs32.c
rename to third_party/opus/src/celt/tests/test_unit_cwrs32.c
diff --git a/third_party/opus/celt/tests/test_unit_dft.c b/third_party/opus/src/celt/tests/test_unit_dft.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_dft.c
rename to third_party/opus/src/celt/tests/test_unit_dft.c
diff --git a/third_party/opus/celt/tests/test_unit_entropy.c b/third_party/opus/src/celt/tests/test_unit_entropy.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_entropy.c
rename to third_party/opus/src/celt/tests/test_unit_entropy.c
diff --git a/third_party/opus/celt/tests/test_unit_laplace.c b/third_party/opus/src/celt/tests/test_unit_laplace.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_laplace.c
rename to third_party/opus/src/celt/tests/test_unit_laplace.c
diff --git a/third_party/opus/celt/tests/test_unit_mathops.c b/third_party/opus/src/celt/tests/test_unit_mathops.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_mathops.c
rename to third_party/opus/src/celt/tests/test_unit_mathops.c
diff --git a/third_party/opus/celt/tests/test_unit_mdct.c b/third_party/opus/src/celt/tests/test_unit_mdct.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_mdct.c
rename to third_party/opus/src/celt/tests/test_unit_mdct.c
diff --git a/third_party/opus/celt/tests/test_unit_rotation.c b/third_party/opus/src/celt/tests/test_unit_rotation.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_rotation.c
rename to third_party/opus/src/celt/tests/test_unit_rotation.c
diff --git a/third_party/opus/celt/tests/test_unit_types.c b/third_party/opus/src/celt/tests/test_unit_types.c
similarity index 100%
rename from third_party/opus/celt/tests/test_unit_types.c
rename to third_party/opus/src/celt/tests/test_unit_types.c
diff --git a/third_party/opus/celt/vq.c b/third_party/opus/src/celt/vq.c
similarity index 99%
rename from third_party/opus/celt/vq.c
rename to third_party/opus/src/celt/vq.c
index a6b5552..8011e22 100644
--- a/third_party/opus/celt/vq.c
+++ b/third_party/opus/src/celt/vq.c
@@ -39,6 +39,10 @@
#include "rate.h"
#include "pitch.h"
+#if defined(MIPSr1_ASM)
+#include "mips/vq_mipsr1.h"
+#endif
+
#ifndef OVERRIDE_vq_exp_rotation1
static void exp_rotation1(celt_norm *X, int len, int stride, opus_val16 c, opus_val16 s)
{
diff --git a/third_party/opus/celt/vq.h b/third_party/opus/src/celt/vq.h
similarity index 97%
rename from third_party/opus/celt/vq.h
rename to third_party/opus/src/celt/vq.h
index 0dfe6af..45ec559 100644
--- a/third_party/opus/celt/vq.h
+++ b/third_party/opus/src/celt/vq.h
@@ -41,10 +41,6 @@
#include "x86/vq_sse.h"
#endif
-#if defined(MIPSr1_ASM)
-#include "mips/vq_mipsr1.h"
-#endif
-
void exp_rotation(celt_norm *X, int len, int dir, int stride, int K, int spread);
opus_val16 op_pvq_search_c(celt_norm *X, int *iy, int K, int N, int arch);
diff --git a/third_party/opus/celt/x86/celt_lpc_sse.h b/third_party/opus/src/celt/x86/celt_lpc_sse.h
similarity index 100%
rename from third_party/opus/celt/x86/celt_lpc_sse.h
rename to third_party/opus/src/celt/x86/celt_lpc_sse.h
diff --git a/third_party/opus/celt/x86/celt_lpc_sse4_1.c b/third_party/opus/src/celt/x86/celt_lpc_sse4_1.c
similarity index 100%
rename from third_party/opus/celt/x86/celt_lpc_sse4_1.c
rename to third_party/opus/src/celt/x86/celt_lpc_sse4_1.c
diff --git a/third_party/opus/celt/x86/pitch_sse.c b/third_party/opus/src/celt/x86/pitch_sse.c
similarity index 100%
rename from third_party/opus/celt/x86/pitch_sse.c
rename to third_party/opus/src/celt/x86/pitch_sse.c
diff --git a/third_party/opus/celt/x86/pitch_sse.h b/third_party/opus/src/celt/x86/pitch_sse.h
similarity index 100%
rename from third_party/opus/celt/x86/pitch_sse.h
rename to third_party/opus/src/celt/x86/pitch_sse.h
diff --git a/third_party/opus/celt/x86/pitch_sse2.c b/third_party/opus/src/celt/x86/pitch_sse2.c
similarity index 100%
rename from third_party/opus/celt/x86/pitch_sse2.c
rename to third_party/opus/src/celt/x86/pitch_sse2.c
diff --git a/third_party/opus/celt/x86/pitch_sse4_1.c b/third_party/opus/src/celt/x86/pitch_sse4_1.c
similarity index 100%
rename from third_party/opus/celt/x86/pitch_sse4_1.c
rename to third_party/opus/src/celt/x86/pitch_sse4_1.c
diff --git a/third_party/opus/celt/x86/vq_sse.h b/third_party/opus/src/celt/x86/vq_sse.h
similarity index 100%
rename from third_party/opus/celt/x86/vq_sse.h
rename to third_party/opus/src/celt/x86/vq_sse.h
diff --git a/third_party/opus/celt/x86/vq_sse2.c b/third_party/opus/src/celt/x86/vq_sse2.c
similarity index 100%
rename from third_party/opus/celt/x86/vq_sse2.c
rename to third_party/opus/src/celt/x86/vq_sse2.c
diff --git a/third_party/opus/celt/x86/x86_celt_map.c b/third_party/opus/src/celt/x86/x86_celt_map.c
similarity index 100%
rename from third_party/opus/celt/x86/x86_celt_map.c
rename to third_party/opus/src/celt/x86/x86_celt_map.c
diff --git a/third_party/opus/celt/x86/x86cpu.c b/third_party/opus/src/celt/x86/x86cpu.c
similarity index 100%
rename from third_party/opus/celt/x86/x86cpu.c
rename to third_party/opus/src/celt/x86/x86cpu.c
diff --git a/third_party/opus/celt/x86/x86cpu.h b/third_party/opus/src/celt/x86/x86cpu.h
similarity index 100%
rename from third_party/opus/celt/x86/x86cpu.h
rename to third_party/opus/src/celt/x86/x86cpu.h
diff --git a/third_party/opus/src/config.h.cmake.in b/third_party/opus/src/config.h.cmake.in
new file mode 100644
index 0000000..5550842
--- /dev/null
+++ b/third_party/opus/src/config.h.cmake.in
@@ -0,0 +1 @@
+#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@"
\ No newline at end of file
diff --git a/third_party/opus/configure.ac b/third_party/opus/src/configure.ac
similarity index 97%
rename from third_party/opus/configure.ac
rename to third_party/opus/src/configure.ac
index 4b416fe..18ece29 100644
--- a/third_party/opus/configure.ac
+++ b/third_party/opus/src/configure.ac
@@ -22,9 +22,9 @@
# For libtool.
dnl Please update these for releases.
-OPUS_LT_CURRENT=6
-OPUS_LT_REVISION=1
-OPUS_LT_AGE=6
+OPUS_LT_CURRENT=8
+OPUS_LT_REVISION=0
+OPUS_LT_AGE=8
AC_SUBST(OPUS_LT_CURRENT)
AC_SUBST(OPUS_LT_REVISION)
@@ -760,15 +760,15 @@
])
AC_ARG_ENABLE([hardening],
- [AS_HELP_STRING([--enable-hardening],[enable run-time checks that are cheap and safe for use in production])],,
- [enable_hardening=no])
+ [AS_HELP_STRING([--disable-hardening],[disable run-time checks that are cheap and safe for use in production])],,
+ [enable_hardening=yes])
AS_IF([test "$enable_hardening" = "yes"], [
AC_DEFINE([ENABLE_HARDENING], [1], [Hardening])
])
AC_ARG_ENABLE([fuzzing],
- [AS_HELP_STRING([--enable-fuzzing],[causes the encoder to make random decisions])],,
+ [AS_HELP_STRING([--enable-fuzzing],[causes the encoder to make random decisions (do not use in production)])],,
[enable_fuzzing=no])
AS_IF([test "$enable_fuzzing" = "yes"], [
@@ -784,14 +784,6 @@
AC_DEFINE([OPUS_CHECK_ASM], [1], [Run bit-exactness checks between optimized and c implementations])
])
-AC_ARG_ENABLE([ambisonics],
- [AS_HELP_STRING([--enable-ambisonics],[enable experimental ambisonic encoding and decoding support])],,
- [enable_ambisonics=no])
-
-AS_IF([test "$enable_ambisonics" = "yes"], [
- AC_DEFINE([ENABLE_EXPERIMENTAL_AMBISONICS], [1], [Ambisonics Support])
-])
-
AC_ARG_ENABLE([doc],
[AS_HELP_STRING([--disable-doc], [Do not build API documentation])],,
[enable_doc=yes])
@@ -930,7 +922,6 @@
Hardening: ..................... ${enable_hardening}
Fuzzing: ....................... ${enable_fuzzing}
Check ASM: ..................... ${enable_check_asm}
- Ambisonics support: ............ ${enable_ambisonics}
API documentation: ............. ${enable_doc}
Extra programs: ................ ${enable_extra_programs}
diff --git a/third_party/opus/doc/Doxyfile.in b/third_party/opus/src/doc/Doxyfile.in
similarity index 100%
rename from third_party/opus/doc/Doxyfile.in
rename to third_party/opus/src/doc/Doxyfile.in
diff --git a/third_party/opus/doc/Makefile.am b/third_party/opus/src/doc/Makefile.am
similarity index 100%
rename from third_party/opus/doc/Makefile.am
rename to third_party/opus/src/doc/Makefile.am
diff --git a/third_party/opus/doc/build_draft.sh b/third_party/opus/src/doc/build_draft.sh
similarity index 100%
rename from third_party/opus/doc/build_draft.sh
rename to third_party/opus/src/doc/build_draft.sh
diff --git a/third_party/opus/doc/build_isobmff.sh b/third_party/opus/src/doc/build_isobmff.sh
similarity index 100%
rename from third_party/opus/doc/build_isobmff.sh
rename to third_party/opus/src/doc/build_isobmff.sh
diff --git a/third_party/opus/doc/build_oggdraft.sh b/third_party/opus/src/doc/build_oggdraft.sh
similarity index 100%
rename from third_party/opus/doc/build_oggdraft.sh
rename to third_party/opus/src/doc/build_oggdraft.sh
diff --git a/third_party/opus/doc/customdoxygen.css b/third_party/opus/src/doc/customdoxygen.css
similarity index 100%
rename from third_party/opus/doc/customdoxygen.css
rename to third_party/opus/src/doc/customdoxygen.css
diff --git a/third_party/opus/doc/draft-ietf-codec-oggopus.xml b/third_party/opus/src/doc/draft-ietf-codec-oggopus.xml
similarity index 100%
rename from third_party/opus/doc/draft-ietf-codec-oggopus.xml
rename to third_party/opus/src/doc/draft-ietf-codec-oggopus.xml
diff --git a/third_party/opus/doc/draft-ietf-codec-opus-update.xml b/third_party/opus/src/doc/draft-ietf-codec-opus-update.xml
similarity index 100%
rename from third_party/opus/doc/draft-ietf-codec-opus-update.xml
rename to third_party/opus/src/doc/draft-ietf-codec-opus-update.xml
diff --git a/third_party/opus/doc/draft-ietf-codec-opus.xml b/third_party/opus/src/doc/draft-ietf-codec-opus.xml
similarity index 100%
rename from third_party/opus/doc/draft-ietf-codec-opus.xml
rename to third_party/opus/src/doc/draft-ietf-codec-opus.xml
diff --git a/third_party/opus/doc/draft-ietf-payload-rtp-opus.xml b/third_party/opus/src/doc/draft-ietf-payload-rtp-opus.xml
similarity index 100%
rename from third_party/opus/doc/draft-ietf-payload-rtp-opus.xml
rename to third_party/opus/src/doc/draft-ietf-payload-rtp-opus.xml
diff --git a/third_party/opus/doc/footer.html b/third_party/opus/src/doc/footer.html
similarity index 100%
rename from third_party/opus/doc/footer.html
rename to third_party/opus/src/doc/footer.html
diff --git a/third_party/opus/doc/header.html b/third_party/opus/src/doc/header.html
similarity index 100%
rename from third_party/opus/doc/header.html
rename to third_party/opus/src/doc/header.html
diff --git a/third_party/opus/doc/opus_in_isobmff.css b/third_party/opus/src/doc/opus_in_isobmff.css
similarity index 100%
rename from third_party/opus/doc/opus_in_isobmff.css
rename to third_party/opus/src/doc/opus_in_isobmff.css
diff --git a/third_party/opus/doc/opus_in_isobmff.html b/third_party/opus/src/doc/opus_in_isobmff.html
similarity index 82%
rename from third_party/opus/doc/opus_in_isobmff.html
rename to third_party/opus/src/doc/opus_in_isobmff.html
index a1175db..38aefbf 100644
--- a/third_party/opus/doc/opus_in_isobmff.html
+++ b/third_party/opus/src/doc/opus_in_isobmff.html
@@ -7,12 +7,12 @@
</head>
<body bgcolor="0x333333" text="#60B0C0">
<b><u>Encapsulation of Opus in ISO Base Media File Format</u></b><br>
- <font size="2">last updated: April 28, 2016</font><br>
+ <font size="2">last updated: August 28, 2018</font><br>
<br>
<div class="normal_link pre frame_box">
Encapsulation of Opus in ISO Base Media File Format
- Version 0.6.8 (incomplete)
+ Version 0.8.1 (incomplete)
Table of Contents
@@ -20,7 +20,7 @@
<a href="#2">2</a> Normative References
<a href="#3">3</a> Terms and Definitions
<a href="#4">4</a> Design Rules of Encapsulation
- <a href="#4.1">4.1</a> File Type Indentification
+ <a href="#4.1">4.1</a> File Type Identification
<a href="#4.2">4.2</a> Overview of Track Structure
<a href="#4.3">4.3</a> Definitions of Opus sample
<a href="#4.3.1">4.3.1</a> Sample entry format
@@ -32,7 +32,9 @@
<a href="#4.3.6.1">4.3.6.1</a> Random Access Point
<a href="#4.3.6.2">4.3.6.2</a> Pre-roll
<a href="#4.4">4.4</a> Trimming of Actual Duration
- <a href="#4.5">4.5</a> Channel Layout (informative)
+ <a href="#4.5">4.5</a> Channel Mapping
+ <a href="#4.5.1">4.5.1</a> ISO Base Media native Channel Mapping
+ <a href="#4.5.2">4.5.2</a> Composition on all active tracks (informative)
<a href="#4.6">4.6</a> Basic Structure (informative)
<a href="#4.6.1">4.6.2</a> Initial Movie
<a href="#4.6.2">4.6.3</a> Movie Fragments
@@ -53,7 +55,7 @@
[2] RFC 6716
Definition of the Opus Audio Codec
- [3] draft-ietf-codec-oggopus-06
+ [3] RFC 7845
Ogg Encapsulation for the Opus Audio Codec
<a name="3"></a>
@@ -83,8 +85,8 @@
<a name="4"></a>
4 Design Rules of Encapsulation
- 4.1 File Type Indentification<a name="4.1"></a>
- This specification does not define any brand to declare files are conformant to this specification. However,
+ 4.1 File Type Identification<a name="4.1"></a>
+ This specification defines the brand 'Opus' to declare files are conformant to this specification. Additionally,
files conformant to this specification shall contain at least one brand, which supports the requirements and the
requirements described in this clause without contradiction, in the compatible brands list of the File Type Box.
As an example, the minimal support of the encapsulation of Opus bitstreams in ISO Base Media file format requires
@@ -117,15 +119,14 @@
The syntax and semantics of the OpusSampleEntry is shown as follows.
- class OpusSampleEntry() extends AudioSampleEntry ('Opus'){
+ class OpusSampleEntry() extends AudioSampleEntry ('Opus') {
OpusSpecificBox();
}
+ channelcount:
- The channelcount field shall be set to the sum of the total number of Opus bitstreams and the number
- of Opus bitstreams producing two channels. This value is indentical with (M+N), where M is the value of
- the *Coupled Stream Count* field and N is the value of the *Stream Count* field in the *Channel Mapping
- Table* in the identification header defined in Ogg Opus [3].
+ The channelcount field indicates the number of output channels and shall be set to the same value of
+ the OutputChannelCount in the OpusDecoderConfigurationRecord. The value of this field may be used in
+ the ChannelLayout if any as described in 4.5.1.
+ samplesize:
The samplesize field shall be set to 16.
+ samplerate:
@@ -135,20 +136,21 @@
4.3.2 Opus Specific Box<a name="4.3.2"></a>
Exactly one Opus Specific Box shall be present in each OpusSampleEntry.
- The Opus Specific Box contains the Version field and this specification defines version 0 of this box.
- If incompatible changes occured in the fields after the Version field within the OpusSpecificBox in the
- future versions of this specification, another version will be defined.
+ The Opus Specific Box contains an OpusDecoderConfigurationRecord which contains the Version field and
+ this specification defines version 0 of this record. If incompatible changes occured in the fields after
+ the Version field within the OpusDecoderConfigurationRecord in the future versions of this specification,
+ another version will be defined.
This box refers to Ogg Opus [3] at many parts but all the data are stored as big-endian format.
The syntax and semantics of the Opus Specific Box is shown as follows.
- class ChannelMappingTable (unsigned int(8) OutputChannelCount){
+ class ChannelMappingTable (unsigned int(8) OutputChannelCount) {
unsigned int(8) StreamCount;
unsigned int(8) CoupledCount;
unsigned int(8 * OutputChannelCount) ChannelMapping;
}
- aligned(8) class OpusSpecificBox extends Box('dOps'){
+ aligned(8) class OpusDecoderConfigurationRecord {
unsigned int(8) Version;
unsigned int(8) OutputChannelCount;
unsigned int(16) PreSkip;
@@ -160,6 +162,10 @@
}
}
+ class OpusSpecificBox extends Box('dOps') {
+ OpusDecoderConfigurationRecord() OpusConfig;
+ }
+
+ Version:
The Version field shall be set to 0.
In the future versions of this specification, this field may be set to other values. And without support
@@ -181,7 +187,8 @@
header define in Ogg Opus [3]. Note that the value is stored as 8.8 fixed-point.
+ ChannelMappingFamily:
The ChannelMappingFamily field shall be set to the same value as the *Channel Mapping Family* field in
- the identification header defined in Ogg Opus [3].
+ the identification header defined in Ogg Opus [3]. Note that the value 255 may be used for an alternative
+ to map channels by ISO Base Media native mapping. The details are described in 4.5.1.
+ StreamCount:
The StreamCount field shall be set to the same value as the *Stream Count* field in the identification
header defined in Ogg Opus [3].
@@ -270,42 +277,62 @@
the duration of the last Opus sample may be helpful by setting zero to the segment_duration field since the
value 0 represents implicit duration equal to the sum of the duration of all samples.
<a name="4.5"></a>
- 4.5 Channel Layout (informative)
- By the application of alternate_group in the Track Header Box, whole audio channels in all active tracks from
- non-alternate group and/or different alternate group from each other are composited into the presentation. If
- an Opus sample consists of multiple Opus bitstreams, it can be splitted into individual Opus bitstreams and
- reconstructed into new Opus samples as long as every Opus bitstream has the same total duration in each Opus
- sample. This nature can be utilized to encapsulate a single Opus bitstream in each track without breaking the
- original channel layout.
+ 4.5 Channel Mapping
+ 4.5.1 ISO Base Media native Channel Mapping<a name="4.5.1"></a>
+ ISO Base Media File Format, that is ISO/IEC 14496-12 [1], defines an extension ChannelLayout to the
+ AudioSampleEntry, which conveys information of mapping channels to loudspeaker positions. The ChannelLayout
+ enables to specify the channel layout more flexibly than the predefined layouts of the ChannelMappingFamily.
- As an example, let's say there is a following track:
- OutputChannelCount = 6;
- StreamCount = 4;
- CoupledCount = 2;
- ChannelMapping = {0, 4, 1, 2, 3, 5}; // front left, front center, front right, rear left, rear right, LFE
- Here, to couple front left to front right channels into the first stream, and couple rear left to rear right
- channels into the second stream, reordering is needed since coupled streams must precede any non-coupled stream.
- You extract the four Opus bitstreams from this track and you encapsulate two of the four into a track and the
- others into another track. The former track is as follows.
- OutputChannelCount = 6;
- StreamCount = 2;
- CoupledCount = 2;
- ChannelMapping = {0, 255, 1, 2, 3, 255}; // front left, front center, front right, rear left, rear right, LFE
- And the latter track is as follows.
- OutputChannelCount = 6;
- StreamCount = 2;
- CoupledCount = 0;
- ChannelMapping = {255, 0, 255, 255, 255, 1}; // front left, front center, front right, rear left, rear right, LFE
- In addition, the value of the alternate_group field in the both tracks is set to 0. As the result, the player
- may play as if channels with 255 are not present, and play the presentation constructed from the both tracks
- in the same channel layout as the one of the original track. Keep in mind that the way of the composition, i.e.
- the mixing for playback, is not defined here, and maybe different results could occur except for the channel
- layout of the original, depending on an implementation or the definition of a derived file format.
+ To utilize the ChannelLayout for OpusSampleEntry, the ChannelMappingFamily field should be set to 255.
+ Even when the ChannelMappingFamily field is set to another value, the assignment of each output channel to
+ loudspeaker position specified by the ChannelMappingFamily would be changed as specified by the ChannelLayout.
+ The procedure of the assignment is the following.
- Note that some derived file formats may specify the restriction to ignore alternate grouping. In the context of
- such file formats, this application is not available. This unavailability does not mean incompatibilities among
- file formats unless the restriction to the value of the alternate_group field is specified and brings about
- any conflict among their definitions.
+ 1. Decoded channels are mapped to output channels according to the ChannelMappingTable.
+ 2. Output channels are mapped to loudspeaker positions according to the ChannelLayout.
+
+ In this way, the parameters of the Opus Specific Box are processed before the ChannelLayout, and the
+ ChannelLayout shall follow the Opus Specific Box.
+
+ 4.5.2 Composition on all active tracks (informative)<a name="4.5.2"></a>
+ By the application of alternate_group in the Track Header Box, whole audio channels in all active tracks from
+ non-alternate group and/or different alternate group from each other are composited into the presentation. If
+ an Opus sample consists of multiple Opus bitstreams, it can be splitted into individual Opus bitstreams and
+ reconstructed into new Opus samples as long as every Opus bitstream has the same total duration in each Opus
+ sample. This nature can be utilized to encapsulate a single Opus bitstream in each track without breaking the
+ original channel layout.
+
+ As an example, let's say there is a following track:
+ OutputChannelCount = 6;
+ StreamCount = 4;
+ CoupledCount = 2;
+ ChannelMapping = {0, 4, 1, 2, 3, 5}; // front left, front center, front right,
+ // rear left, rear right, LFE
+ Here, to couple front left to front right channels into the first stream, and couple rear left to rear right
+ channels into the second stream, reordering is needed since coupled streams must precede any non-coupled
+ stream. You extract the four Opus bitstreams from this track and you encapsulate two of the four into a track
+ and the others into another track. The former track is as follows.
+ OutputChannelCount = 6;
+ StreamCount = 2;
+ CoupledCount = 2;
+ ChannelMapping = {0, 255, 1, 2, 3, 255}; // front left, front center, front right,
+ // rear left, rear right, LFE
+ And the latter track is as follows.
+ OutputChannelCount = 6;
+ StreamCount = 2;
+ CoupledCount = 0;
+ ChannelMapping = {255, 0, 255, 255, 255, 1}; // front left, front center, front right,
+ // rear left, rear right, LFE
+ In addition, the value of the alternate_group field in the both tracks is set to 0. As the result, the player
+ may play as if channels with 255 are not present, and play the presentation constructed from the both tracks
+ in the same channel layout as the one of the original track. Keep in mind that the way of the composition, i.e.
+ the mixing for playback, is not defined here, and maybe different results could occur except for the channel
+ layout of the original, depending on an implementation or the definition of a derived file format.
+
+ Note that some derived file formats may specify the restriction to ignore alternate grouping. In the context
+ of such file formats, this application is not available. This unavailability does not mean incompatibilities
+ among file formats unless the restriction to the value of the alternate_group field is specified and brings
+ about any conflict among their definitions.
<a name="4.6"></a>
4.6 Basic Structure (informative)
4.6.1 Initial Movie<a name="4.6.1"></a>
@@ -395,7 +422,7 @@
+----+----+----+----+----+----+----+----+------------------------------+
| | |sgpd|* | | | | | Sample Group Description Box |
+----+----+----+----+----+----+----+----+------------------------------+
- | | |sbgp|* | | | | | Sample to Group Box |
+ | | |sbgp| | | | | | Sample to Group Box |
+----+----+----+----+----+----+----+----+------------------------------+
Figure 3 - Basic structure of Movie Fragment Box
@@ -407,14 +434,14 @@
<a name="4.7"></a>
4.7 Example of Encapsulation (informative)
[File]
- size = 17790
+ size = 17757
[ftyp: File Type Box]
position = 0
size = 24
- major_brand = mp42 : MP4 version 2
+ major_brand = Opus : Opus audio coding
minor_version = 0
compatible_brands
- brand[0] = mp42 : MP4 version 2
+ brand[0] = Opus : Opus audio coding
brand[1] = iso2 : ISO Base Media file format version 2
[moov: Movie Box]
position = 24
@@ -444,30 +471,11 @@
pre_defined = 0x00000000
pre_defined = 0x00000000
next_track_ID = 2
- [iods: Object Descriptor Box]
- position = 140
- size = 33
- version = 0
- flags = 0x000000
- [tag = 0x10: MP4_IOD]
- expandableClassSize = 16
- ObjectDescriptorID = 1
- URL_Flag = 0
- includeInlineProfileLevelFlag = 0
- reserved = 0xf
- ODProfileLevelIndication = 0xff
- sceneProfileLevelIndication = 0xff
- audioProfileLevelIndication = 0xfe
- visualProfileLevelIndication = 0xff
- graphicsProfileLevelIndication = 0xff
- [tag = 0x0e: ES_ID_Inc]
- expandableClassSize = 4
- Track_ID = 1
[trak: Track Box]
- position = 173
+ position = 140
size = 608
[tkhd: Track Header Box]
- position = 181
+ position = 148
size = 92
version = 0
flags = 0x000007
@@ -492,7 +500,7 @@
width = 0.000000
height = 0.000000
[edts: Edit Box]
- position = 273
+ position = 240
size = 36
[elst: Edit List Box]
position = 281
@@ -505,10 +513,10 @@
media_time = 312
media_rate = 1.000000
[mdia: Media Box]
- position = 309
+ position = 276
size = 472
[mdhd: Media Header Box]
- position = 317
+ position = 284
size = 32
version = 0
flags = 0x000000
@@ -519,7 +527,7 @@
language = und
pre_defined = 0x0000
[hdlr: Handler Reference Box]
- position = 349
+ position = 316
size = 51
version = 0
flags = 0x000000
@@ -530,41 +538,41 @@
reserved = 0x00000000
name = Xiph Audio Handler
[minf: Media Information Box]
- position = 400
+ position = 367
size = 381
[smhd: Sound Media Header Box]
- position = 408
+ position = 375
size = 16
version = 0
flags = 0x000000
balance = 0.000000
reserved = 0x0000
[dinf: Data Information Box]
- position = 424
+ position = 391
size = 36
[dref: Data Reference Box]
- position = 432
+ position = 399
size = 28
version = 0
flags = 0x000000
entry_count = 1
[url : Data Entry Url Box]
- position = 448
+ position = 415
size = 12
version = 0
flags = 0x000001
location = in the same file
[stbl: Sample Table Box]
- position = 460
+ position = 427
size = 321
[stsd: Sample Description Box]
- position = 468
+ position = 435
size = 79
version = 0
flags = 0x000000
entry_count = 1
[Opus: Audio Description]
- position = 484
+ position = 451
size = 63
reserved = 0x000000000000
data_reference_index = 1
@@ -577,7 +585,7 @@
reserved = 0
samplerate = 48000.000000
[dOps: Opus Specific Box]
- position = 520
+ position = 487
size = 27
Version = 0
OutputChannelCount = 6
@@ -595,7 +603,7 @@
4 -> 3: side right
5 -> 5: rear center
[stts: Decoding Time to Sample Box]
- position = 547
+ position = 514
size = 24
version = 0
flags = 0x000000
@@ -604,7 +612,7 @@
sample_count = 18
sample_delta = 1920
[stsc: Sample To Chunk Box]
- position = 571
+ position = 538
size = 40
version = 0
flags = 0x000000
@@ -618,7 +626,7 @@
samples_per_chunk = 5
sample_description_index = 1
[stsz: Sample Size Box]
- position = 611
+ position = 578
size = 92
version = 0
flags = 0x000000
@@ -643,7 +651,7 @@
entry_size[16] = 962
entry_size[17] = 848
[stco: Chunk Offset Box]
- position = 703
+ position = 670
size = 24
version = 0
flags = 0x000000
@@ -651,7 +659,7 @@
chunk_offset[0] = 797
chunk_offset[1] = 13096
[sgpd: Sample Group Description Box]
- position = 727
+ position = 694
size = 26
version = 1
flags = 0x000000
@@ -660,7 +668,7 @@
entry_count = 1
roll_distance[0] = -2
[sbgp: Sample to Group Box]
- position = 753
+ position = 720
size = 28
version = 0
flags = 0x000000
@@ -670,10 +678,10 @@
sample_count = 18
group_description_index = 1
[free: Free Space Box]
- position = 781
+ position = 748
size = 8
[mdat: Media Data Box]
- position = 789
+ position = 756
size = 17001
<a name="5"></a>
5 Authors' Address
diff --git a/third_party/opus/doc/opus_logo.svg b/third_party/opus/src/doc/opus_logo.svg
similarity index 100%
rename from third_party/opus/doc/opus_logo.svg
rename to third_party/opus/src/doc/opus_logo.svg
diff --git a/third_party/opus/doc/opus_update.patch b/third_party/opus/src/doc/opus_update.patch
similarity index 100%
rename from third_party/opus/doc/opus_update.patch
rename to third_party/opus/src/doc/opus_update.patch
diff --git a/third_party/opus/doc/release.txt b/third_party/opus/src/doc/release.txt
similarity index 100%
rename from third_party/opus/doc/release.txt
rename to third_party/opus/src/doc/release.txt
diff --git a/third_party/opus/doc/trivial_example.c b/third_party/opus/src/doc/trivial_example.c
similarity index 100%
rename from third_party/opus/doc/trivial_example.c
rename to third_party/opus/src/doc/trivial_example.c
diff --git a/third_party/opus/include/opus.h b/third_party/opus/src/include/opus.h
similarity index 100%
rename from third_party/opus/include/opus.h
rename to third_party/opus/src/include/opus.h
diff --git a/third_party/opus/include/opus_custom.h b/third_party/opus/src/include/opus_custom.h
similarity index 100%
rename from third_party/opus/include/opus_custom.h
rename to third_party/opus/src/include/opus_custom.h
diff --git a/third_party/opus/include/opus_defines.h b/third_party/opus/src/include/opus_defines.h
similarity index 98%
rename from third_party/opus/include/opus_defines.h
rename to third_party/opus/src/include/opus_defines.h
index fbf5d0e..d141418 100644
--- a/third_party/opus/include/opus_defines.h
+++ b/third_party/opus/src/include/opus_defines.h
@@ -168,6 +168,7 @@
/* Don't use 4045, it's already taken by OPUS_GET_GAIN_REQUEST */
#define OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST 4046
#define OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST 4047
+#define OPUS_GET_IN_DTX_REQUEST 4049
/** Defines for the presence of extended APIs. */
#define OPUS_HAVE_OPUS_PROJECTION_H
@@ -715,6 +716,16 @@
* </dl>
* @hideinitializer */
#define OPUS_GET_PHASE_INVERSION_DISABLED(x) OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST, __opus_check_int_ptr(x)
+/** Gets the DTX state of the encoder.
+ * Returns whether the last encoded frame was either a comfort noise update
+ * during DTX or not encoded because of DTX.
+ * @param[out] x <tt>opus_int32 *</tt>: Returns one of the following values:
+ * <dl>
+ * <dt>0</dt><dd>The encoder is not in DTX.</dd>
+ * <dt>1</dt><dd>The encoder is in DTX.</dd>
+ * </dl>
+ * @hideinitializer */
+#define OPUS_GET_IN_DTX(x) OPUS_GET_IN_DTX_REQUEST, __opus_check_int_ptr(x)
/**@}*/
diff --git a/third_party/opus/include/opus_multistream.h b/third_party/opus/src/include/opus_multistream.h
similarity index 100%
rename from third_party/opus/include/opus_multistream.h
rename to third_party/opus/src/include/opus_multistream.h
diff --git a/third_party/opus/include/opus_projection.h b/third_party/opus/src/include/opus_projection.h
similarity index 100%
rename from third_party/opus/include/opus_projection.h
rename to third_party/opus/src/include/opus_projection.h
diff --git a/third_party/opus/include/opus_types.h b/third_party/opus/src/include/opus_types.h
similarity index 100%
rename from third_party/opus/include/opus_types.h
rename to third_party/opus/src/include/opus_types.h
diff --git a/third_party/opus/m4/as-gcc-inline-assembly.m4 b/third_party/opus/src/m4/as-gcc-inline-assembly.m4
similarity index 100%
rename from third_party/opus/m4/as-gcc-inline-assembly.m4
rename to third_party/opus/src/m4/as-gcc-inline-assembly.m4
diff --git a/third_party/opus/m4/ax_add_fortify_source.m4 b/third_party/opus/src/m4/ax_add_fortify_source.m4
similarity index 100%
rename from third_party/opus/m4/ax_add_fortify_source.m4
rename to third_party/opus/src/m4/ax_add_fortify_source.m4
diff --git a/third_party/opus/m4/opus-intrinsics.m4 b/third_party/opus/src/m4/opus-intrinsics.m4
similarity index 100%
rename from third_party/opus/m4/opus-intrinsics.m4
rename to third_party/opus/src/m4/opus-intrinsics.m4
diff --git a/third_party/opus/src/mlp_data.c b/third_party/opus/src/mlp_data.c
deleted file mode 100644
index b4b3ecb..0000000
--- a/third_party/opus/src/mlp_data.c
+++ /dev/null
@@ -1,672 +0,0 @@
-/*This file is automatically generated from a Keras model*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "mlp.h"
-
-static const opus_int8 layer0_weights[800] = {
- 21, -8, -5, 3, -16, 13, 3, -24,
- -18, 14, 9, 2, 5, -2, 2, -3,
- -5, 35, 10, 10, -8, 2, 1, 3,
- -26, -61, 9, 4, -8, 18, 3, -5,
- 47, -34, -6, 35, 35, 30, 40, -40,
- 11, -39, 11, -14, 14, -24, -8, -8,
- 2, -23, -100, 1, 19, -14, 4, 7,
- 13, -26, 47, -4, 44, 5, 27, -1,
- 57, -1, -36, 34, -20, -60, 25, -73,
- 24, -70, 20, -4, -6, 68, -16, 13,
- -24, 40, -42, -18, 0, 10, 12, -56,
- -6, 38, 21, 5, -116, 19, 11, -14,
- 3, 26, 14, 23, 1, 35, -16, -2,
- -4, 55, 23, 16, 22, 45, -71, -27,
- -20, 8, -47, -47, -46, -14, -50, -82,
- 36, 45, 54, -32, -6, 14, -2, -24,
- 3, 23, -27, -8, 1, 70, 15, -4,
- -7, 21, 17, -126, 5, -47, -53, -6,
- 34, 25, -1, 10, 17, -37, 38, -1,
- 30, 25, -35, 112, -21, 8, -10, -3,
- 15, 18, -14, -8, -20, 11, 24, 37,
- -35, 50, 52, 16, 9, 15, -26, 43,
- -3, -9, -26, 126, 7, 33, 55, -88,
- 9, 28, 5, -19, -76, 32, 3, 11,
- 10, -54, 2, -13, 3, 94, 52, 106,
- 26, 74, 44, -99, 58, -44, 50, 15,
- 29, 25, 50, -84, 28, 1, -30, 11,
- 8, 20, -67, 4, 11, -25, -39, -33,
- -83, -15, -9, 18, -2, -24, 18, 77,
- -39, -80, 25, -8, 52, -88, -21, 81,
- 29, -23, -31, 69, -28, 0, 12, 47,
- 15, 20, 34, -53, 5, 111, -39, -7,
- 1, 56, 6, 3, 7, -67, -6, -31,
- 107, -6, 12, -97, 36, -18, -34, -6,
- -9, -63, 10, -9, 3, 12, -80, -87,
- 17, -9, 39, 126, 13, 15, 19, -6,
- 29, 11, 10, -30, 26, -54, 31, -47,
- 25, -40, -24, 23, 16, -27, -32, 30,
- -22, -59, -9, 65, -86, -21, 120, -25,
- -52, -12, 34, -50, 25, -17, 30, -4,
- 95, 4, 9, 61, 25, -6, 11, -33,
- -8, -3, 26, 37, -28, 19, -17, 36,
- 11, -8, 8, -89, 2, -68, -95, 18,
- 22, 36, 9, -8, -48, 54, -26, -6,
- 30, -28, 10, -18, 2, -11, 7, 2,
- 17, -5, 27, -21, 9, 15, 10, -18,
- -10, 0, -9, 19, 10, -48, -35, -32,
- 15, 24, 25, -6, 3, 51, -15, 9,
- 19, -17, 6, 8, -9, 13, 14, -31,
- -24, 10, -23, 21, 16, 18, -8, 35,
- 18, -18, -18, -26, 25, 10, 55, 9,
- 3, -24, -15, 2, -28, 20, -45, -14,
- 15, -19, -8, 10, 6, 40, -31, -45,
- 40, 53, 40, 27, -15, -31, -30, 10,
- 38, 50, 28, 71, -21, 20, 1, 23,
- 22, 14, 5, -48, 39, 78, -7, -6,
- 9, 50, 88, -15, 55, 36, 32, -22,
- -60, 13, 31, -36, -71, -2, 52, 37,
- 7, 46, -23, -43, 19, -49, -34, 15,
- 60, -66, 36, 2, -57, -32, 64, -53,
- -36, 49, -10, 21, -2, 23, -21, 22,
- -3, -15, -6, 18, -12, -32, -11, -11,
- -32, 24, 36, 37, -7, 30, -22, -12,
- 22, -63, 26, 20, -16, -30, -13, -18,
- -10, 45, 10, -24, -2, -26, 28, 18,
- 36, 44, -40, -5, -14, -4, 18, -18,
- -1, 18, -40, 15, 29, 15, 12, 3,
- 25, -51, 8, -17, 9, -19, 22, -33,
- -22, 39, 61, -15, 55, -24, 10, 32,
- 12, 9, 29, 5, -33, -33, 5, 0,
- 35, 105, -14, 39, 4, 43, 36, 52,
- 50, -39, 45, -51, 27, 7, 65, -34,
- 108, 127, 42, 26, 73, 19, 9, 17,
- -62, 16, 11, 52, 85, -46, 10, -95,
- 64, 53, 90, -8, -54, -5, -77, -45,
- 127, -4, 54, -3, -19, 66, 40, -127,
- 53, 22, -26, 24, 20, -36, -2, 101,
- 1, 35, -1, -8, 5, -36, -16, 33,
- 6, -73, -21, -23, -32, -21, -4, -46,
- -42, -66, -16, -8, 0, -20, -21, 37,
- -128, -128, -127, 126, -128, -127, 127, -3,
- 127, 122, 127, 126, -127, -128, 127, -127,
- 127, -124, 126, -126, -127, -128, 125, -127,
- -38, -123, 125, -128, -128, 126, 125, 127,
- -127, -123, -127, 127, -73, -113, 127, -17,
- 127, 126, 127, 126, -126, -126, 127, -127,
- 127, -125, 121, -126, -25, -127, 127, -126,
- 26, -126, 71, -28, -128, 20, 20, 71,
- -87, -93, 39, 116, 111, -85, 70, -26,
- 62, 23, -15, 18, 4, 32, 114, -55,
- 8, -116, 85, -67, -110, -49, 11, -5,
- -128, -41, 61, 70, -29, 115, 127, 51,
- 127, 127, 127, -128, -127, 127, -128, -127,
- -126, -128, -126, -127, 127, 126, -128, 127,
- -126, 125, -55, 127, 127, 127, -125, 115,
- -128, -126, -128, -127, 127, -128, -128, 127,
- 28, -127, -120, -127, 127, -127, -127, 9,
- -26, -118, 73, 39, 124, 78, -126, 123,
- 10, -127, -105, -64, 118, -84, -127, 61,
- 77, 104, -128, -127, 94, -17, -28, 36
-};
-
-static const opus_int8 layer0_bias[32] = {
- -39, 28, -7, -12, -36, -35, -49, 48,
- 38, -17, 44, 15, -45, -18, -45, 9,
- 11, 4, -25, 38, 12, -31, -90, -70,
- -17, 27, 7, -73, 42, -103, 78, 99
-};
-
-static const opus_int8 layer1_weights[2304] = {
- 29, -37, -21, -34, 19, -32, 44, -43,
- 51, -5, -14, 37, -32, 74, 127, -29,
- -75, -49, -5, -106, -64, 24, -11, 26,
- 23, 25, -6, -1, -48, -16, -26, 29,
- 24, -3, 50, -23, -45, -59, -11, -10,
- -9, 51, 42, 16, -27, -79, 72, 7,
- 55, -15, 5, -15, -24, -1, 48, -29,
- -44, 26, -20, -40, 57, -15, 21, 45,
- -4, -25, 13, 24, -26, 12, -2, 20,
- 48, -60, 45, 37, 74, 27, 13, 0,
- 126, 5, 68, 110, 7, 74, 51, 65,
- -21, 32, 27, -30, 11, -3, -43, 73,
- 31, 43, 119, -51, 13, -80, 32, -23,
- 37, 69, 101, -33, -35, 50, -47, 126,
- -84, 64, 88, 28, 57, 56, -28, -102,
- 0, -15, -57, 1, -34, 25, 59, 36,
- -11, 26, -42, 14, -4, -24, -37, 63,
- -18, 2, -32, -9, -37, -15, -9, 9,
- -41, -36, 105, 20, 14, -14, 64, 92,
- 68, -83, -7, 20, 86, 22, 38, 8,
- -63, -6, -13, -56, 61, 55, 50, -33,
- -9, 22, -22, 77, 44, -33, 44, -20,
- 77, 33, 34, -78, -53, 31, -108, 33,
- -23, -54, 63, 34, -9, 43, -17, 15,
- -15, 15, -3, -50, 15, -26, -6, -35,
- -52, 57, 0, -10, 67, -57, -47, 36,
- -64, 19, -19, -29, -97, -15, -49, 69,
- -18, 84, 122, 4, -81, 18, -85, -4,
- -40, 99, -46, 11, -10, -29, -51, -59,
- 112, -103, 29, -45, 5, 43, 94, 24,
- -4, -37, 27, -54, -24, 30, 43, 40,
- -10, 13, 18, 75, 51, 11, -14, -7,
- 34, 80, -119, 73, -47, -68, 50, 79,
- 42, -2, -53, 22, -9, -21, -4, 88,
- 97, -5, -28, 16, -64, -1, -25, 9,
- -20, -63, 10, 57, -3, 127, -2, -26,
- 8, 66, -48, -118, 47, -73, 15, 51,
- -29, 28, 72, 41, -2, 48, 75, -24,
- -47, 44, 8, -39, 70, -73, -44, 56,
- -14, -62, 30, 74, 31, -98, 13, 8,
- 83, -36, -7, -8, 62, 13, -29, -20,
- 21, -66, 53, -49, -24, -14, 19, 101,
- -47, -51, 65, -52, 25, -32, -38, 39,
- -56, 41, 49, 22, 10, 21, 1, 38,
- -18, 48, 36, 55, -39, -10, -4, 3,
- 17, -27, -81, 61, 1, 8, -32, 35,
- 29, 85, -33, -56, 16, 3, -48, 35,
- 56, -40, 14, -65, 3, -70, -29, 84,
- 51, 75, -52, 56, -55, 0, -13, -58,
- 6, 3, 22, 31, -34, 20, -6, 26,
- -121, 85, -75, 11, -34, -23, 46, -11,
- 0, 9, 20, 39, 59, -12, 38, 14,
- 6, -33, -15, -86, 39, -48, -5, 4,
- 29, -28, 52, -8, -51, 52, 60, -11,
- -22, 81, 81, 17, -127, -28, 27, -40,
- -36, -57, 43, 52, 51, -38, -10, 23,
- -44, -72, -63, 3, 20, -68, -72, -38,
- 26, -45, 19, -75, -18, 4, 14, 15,
- -47, 104, -9, 51, 25, 16, -95, 64,
- -11, -2, -5, 39, 52, -40, 77, 44,
- 11, -29, -37, 5, -58, -38, -28, 36,
- 50, 2, -26, -3, -16, -11, -11, 16,
- -14, -47, -3, -3, -48, 45, 40, -14,
- 3, -67, -4, 19, -25, 14, -34, 48,
- -66, 67, 70, 20, 52, -21, 21, 28,
- 16, 70, -114, -11, 29, 9, -52, -52,
- -39, 44, 17, 11, -15, -111, 84, -20,
- -23, -60, 15, -39, 48, 10, -31, -24,
- -38, 4, -42, -25, -70, -3, -75, -40,
- -3, -19, 33, -14, 18, -14, -5, -16,
- 46, -56, 38, -1, 2, 9, 17, -41,
- -44, 11, -23, 28, -32, 8, -1, 57,
- -5, 44, -64, -21, -54, 47, 22, -19,
- -12, -24, -48, -4, -42, -46, -17, 52,
- -39, -33, 79, -26, 20, 21, 9, -5,
- -127, -31, 26, -86, -20, -115, 27, 33,
- 33, 72, 30, 57, -17, 2, 71, 58,
- -52, -10, 20, -79, -3, 40, -106, 17,
- 34, 68, -17, 31, -27, 23, 17, 18,
- 21, 25, 15, 41, -51, 30, -3, 1,
- -4, -60, -13, -59, 53, -42, -34, -29,
- -22, -50, 27, -70, -58, -21, -59, -27,
- -28, 45, -66, 12, 85, -61, 0, -39,
- -73, -75, -29, -42, -47, -88, -46, 27,
- -43, 112, 83, -51, -36, -64, 13, 74,
- -9, 2, 25, 38, -18, -64, -81, -23,
- -12, 40, 18, -38, -121, -36, -6, -73,
- -16, -59, 28, -26, -2, -69, -6, -7,
- 43, -21, 61, 0, 1, 0, 13, 18,
- -18, -21, -3, 18, 42, 0, 67, -35,
- 39, 15, -97, -87, 103, 65, 86, 20,
- -11, -17, 9, -9, 15, 15, -35, 52,
- 34, -105, -85, 10, -36, -68, -64, 60,
- -85, 51, -54, -39, -19, 77, 0, 35,
- -20, 35, -78, 41, -11, 49, 14, 17,
- -31, 1, 41, -1, 10, -25, -90, -12,
- -9, -12, -26, 6, 34, 22, 31, 25,
- 6, 27, -26, 5, -35, 29, 18, -12,
- 54, -42, -22, -14, -6, 36, -14, -16,
- 35, 69, 75, 7, -113, 44, -2, -18,
- 3, -15, 50, -28, -36, -9, -25, 47,
- 127, -6, -35, 35, -46, 17, 116, -62,
- -17, -98, -105, 77, -99, -17, 41, 16,
- -7, 17, -89, 37, -16, -72, -3, -29,
- 50, 30, -43, -7, -72, 125, 51, 59,
- -73, 37, 61, 2, -19, -11, 4, 46,
- 33, 51, 74, 88, -51, 68, 124, 27,
- 97, -51, 16, -3, -6, -12, -30, 28,
- 33, 3, -59, 22, 72, 53, 24, -29,
- -4, -65, 89, -59, 92, 121, 12, 11,
- 111, -20, 12, -85, -123, -33, -65, 70,
- 68, 127, 2, -25, -104, 57, -74, -94,
- -128, -27, 28, -7, -126, -123, -2, -57,
- -57, 76, 55, -43, -44, -92, 1, 29,
- 12, 10, 15, 10, 88, 0, -65, -57,
- -66, 14, -10, -10, 36, 19, -49, -4,
- 33, 3, 99, -49, -28, 41, 21, 37,
- 46, 62, 16, 43, -58, 119, -32, 34,
- 27, 13, -46, -1, -4, 23, 31, -21,
- 108, 4, 107, 37, 26, -48, 70, 18,
- 30, -18, -101, 77, -91, -117, -74, 16,
- -116, 43, -24, 26, -19, -49, 34, -54,
- 101, -14, 15, 12, 80, -9, 110, 42,
- 8, -30, 53, -42, 34, -8, 60, -89,
- 7, 41, 21, -94, 51, -1, -22, -37,
- 22, 12, 49, -1, 55, 30, 5, -26,
- -12, 4, -29, -16, -118, -12, -48, 85,
- -44, -5, -27, -13, -84, -39, -63, -83,
- 44, 5, -62, -52, -110, -8, -24, -36,
- -22, -52, 20, -10, 42, 117, -19, -30,
- 21, -16, -38, 92, 35, -5, -7, 45,
- -69, -57, -69, 20, 18, 14, 107, -36,
- -37, 43, 25, -38, -44, -104, 46, 8,
- 93, -9, 54, 39, -48, -28, 21, 2,
- 24, 11, -5, -14, -2, -10, 28, 105,
- 5, -60, -65, -38, 121, 5, -33, -60,
- 44, 68, 21, -69, -9, 7, 55, -26,
- -75, 19, -76, 0, 10, -101, -56, -64,
- 19, -68, 14, 19, 9, -49, 23, -1,
- 19, -52, -15, -67, -63, -18, 24, -40,
- -44, -11, -6, 43, 62, 67, -27, 5,
- -57, 6, 25, -14, 19, 53, 24, -29,
- -64, -26, -50, -19, 28, -15, -29, -56,
- 6, -40, 35, 54, -6, -45, -17, 41,
- 106, -42, -47, 43, -22, 20, -2, -126,
- -29, 72, 85, -32, -30, 43, -6, 14,
- 31, -84, 4, 7, 16, -47, -37, -33,
- -14, -60, -52, -55, -44, 41, 39, -114,
- -52, 24, -100, 55, -6, 40, 102, 48,
- -1, 55, -55, -35, -27, 51, -1, 6,
- -10, -16, -38, 29, 37, 55, 18, 22,
- 28, -58, 13, 60, -60, 18, 6, -8,
- 31, -52, 14, 2, 16, 30, -22, -39,
- 0, 35, -29, 7, -48, 41, 78, 24,
- 30, 1, -89, 72, 27, -33, -33, -12,
- 61, -82, 123, 36, -12, -25, 55, 37,
- 66, 27, -19, 37, 10, 44, -14, -17,
- -20, 30, 20, 2, 21, 15, 37, 35,
- 3, -40, 6, 12, 4, 22, -21, -79,
- 29, 3, -55, -77, -31, 13, -19, -24,
- 10, -38, 9, -78, 24, -50, -15, 31,
- 30, -4, -33, 25, 27, 10, -24, 43,
- -7, 78, -2, 27, 69, -23, 10, 79,
- -19, -69, -3, 6, 25, 71, -42, -4,
- -10, -21, -43, 18, 63, 6, 15, -41,
- -7, 77, 37, -47, -7, 41, -34, 40,
- 6, 25, 25, -74, -32, 4, 43, -26,
- -8, 44, -5, 39, -4, -12, -9, -90,
- -51, 38, 32, 42, 28, -42, 13, 4,
- 30, 18, 54, -13, -11, 3, -2, 58,
- 30, -53, 5, -76, 4, -14, -13, 16,
- 10, -108, 6, -114, 28, -93, -65, -40,
- 21, 28, -31, -85, -52, 29, 9, -10,
- -12, -26, -27, -82, 43, 0, -75, -6,
- 29, -4, 64, -12, -5, 25, 14, -2,
- -54, -127, 81, -35, 14, -59, -75, 69,
- -29, -65, 43, -88, -21, 34, -87, -48,
- 51, 2, 8, -37, 25, 10, -25, -7,
- -37, -39, -8, 28, 55, -72, -26, 16,
- -30, 41, -49, 32, 37, -7, -12, 23,
- 38, -61, -13, 28, 16, 4, -16, -122,
- 37, 8, 17, 3, -79, 23, -17, 28,
- -28, -31, -14, -39, 114, -49, -15, -47,
- -14, 7, -7, -79, 98, -72, 19, -26,
- 65, -44, -60, -56, 18, -20, -35, 19,
- -72, 8, 78, -84, 40, -3, 46, 40,
- 3, -31, 16, 38, -58, 48, 34, 0,
- -75, -25, -12, -25, -5, -15, 18, -11,
- 6, 34, 20, 21, -6, -19, -34, 22,
- -18, -48, 69, 122, -16, 1, 12, 11,
- 80, 31, 28, -34, 23, 27, -19, 10,
- 63, 81, 66, 91, 10, 2, 123, 126,
- 126, 74, 21, 75, 9, -15, 36, 29,
- 34, -54, 101, -57, -51, -61, 47, 66,
- 41, 38, -124, 56, -36, 48, 51, -7,
- -11, -6, 30, -55, 48, 3, -18, -20,
- 24, 24, 0, -55, 62, 3, -74, -49,
- 2, -13, -31, -3, -12, 42, -33, 5,
- -24, -39, 117, -81, -31, -39, 0, 2,
- 6, 25, 77, 13, 6, 10, 26, -21,
- -127, 35, 7, -26, -69, -19, -21, -25,
- 111, -34, -3, 29, 6, -31, -44, 73,
- -1, 6, -4, 2, 99, 25, 92, 34,
- 40, 5, -94, 21, 47, 126, 61, -5,
- 2, -37, 4, 21, -27, 32, -18, -10,
- 70, -40, -15, 38, 19, 30, 12, -19,
- -11, -2, -50, 22, -33, 3, 33, -39,
- -19, 87, -67, -27, -11, -117, 36, 104,
- 11, -56, -29, -6, 5, 14, -5, 44,
- 38, 9, 24, 16, 127, 47, -6, -9,
- 63, -58, -106, -19, 62, -30, 29, -23,
- 69, 4, -31, 3, 14, -101, 5, 3,
- 31, -6, -88, 28, 13, 0, 42, 0,
- 6, 60, 54, -11, 5, -34, -33, -24,
- -5, 42, 19, -63, 10, 32, -9, -32,
- 25, 26, -28, -5, -7, -45, 32, 11,
- -12, 31, -26, -33, -46, -76, 40, -5,
- 3, -5, 3, -18, -12, 93, 17, 62,
- -121, -14, 42, 76, 24, 4, 34, 14,
- 41, 18, -10, 93, 91, -62, 58, -55,
- 88, -64, -9, 23, 25, 45, -2, 70,
- 43, 9, 103, 22, 48, 46, -13, 9,
- -27, -37, 35, -51, -54, -10, 57, -35,
- -2, -1, 7, -3, -37, 5, 9, 3,
- 27, -7, 50, 5, -50, 22, 21, -13,
- 22, 43, 10, -18, 37, -20, -38, -32,
- -2, 27, 1, -67, -41, 60, -28, -33,
- -50, -38, 76, -18, 23, -16, -25, 0,
- -8, -71, -10, -12, 20, -34, 40, -19,
- 12, -42, 14, 11, -28, 37, -33, 4,
- 41, 19, 65, 85, -26, 23, -50, 38,
- 3, -34, 64, 43, 1, 16, 34, 35,
- -15, -27, 20, -1, 50, 0, -30, -50,
- 14, -60, -69, 10, -57, -45, -32, -14,
- 32, -16, 46, -61, -46, 1, -40, -75,
- -28, -16, -73, -50, -13, -14, 9, -78,
- 5, -44, -9, -25, -79, -16, -46, 92,
- -70, 61, -20, 12, -43, 3, -19, 40,
- 11, 25, 32, -58, 58, 45, 28, 1,
- 13, -27, -53, 30, -30, -31, -52, 10,
- 17, 68, -6, -44, -8, 25, 33, 48,
- 81, -43, -10, 67, 29, 23, 11, 20,
- -39, -28, 31, 18, -72, 29, 22, -11,
- -71, 39, -10, -121, -20, -8, -40, 125,
- -7, -43, 10, 49, 12, 38, 43, -79,
- -72, -41, -48, -60, -41, 5, -17, 35,
- 95, 35, 124, -11, 2, 70, -60, -25,
- 0, -27, 76, -19, -94, 40, -96, 65,
- -9, -31, -8, -35, 27, -44, 64, -60,
- -12, -72, 12, -56, 8, -45, -5, -27,
- -6, 50, 30, -20, -18, 64, -108, -15,
- -43, 44, 11, -14, -8, -21, -24, 42,
- 51, 47, -3, 17, -17, -24, 33, -28,
- 25, -15, -33, -21, 6, -13, 39, 19,
- 7, 116, 37, 53, 105, 4, 15, -56,
- 10, 12, -92, -30, 117, 4, 32, -13,
- -17, -21, 43, 29, -25, -38, 51, 32,
- 74, -41, -15, 29, -5, -114, 35, -36,
- 46, 51, 15, 16, -39, 24, 17, 3,
- -26, 40, -37, 34, 43, 20, -61, -14,
- 31, -29, 34, 25, -22, 25, -39, 39,
- -33, -10, -56, -61, -6, -48, -114, -96,
- -12, 3, 82, 45, 8, -2, -4, -28,
- -42, -58, -50, -34, -54, -26, -64, -16,
- -82, 49, -28, 0, -30, -20, -64, -68,
- -18, 18, -44, -34, -42, -61, -17, 14,
- -28, 8, 27, -49, -18, 45, -41, 11,
- -2, 10, -8, -17, -24, -28, -42, 12,
- 79, 46, 30, -26, 5, 3, 3, 58,
- 12, -73, 23, 17, 5, 2, 20, 36,
- 56, -33, 80, 71, 17, 87, 40, -21,
- 26, 6, 48, -71, 76, 15, -47, 32,
- 87, 30, 58, -11, 65, -43, 91, 54,
- -31, 8, 34, 25, -14, 37, -30, 20,
- -35, 4, -75, 56, -29, 22, 64, 48,
- 47, -78, -74, 22, 11, -62, -28, 62,
- -30, 12, -25, -31, 41, -42, 22, 23,
- -8, -20, 38, 21, -6, 52, 23, 5,
- -20, 32, 3, 16, 26, 50, 3, -4,
- 48, -77, -3, -4, 21, 23, 30, 11,
- -1, 9, -56, -100, 39, 5, -25, 35,
- 95, 44, 22, 75, 19, -20, 126, -31,
- -8, -24, 37, 35, -32, -4, 20, 47,
- 7, -84, 2, 10, 7, 7, 75, -64,
- 46, 36, -77, -1, -38, -19, -52, 39,
- 26, 41, 82, 38, 67, 62, -6, -25,
- -16, -35, -5, -14, 32, 15, -3, -38,
- 28, 43, -59, 7, 58, 26, -63, -56
-};
-
-static const opus_int8 layer1_recur_weights[1728] = {
- -41, 5, 25, 16, -9, 22, 19, 19,
- -16, 56, -32, 68, 95, 62, 124, 81,
- 30, 112, -24, 30, -12, 104, 49, 24,
- -10, 33, 31, 38, 10, 71, -16, 29,
- 13, 14, 38, -7, 79, -25, -35, 6,
- 9, -90, -16, -109, -49, 35, -15, -127,
- 85, 12, -6, 16, 27, 26, 82, 10,
- -79, -36, 42, -88, 50, -26, -7, -87,
- 127, 19, -96, -75, -3, 6, 8, -4,
- 84, -30, -26, 70, -9, -123, -13, -2,
- 64, -125, -49, -99, 126, 67, 94, -20,
- 54, 110, -15, -48, -91, -1, 64, 4,
- 31, -1, 52, -55, 16, 52, 21, 127,
- -124, 10, 31, 127, 41, -53, 68, 40,
- 16, 48, -19, -69, -16, -100, -29, -97,
- -2, 47, -16, 40, 80, 60, 82, -18,
- -42, 15, -43, 42, 123, -28, 38, 18,
- 35, -8, 38, -119, 103, 33, 9, -25,
- 120, -110, -50, -30, 2, -67, -42, -33,
- -85, 38, 59, -55, 71, 97, -29, -64,
- 14, 32, 1, -128, -26, -121, -33, -8,
- 2, -65, 22, 85, -55, -57, 17, 37,
- 2, -78, 28, -54, 17, -31, 31, 26,
- -8, 25, 23, -52, -15, -58, -18, 4,
- -23, -27, 4, 5, -85, 34, 29, -1,
- -80, -8, 1, 22, -32, 22, -27, 95,
- -55, -70, -127, -46, -58, -7, 38, -4,
- 127, -14, -7, 71, 62, 43, -57, -54,
- 60, -58, -28, -43, -50, 127, 101, 15,
- 25, 49, -53, 17, -81, -60, 83, -32,
- 46, 57, -59, 19, 49, -12, -109, 20,
- -19, -50, -7, 14, 79, 59, -30, -57,
- -5, -60, 13, 5, 85, -33, -89, 9,
- 127, 13, -38, 127, 57, 99, 14, -26,
- -105, 3, -38, -77, 41, -19, 28, -31,
- 23, -88, -22, -60, -29, 14, -84, 9,
- 8, -1, -21, 49, 58, 15, -4, -6,
- 100, -9, -26, -54, 94, 84, 25, 25,
- 27, 49, -1, 0, -104, -5, 33, -10,
- 40, 54, 15, 62, -1, -39, -54, 18,
- 41, 15, -17, -84, -29, 31, -10, -65,
- -47, 1, -66, -17, -43, 34, 5, -61,
- 94, 107, 37, 55, 46, 57, 63, -66,
- -14, 13, -82, 7, 10, -11, 72, 123,
- 102, 1, -112, -71, 121, 56, -24, -24,
- 127, 5, -24, -49, 104, -27, 56, -15,
- 2, 76, 107, 24, 83, 86, 90, 45,
- 116, 124, 48, 29, 102, 36, 10, 55,
- 29, -29, 12, -84, -18, -50, -8, 17,
- -28, -52, -64, -3, 118, 54, 51, 45,
- -59, 47, -1, -35, 22, -10, 12, -79,
- -24, 4, 60, 92, -67, 125, -90, 29,
- -48, 64, -104, 23, -12, -51, -53, -37,
- -66, 21, 113, 75, 37, 9, -20, 0,
- 5, -75, 32, 60, 12, 35, -68, -16,
- 48, -22, 40, -19, 40, 77, -51, 63,
- 23, 85, 8, 9, -41, -59, 98, 9,
- -24, -48, 47, 4, 48, 48, 4, 91,
- -69, 21, 21, 70, 22, 15, 57, 111,
- -64, -18, -8, 49, 43, -26, 7, -82,
- 111, -21, 1, -52, 59, -82, 106, 5,
- -5, -45, 35, -15, -2, 57, 62, 57,
- 68, -6, -27, -51, 50, 60, -21, -12,
- -127, 34, 89, -117, -59, -83, -76, 80,
- -59, -29, 56, -18, 27, -70, -67, 46,
- -92, -87, 12, -116, 71, -72, 4, -51,
- -64, 70, 6, -104, -67, 42, 3, -5,
- 98, 41, -20, -1, 64, -32, -58, 51,
- -69, -126, 46, -21, -75, -27, -52, 52,
- -12, -17, 28, -1, -7, -21, -3, 88,
- 68, 7, 3, 67, -7, 59, 33, 25,
- -4, -45, -38, 46, 72, -24, -92, -25,
- -108, 43, -35, -90, 3, -6, 22, -80,
- 91, -35, 111, 8, -54, 21, -125, 31,
- -77, -121, -17, -56, -18, -125, -126, 36,
- -24, 35, 1, 0, 25, -20, 14, 12,
- 3, 90, -87, 17, -54, -60, -58, -9,
- 22, -35, 32, 12, 5, 17, -92, 3,
- 8, -54, -128, -22, -75, -41, -22, 127,
- 73, -9, -6, 12, -71, 106, -54, 120,
- -17, -51, 94, 13, -24, -67, -7, 35,
- -69, 27, -48, -77, 56, -60, -48, 64,
- 38, 88, -20, 20, -123, 42, -91, 55,
- -98, -41, 78, -107, 120, -82, -91, 17,
- 21, 31, 7, 31, 67, 32, -42, -9,
- 126, 49, -41, -103, -66, -8, -32, -64,
- 18, -56, 25, -14, 35, 35, -29, -18,
- -49, 2, 75, -46, -86, 47, -71, -14,
- 18, 28, 15, 40, 33, -18, -45, 60,
- -52, 3, 43, 61, -115, -52, -1, 21,
- -28, 27, 17, -33, -125, 29, -9, 126,
- 91, 37, -37, 106, -39, 61, -122, 5,
- -125, -123, 23, 35, -22, 12, 81, 20,
- -36, 76, 34, 63, 53, -64, 46, 24,
- 41, 122, -22, 61, -14, -21, 10, 94,
- 27, -27, 78, 3, 2, 15, 14, 20,
- -3, -15, -11, -128, -35, -58, 8, -43,
- 83, -26, 48, 44, 8, -14, -10, 56,
- -48, 12, -39, -40, -17, 66, 69, 33,
- -34, -16, -32, 48, -86, 2, 21, 2,
- 51, 31, -39, 57, -20, 16, -24, 66,
- 65, -6, 64, -13, 2, 73, -85, -7,
- -127, -53, 49, -68, -44, 26, 79, -6,
- 78, 17, -34, 45, 33, 16, 17, 56,
- -76, 28, 44, 12, 15, 35, 21, 66,
- -47, 53, 27, -13, 13, -30, 55, -31,
- 67, -63, -4, 51, -40, 49, 51, 14,
- -38, -62, -49, 50, 26, 3, -16, -39,
- 42, 7, 30, -27, 108, -73, -29, -6,
- 29, 42, 19, -77, -40, -17, 57, -19,
- 90, 70, -72, -40, -30, 65, 84, -4,
- 2, 9, 33, -73, 73, 81, 8, -21,
- -22, -57, -5, -58, -32, 14, 34, 10,
- 38, 7, 41, 0, -25, 38, 3, -125,
- 62, -25, -20, 13, 20, 14, -9, -27,
- 13, 31, -128, -85, 72, -63, -49, -18,
- 81, 47, 37, 63, -10, -10, -66, 4,
- -116, 53, 14, 49, 6, 37, 38, -4,
- -47, 64, 15, 0, -110, -19, 45, 7,
- -37, 20, 21, 22, 51, 17, -39, 71,
- -59, -1, -35, -8, -73, -106, -30, 5,
- -68, -18, -36, 35, -21, -17, -1, 4,
- -24, -28, 5, 4, 11, -50, 27, 84,
- -16, -60, -86, -12, -31, -8, 43, 52,
- 94, 14, 29, 46, -34, 6, -2, 51,
- -36, -56, -9, -48, -8, 26, 78, 3,
- -31, -46, 25, 14, -8, -9, -47, 1,
- -23, 65, 42, -5, 104, 96, -70, 18,
- -69, 84, -2, -28, -19, -35, 5, -49,
- -88, -117, 9, 82, -71, -58, 33, 82,
- 17, 40, -93, 32, 5, 21, 38, -23,
- -77, -40, 48, -8, -10, 22, -27, -47,
- -49, 46, 67, -17, 81, -61, 92, 54,
- 8, -71, 127, 23, -61, 51, 13, 32,
- -35, -52, -32, -4, -47, 20, 0, -62,
- -126, 3, -17, -127, 18, -70, 11, -29,
- -87, -27, -19, -13, -9, -128, -26, 69,
- -67, -29, 66, 49, 1, -119, -73, -7,
- -55, -9, 48, -45, -27, 26, 57, 12,
- 9, 51, -98, -14, -21, -37, 88, 23,
- -37, 65, -11, 69, -7, -34, 16, 33,
- 36, 94, 56, 5, 63, -38, 25, -55,
- -81, -74, 21, 30, -4, -16, 52, 37,
- 4, 8, -48, 8, 127, -75, -56, -79,
- -76, 61, 17, -27, -63, -56, -53, 39,
- -109, -50, -77, -7, -100, -88, 23, -108,
- -120, 120, -87, -122, -87, 36, 63, -65,
- 3, -32, 84, 55, 71, 126, 10, 37,
- 29, 16, 45, 40, 75, -5, 40, -105,
- -7, -15, -25, 12, -78, 46, -9, -114,
- 90, 50, -41, -23, 6, -58, 75, 19,
- 62, -33, -38, -24, 66, 22, 66, -4,
- 124, 29, -55, -29, 42, -17, -123, -79,
- -8, -3, -2, 19, 59, -33, -39, 41,
- 51, 0, 45, -15, 67, 8, -42, 2,
- -20, -49, 95, -32, 5, -56, 37, 21,
- -11, -18, -8, 53, 17, 43, 14, 81,
- -90, -40, 69, -33, 59, 28, -8, 44,
- 47, -11, -26, -92, 31, 86, 12, -39,
- 9, -28, -22, -6, -42, -4, -23, 6,
- -57, 109, -46, -12, 10, -77, -66, -24,
- -26, 119, 78, 43, -17, -14, -45, 73,
- -4, 13, -44, -78, 26, -64, -60, -99,
- -104, 31, -16, -93, -64, 48, -17, 108,
- -71, 12, 34, -63, 24, 14, -28, -48,
- 1, 94, -29, -27, 2, -5, -53, 18,
- 56, 91, -19, -28, 45, -38, -55, -106,
- -10, 41, 49, -38, -4, 1, -84, -37,
- -77, 4, -66, 19, 56, 41, -82, 114,
- 97, -50, 83, -38, 31, -126, -22, -94,
- -86, 44, 37, 35, 11, 60, 49, 3,
- 26, 18, 124, -64, 50, -72, 17, -80,
- 16, 30, 113, 34, -19, 32, 63, -30,
- 95, -88, 55, 126, 127, 107, 49, 83,
- -17, -75, 1, -107, 27, 20, 115, 31,
- 57, -11, -36, 41, 91, 31, 58, -38,
- -12, 4, 39, 38, 37, 13, -73, 33,
- 11, 43, 35, 23, -86, 36, -10, 19,
- 34, -10, -35, -8, 47, -105, -60, 75,
- -25, 127, 14, 106, 81, -9, -46, 21,
- 35, 42, -6, 3, 118, 78, 37, 33,
- 22, 98, 46, 50, -23, 81, 122, 18,
- 30, 64, 105, 101, -116, -33, -66, 18,
- -59, -99, -125, -79, 19, 127, 120, -98,
- 13, 27, 32, 26, 3, 20, 120, 10,
- 29, 91, 51, 78, 28, -61, 34, -12,
- 54, -19, 51, -17, 29, 56, 53, -124,
- -10, -97, 9, -10, -9, 2, 9, 33,
- 33, 44, -47, 36, 52, -54, 63, 88,
- -11, 70, 68, 113, 11, 127, 65, 88,
- 126, -12, 28, 81, 57, 123, 71, 26,
- 5, 117, 16, 16, -9, 92, 50, -35,
- 27, 27, -47, 39, 46, 13, 19, 61,
- 106, 74, -31, 52, 94, 22, -40, -72,
- 57, 10, 45, 25, 5, -5, 36, -7,
- -43, 40, 40, -81, -36, -47, 8, -18,
- 63, 31, -48, 58, -49, -19, 25, -5,
- 63, -76, 9, -2, 1, 127, 19, -24,
- 32, 36, 23, 25, -49, 104, 13, 3,
- 75, 12, -31, 38, 122, 20, 49, 35,
- -14, 16, 44, 101, -12, 119, 50, -48,
- -7, -11, 15, -103, -9, -39, 4, -54,
- -67, 32, 30, 47, 40, 60, 9, -17,
- -31, 47, 13, 127, -21, -4, 50, 28,
- 34, -4, -72, -24, -2, -41, 3, 26,
- -34, -90, 82, 1, -83, 47, 40, -8,
- -4, 4, -65, -10, 115, 43, 104, 42,
- 32, 85, -78, 12, 59, 71, 113, 42,
- -20, 50, -29, 61, 6, 104, 74, 65,
- -73, 12, 93, 77, 21, 24, -14, 84,
- 58, 105, 37, 37, 85, -53, 76, -95,
- 26, -17, -51, -64, -75, -19, -1, 27,
- 25, -49, 46, 73, 19, -13, -98, -8,
- 1, -37, -69, -81, 28, 2, 7, -40,
- -47, 55, 29, 53, 33, 103, -53, -15,
- 19, -9, 7, 120, -21, 28, 27, 13
-};
-
-static const opus_int8 layer1_bias[72] = {
- 47, 0, -35, 34, 104, 95, 120, -3,
- -5, 105, -41, 79, -27, 122, 46, 89,
- 89, 34, 71, 94, 70, 68, 79, 18,
- 44, 25, -15, -22, 18, -22, 9, -14,
- -45, 5, 1, 20, 38, 22, 15, 24,
- 28, -14, -2, 10, 8, -27, -18, -46,
- -5, 34, -43, -33, 12, 13, 0, 0,
- 9, -47, 28, 14, -18, 17, 8, 10,
- -38, -23, -20, -11, 59, 45, 76, 24
-};
-
-static const opus_int8 layer2_weights[48] = {
- 122, -51, 118, -67, -23, -128, 126, -124,
- 127, 12, 2, -68, 117, -80, 3, 127,
- 71, 127, -128, -83, -15, 93, 13, 40,
- 27, -127, 65, 101, 84, 16, 85, 117,
- 127, -120, -59, -55, -128, -51, -128, -65,
- 127, 1, 99, 127, -60, 127, -128, 50
-};
-
-static const opus_int8 layer2_bias[2] = {
- 34, 115
-};
-
-const DenseLayer layer0 = {
- layer0_bias,
- layer0_weights,
- 25, 32, 0
-};
-
-const GRULayer layer1 = {
- layer1_bias,
- layer1_weights,
- layer1_recur_weights,
- 32, 24
-};
-
-const DenseLayer layer2 = {
- layer2_bias,
- layer2_weights,
- 24, 2, 1
-};
-
diff --git a/third_party/opus/opus-uninstalled.pc.in b/third_party/opus/src/opus-uninstalled.pc.in
similarity index 100%
rename from third_party/opus/opus-uninstalled.pc.in
rename to third_party/opus/src/opus-uninstalled.pc.in
diff --git a/third_party/opus/opus.m4 b/third_party/opus/src/opus.m4
similarity index 100%
rename from third_party/opus/opus.m4
rename to third_party/opus/src/opus.m4
diff --git a/third_party/opus/opus.pc.in b/third_party/opus/src/opus.pc.in
similarity index 100%
rename from third_party/opus/opus.pc.in
rename to third_party/opus/src/opus.pc.in
diff --git a/third_party/opus/src/opus_buildtype.cmake b/third_party/opus/src/opus_buildtype.cmake
new file mode 100644
index 0000000..aaee9ef
--- /dev/null
+++ b/third_party/opus/src/opus_buildtype.cmake
@@ -0,0 +1,23 @@
+# Set a default build type if none was specified
+
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ if(CMAKE_C_FLAGS)
+ message(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS})
+ else()
+ set(default_build_type "Release")
+ message(
+ STATUS
+ "Setting build type to '${default_build_type}' as none was specified and no CFLAGS was exported."
+ )
+ set(CMAKE_BUILD_TYPE "${default_build_type}"
+ CACHE STRING "Choose the type of build."
+ FORCE)
+ # Set the possible values of build type for cmake-gui
+ set_property(CACHE CMAKE_BUILD_TYPE
+ PROPERTY STRINGS
+ "Debug"
+ "Release"
+ "MinSizeRel"
+ "RelWithDebInfo")
+ endif()
+endif()
diff --git a/third_party/opus/src/opus_config.cmake b/third_party/opus/src/opus_config.cmake
new file mode 100644
index 0000000..a0bfd58
--- /dev/null
+++ b/third_party/opus/src/opus_config.cmake
@@ -0,0 +1,43 @@
+include(opus_functions.cmake)
+
+configure_file(config.h.cmake.in config.h @ONLY)
+add_definitions(-DHAVE_CONFIG_H)
+
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+set_property(GLOBAL PROPERTY C_STANDARD 99)
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+include(CheckLibraryExists)
+check_library_exists(m floor "" HAVE_LIBM)
+if(HAVE_LIBM)
+ list(APPEND OPUS_REQUIRED_LIBRARIES m)
+endif()
+
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[0-9]86|x86|X86|amd64|AMD64|x86_64)")
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ set(OPUS_CPU_X64 1)
+ else()
+ set(OPUS_CPU_X86 1)
+ endif()
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
+ set(OPUS_CPU_ARM 1)
+endif()
+
+opus_supports_cpu_detection(RUNTIME_CPU_CAPABILITY_DETECTION)
+
+if(OPUS_CPU_X86 OR OPUS_CPU_X64)
+ opus_detect_sse(COMPILER_SUPPORT_SIMD)
+elseif(OPUS_CPU_ARM)
+ opus_detect_neon(COMPILER_SUPPORT_NEON)
+ if(COMPILER_SUPPORT_NEON)
+ option(OPUS_USE_NEON "Option to turn off SSE" ON)
+ option(OPUS_MAY_SUPPORT_NEON "Does runtime check for neon support" ON)
+ option(OPUS_PRESUME_NEON "Assume target CPU has NEON support" OFF)
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
+ set(OPUS_PRESUME_NEON ON)
+ endif()
+ endif()
+endif()
diff --git a/third_party/opus/src/opus_functions.cmake b/third_party/opus/src/opus_functions.cmake
new file mode 100644
index 0000000..fe309c2
--- /dev/null
+++ b/third_party/opus/src/opus_functions.cmake
@@ -0,0 +1,262 @@
+#[[Cmake helper function to parse source files from make files
+this is to avoid breaking existing make and auto make support
+but still have the option to use CMake with only lists at one place]]
+
+cmake_minimum_required(VERSION 3.1)
+
+function(get_library_version OPUS_LIBRARY_VERSION OPUS_LIBRARY_VERSION_MAJOR)
+ file(STRINGS configure.ac opus_lt_current_string
+ LIMIT_COUNT 1
+ REGEX "OPUS_LT_CURRENT=")
+ string(REGEX MATCH
+ "OPUS_LT_CURRENT=([0-9]*)"
+ _
+ ${opus_lt_current_string})
+ set(OPUS_LT_CURRENT ${CMAKE_MATCH_1})
+
+ file(STRINGS configure.ac opus_lt_revision_string
+ LIMIT_COUNT 1
+ REGEX "OPUS_LT_REVISION=")
+ string(REGEX MATCH
+ "OPUS_LT_REVISION=([0-9]*)"
+ _
+ ${opus_lt_revision_string})
+ set(OPUS_LT_REVISION ${CMAKE_MATCH_1})
+
+ file(STRINGS configure.ac opus_lt_age_string
+ LIMIT_COUNT 1
+ REGEX "OPUS_LT_AGE=")
+ string(REGEX MATCH
+ "OPUS_LT_AGE=([0-9]*)"
+ _
+ ${opus_lt_age_string})
+ set(OPUS_LT_AGE ${CMAKE_MATCH_1})
+
+ math(EXPR OPUS_LIBRARY_VERSION_MAJOR "${OPUS_LT_CURRENT} - ${OPUS_LT_AGE}")
+ set(OPUS_LIBRARY_VERSION_MINOR ${OPUS_LT_AGE})
+ set(OPUS_LIBRARY_VERSION_PATCH ${OPUS_LT_REVISION})
+ set(
+ OPUS_LIBRARY_VERSION
+ "${OPUS_LIBRARY_VERSION_MAJOR}.${OPUS_LIBRARY_VERSION_MINOR}.${OPUS_LIBRARY_VERSION_PATCH}"
+ PARENT_SCOPE)
+ set(OPUS_LIBRARY_VERSION_MAJOR ${OPUS_LIBRARY_VERSION_MAJOR} PARENT_SCOPE)
+endfunction()
+
+function(get_package_version PACKAGE_VERSION)
+ find_package(Git)
+ if(GIT_FOUND)
+ execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --match "v*"
+ OUTPUT_VARIABLE OPUS_PACKAGE_VERSION)
+ if(OPUS_PACKAGE_VERSION)
+ string(STRIP ${OPUS_PACKAGE_VERSION}, OPUS_PACKAGE_VERSION)
+ string(REPLACE \n
+ ""
+ OPUS_PACKAGE_VERSION
+ ${OPUS_PACKAGE_VERSION})
+ string(REPLACE ,
+ ""
+ OPUS_PACKAGE_VERSION
+ ${OPUS_PACKAGE_VERSION})
+
+ string(SUBSTRING ${OPUS_PACKAGE_VERSION}
+ 1
+ -1
+ OPUS_PACKAGE_VERSION)
+ set(PACKAGE_VERSION ${OPUS_PACKAGE_VERSION} PARENT_SCOPE)
+ return()
+ endif()
+ endif()
+
+ if(EXISTS "${CMAKE_SOURCE_DIR}/package_version")
+ # Not a git repo, lets' try to parse it from package_version file if exists
+ file(STRINGS package_version opus_package_version_string
+ LIMIT_COUNT 1
+ REGEX "PACKAGE_VERSION=")
+ string(REPLACE "PACKAGE_VERSION="
+ ""
+ opus_package_version_string
+ ${opus_package_version_string})
+ string(REPLACE "\""
+ ""
+ opus_package_version_string
+ ${opus_package_version_string})
+ set(PACKAGE_VERSION ${opus_package_version_string} PARENT_SCOPE)
+ return()
+ endif()
+
+ # if all else fails set to 0
+ set(PACKAGE_VERSION 0 PARENT_SCOPE)
+endfunction()
+
+function(check_and_set_flag NAME FLAG)
+ include(CheckCCompilerFlag)
+ check_c_compiler_flag(${FLAG} ${NAME}_SUPPORTED)
+ if(${NAME}_SUPPORTED)
+ add_definitions(${FLAG})
+ endif()
+endfunction()
+
+function(check_flag NAME FLAG)
+ include(CheckCCompilerFlag)
+ check_c_compiler_flag(${FLAG} ${NAME}_SUPPORTED)
+endfunction()
+
+include(CheckIncludeFile)
+# function to check if compiler supports SSE, SSE2, SSE4.1 and AVX if target
+# systems may not have SSE support then use OPUS_MAY_HAVE_SSE option if target
+# system is guaranteed to have SSE support then OPUS_PRESUME_SSE can be used to
+# skip SSE runtime check
+function(opus_detect_sse COMPILER_SUPPORT_SIMD)
+ message(STATUS "Check SIMD support by compiler")
+ check_include_file(xmmintrin.h HAVE_XMMINTRIN_H) # SSE1
+ if(HAVE_XMMINTRIN_H)
+ if(MSVC)
+ # different arch options for 32 and 64 bit target for MSVC
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ check_flag(SSE1 /arch:SSE)
+ else()
+ set(SSE1_SUPPORTED 1 PARENT_SCOPE)
+ endif()
+ else()
+ check_and_set_flag(SSE1 -msse)
+ endif()
+ else()
+ set(SSE1_SUPPORTED 0 PARENT_SCOPE)
+ endif()
+
+ check_include_file(emmintrin.h HAVE_EMMINTRIN_H) # SSE2
+ if(HAVE_EMMINTRIN_H)
+ if(MSVC)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ check_flag(SSE2 /arch:SSE2)
+ else()
+ set(SSE2_SUPPORTED 1 PARENT_SCOPE)
+ endif()
+ else()
+ check_and_set_flag(SSE2 -msse2)
+ endif()
+ else()
+ set(SSE2_SUPPORTED 0 PARENT_SCOPE)
+ endif()
+
+ check_include_file(smmintrin.h HAVE_SMMINTRIN_H) # SSE4.1
+ if(HAVE_SMMINTRIN_H)
+ if(MSVC)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ check_flag(SSE4_1 /arch:SSE2) # SSE2 and above
+ else()
+ set(SSE4_1_SUPPORTED 1 PARENT_SCOPE)
+ endif()
+ else()
+ check_and_set_flag(SSE4_1 -msse4.1)
+ endif()
+ else()
+ set(SSE4_1_SUPPORTED 0 PARENT_SCOPE)
+ endif()
+
+ check_include_file(immintrin.h HAVE_IMMINTRIN_H) # AVX
+ if(HAVE_IMMINTRIN_H)
+ if(MSVC)
+ check_flag(AVX /arch:AVX)
+ else()
+ check_and_set_flag(AVX -mavx)
+ endif()
+ else()
+ set(AVX_SUPPORTED 0 PARENT_SCOPE)
+ endif()
+
+ if(MSVC) # To avoid warning D9025 of overriding compiler options
+ if(AVX_SUPPORTED) # on 64 bit and 32 bits
+ add_definitions(/arch:AVX)
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) # if AVX not supported then set SSE flag
+ if(SSE4_1_SUPPORTED OR SSE2_SUPPORTED)
+ add_definitions(/arch:SSE2)
+ elseif(SSE1_SUPPORTED)
+ add_definitions(/arch:SSE)
+ endif()
+ endif()
+ endif()
+
+ if(SSE1_SUPPORTED OR SSE2_SUPPORTED OR SSE4_1_SUPPORTED OR AVX_SUPPORTED)
+ set(COMPILER_SUPPORT_SIMD 1 PARENT_SCOPE)
+ else()
+ message(STATUS "No SIMD support in compiler")
+ endif()
+endfunction()
+
+function(opus_detect_neon COMPILER_SUPPORT_NEON)
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "(armv7-a|aarch64)")
+ message(STATUS "Check NEON support by compiler")
+ check_include_file(arm_neon.h HAVE_ARM_NEON_H)
+ if(HAVE_ARM_NEON_H)
+ set(COMPILER_SUPPORT_NEON ${HAVE_ARM_NEON_H} PARENT_SCOPE)
+ endif()
+ endif()
+endfunction()
+
+function(opus_supports_cpu_detection RUNTIME_CPU_CAPABILITY_DETECTION)
+ if(MSVC)
+ check_include_file(intrin.h HAVE_INTRIN_H)
+ else()
+ check_include_file(cpuid.h HAVE_CPUID_H)
+ endif()
+ if(HAVE_INTRIN_H OR HAVE_CPUID_H)
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 1 PARENT_SCOPE)
+ else()
+ set(RUNTIME_CPU_CAPABILITY_DETECTION 0 PARENT_SCOPE)
+ endif()
+endfunction()
+
+function(add_sources_group target group)
+ target_sources(${target} PRIVATE ${ARGN})
+ source_group(${group} FILES ${ARGN})
+endfunction()
+
+function(get_opus_sources SOURCE_GROUP MAKE_FILE SOURCES)
+ # read file, each item in list is one group
+ file(STRINGS ${MAKE_FILE} opus_sources)
+
+ # add wildcard for regex match
+ string(CONCAT SOURCE_GROUP ${SOURCE_GROUP} ".*$")
+
+ # find group
+ foreach(val IN LISTS opus_sources)
+ if(val MATCHES ${SOURCE_GROUP})
+ list(LENGTH val list_length)
+ if(${list_length} EQUAL 1)
+ # for tests split by '=' and clean up the rest into a list
+ string(FIND ${val} "=" index)
+ math(EXPR index "${index} + 1")
+ string(SUBSTRING ${val}
+ ${index}
+ -1
+ sources)
+ string(REPLACE " "
+ ";"
+ sources
+ ${sources})
+ else()
+ # discard the group
+ list(REMOVE_AT val 0)
+ set(sources ${val})
+ endif()
+ break()
+ endif()
+ endforeach()
+
+ list(LENGTH sources list_length)
+ if(${list_length} LESS 1)
+ message(
+ FATAL_ERROR
+ "No files parsed succesfully from ${SOURCE_GROUP} in ${MAKE_FILE}")
+ endif()
+
+ # remove trailing whitespaces
+ set(list_var "")
+ foreach(source ${sources})
+ string(STRIP "${source}" source)
+ list(APPEND list_var "${source}")
+ endforeach()
+
+ set(${SOURCES} ${list_var} PARENT_SCOPE)
+endfunction()
diff --git a/third_party/opus/src/opus_sources.cmake b/third_party/opus/src/opus_sources.cmake
new file mode 100644
index 0000000..225543a
--- /dev/null
+++ b/third_party/opus/src/opus_sources.cmake
@@ -0,0 +1,38 @@
+include(opus_functions.cmake)
+
+get_opus_sources(SILK_SOURCES silk_sources.mk silk_sources)
+get_opus_sources(SILK_SOURCES_FLOAT silk_sources.mk silk_sources_float)
+get_opus_sources(SILK_SOURCES_FIXED silk_sources.mk silk_sources_fixed)
+get_opus_sources(SILK_SOURCES_SSE4_1 silk_sources.mk silk_sources_sse4_1)
+get_opus_sources(SILK_SOURCES_FIXED_SSE4_1 silk_sources.mk
+ silk_sources_fixed_sse4_1)
+get_opus_sources(SILK_SOURCES_ARM_NEON_INTR silk_sources.mk
+ silk_sources_arm_neon_intr)
+get_opus_sources(SILK_SOURCES_FIXED_ARM_NEON_INTR silk_sources.mk
+ silk_sources_fixed_arm_neon_intr)
+
+get_opus_sources(OPUS_SOURCES opus_sources.mk opus_sources)
+get_opus_sources(OPUS_SOURCES_FLOAT opus_sources.mk opus_sources_float)
+
+get_opus_sources(CELT_SOURCES celt_sources.mk celt_sources)
+get_opus_sources(CELT_SOURCES_SSE celt_sources.mk celt_sources_sse)
+get_opus_sources(CELT_SOURCES_SSE2 celt_sources.mk celt_sources_sse2)
+get_opus_sources(CELT_SOURCES_SSE4_1 celt_sources.mk celt_sources_sse4_1)
+get_opus_sources(CELT_SOURCES_ARM celt_sources.mk celt_sources_arm)
+get_opus_sources(CELT_SOURCES_ARM_ASM celt_sources.mk celt_sources_arm_asm)
+get_opus_sources(CELT_AM_SOURCES_ARM_ASM celt_sources.mk
+ celt_am_sources_arm_asm)
+get_opus_sources(CELT_SOURCES_ARM_NEON_INTR celt_sources.mk
+ celt_sources_arm_neon_intr)
+get_opus_sources(CELT_SOURCES_ARM_NE10 celt_sources.mk celt_sources_arm_ne10)
+
+get_opus_sources(opus_demo_SOURCES Makefile.am opus_demo_sources)
+get_opus_sources(opus_custom_demo_SOURCES Makefile.am opus_custom_demo_sources)
+get_opus_sources(opus_compare_SOURCES Makefile.am opus_compare_sources)
+get_opus_sources(tests_test_opus_api_SOURCES Makefile.am test_opus_api_sources)
+get_opus_sources(tests_test_opus_encode_SOURCES Makefile.am
+ test_opus_encode_sources)
+get_opus_sources(tests_test_opus_decode_SOURCES Makefile.am
+ test_opus_decode_sources)
+get_opus_sources(tests_test_opus_padding_SOURCES Makefile.am
+ test_opus_padding_sources)
diff --git a/third_party/opus/releases.sha2 b/third_party/opus/src/releases.sha2
similarity index 82%
rename from third_party/opus/releases.sha2
rename to third_party/opus/src/releases.sha2
index 76170ac..334976b 100644
--- a/third_party/opus/releases.sha2
+++ b/third_party/opus/src/releases.sha2
@@ -38,8 +38,12 @@
cfafd339ccd9c5ef8d6ab15d7e1a412c054bf4cb4ecbbbcc78c12ef2def70732 opus-1.2.1.tar.gz
7f56e058c9549d03ae35511ad9e16ef6d1eb257836830d54abff0f495f17e187 opus-1.3-beta.tar.gz
96fa28598e8ccd558b297277ad59a045c551ba0e06d65a9675938e084f837669 opus-1.3-rc.tar.gz
+f6bab321fb81db984766f1e4d340a9e71a5ca2c5d4d53f4ee072e84afda271ca opus-1.3-rc2.tar.gz
+4f3d69aefdf2dbaf9825408e452a8a414ffc60494c70633560700398820dc550 opus-1.3.tar.gz
+65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d opus-1.3.1.tar.gz
94ac78ca4f74c4e43bc9fe4ec1ad0aa36f38ab90f45b0727c40dd1e96096e767 opus_testvectors-draft11.tar.gz
94ac78ca4f74c4e43bc9fe4ec1ad0aa36f38ab90f45b0727c40dd1e96096e767 opus_testvectors.tar.gz
+6b26a22f9ba87b2b836906a9bb7afec5f8e54d49553b1200382520ee6fedfa55 opus_testvectors-rfc8251.tar.gz
5d2b99757bcb628bab2611f3ed27af6f35276ce3abc96c0ed4399d6c6463dda5 opus-tools-0.1.2.tar.gz
008317297d6ce84f84992abf8cc948a048a4fa135e1d1caf429fafde8965a792 opus-tools-0.1.3.tar.gz
de80485c5afa1fd83c0e16a0dd4860470c872997a7dd0a58e99b2ee8a93e5168 opus-tools-0.1.4.tar.gz
@@ -49,7 +53,11 @@
e4e188579ea1c4e4d5066460d4a7214a7eafe3539e9a4466fdc98af41ba4a2f6 opus-tools-0.1.8.tar.gz
b1873dd78c7fbc98cf65d6e10cfddb5c2c03b3af93f922139a2104baedb4643a opus-tools-0.1.9.tar.gz
a2357532d19471b70666e0e0ec17d514246d8b3cb2eb168f68bb0f6fd372b28c opus-tools-0.1.10.tar.gz
+b4e56cb00d3e509acfba9a9b627ffd8273b876b4e2408642259f6da28fa0ff86 opus-tools-0.2.tar.gz
bd6d14e8897a2f80065ef34a516c70e74f8e00060abdbc238e79e5f99bca3e96 libopusenc-0.1.tar.gz
+02e6e0b14cbbe0569d948a46420f9c9a81d93bba32dc576a4007cbf96da68ef3 libopusenc-0.1.1.tar.gz
+c79e95eeee43a0b965e9b2c59a243763a8f8b0a7e71441df2aa9084f6171c73a libopusenc-0.2.tar.gz
+8298db61a8d3d63e41c1a80705baa8ce9ff3f50452ea7ec1c19a564fe106cbb9 libopusenc-0.2.1.tar.gz
8071b968475c1a17f54b6840d6de9d9ee20f930e827b0401abe3c4cf4f3bf30a opusfile-0.1.tar.gz
b4a678b3b6c4adfb6aff1f67ef658becfe146ea7c7ff228e99543762171557f9 opusfile-0.2.tar.gz
4248927f2c4e316ea5b84fb02bd100bfec8fa4624a6910d77f0af7f0c6cb8baa opusfile-0.3.tar.gz
@@ -63,3 +71,9 @@
346967d7989bb83b05949483b76bd0f69a12c59bd8b4457e864902b52bb0ac34 opusfile-0.7.zip
2c231ed3cfaa1b3173f52d740e5bbd77d51b9dfecb87014b404917fba4b855a4 opusfile-0.8.tar.gz
89dff4342c3b789574cbea5c57f11b96d4ebe4d28ab90248c1783ea569b1e9e3 opusfile-0.8.zip
+f75fb500e40b122775ac1a71ad80c4477698842a8fe9da4a1b4a1a9f16e4e979 opusfile-0.9.tar.gz
+e9591da4d4c9e857436c2d46a28a9e470fa5355ea5a76d4d582f137d18755d36 opusfile-0.9.zip
+48e03526ba87ef9cf5f1c47b5ebe3aa195bd89b912a57060c36184a6cd19412f opusfile-0.10.tar.gz
+9d9e95d01817ecf48bf6daaea8f071f9b45bd1751ca1fc8ce50e5075eb2bc3c8 opusfile-0.10.zip
+74ce9b6cf4da103133e7b5c95df810ceb7195471e1162ed57af415fabf5603bf opusfile-0.11.tar.gz
+23c5168026c4f1fc34843650135b409d0fc8cf452508163b4ece8077256ac6ff opusfile-0.11.zip
diff --git a/third_party/opus/scripts/dump_rnn.py b/third_party/opus/src/scripts/dump_rnn.py
similarity index 100%
rename from third_party/opus/scripts/dump_rnn.py
rename to third_party/opus/src/scripts/dump_rnn.py
diff --git a/third_party/opus/scripts/rnn_train.py b/third_party/opus/src/scripts/rnn_train.py
similarity index 100%
rename from third_party/opus/scripts/rnn_train.py
rename to third_party/opus/src/scripts/rnn_train.py
diff --git a/third_party/opus/silk/A2NLSF.c b/third_party/opus/src/silk/A2NLSF.c
similarity index 100%
rename from third_party/opus/silk/A2NLSF.c
rename to third_party/opus/src/silk/A2NLSF.c
diff --git a/third_party/opus/silk/API.h b/third_party/opus/src/silk/API.h
similarity index 100%
rename from third_party/opus/silk/API.h
rename to third_party/opus/src/silk/API.h
diff --git a/third_party/opus/silk/CNG.c b/third_party/opus/src/silk/CNG.c
similarity index 96%
rename from third_party/opus/silk/CNG.c
rename to third_party/opus/src/silk/CNG.c
index ef8e38d..2a91009 100644
--- a/third_party/opus/silk/CNG.c
+++ b/third_party/opus/src/silk/CNG.c
@@ -118,6 +118,10 @@
/* Smooth gains */
for( i = 0; i < psDec->nb_subfr; i++ ) {
psCNG->CNG_smth_Gain_Q16 += silk_SMULWB( psDecCtrl->Gains_Q16[ i ] - psCNG->CNG_smth_Gain_Q16, CNG_GAIN_SMTH_Q16 );
+ /* If the smoothed gain is 3 dB greater than this subframe's gain, use this subframe's gain to adapt faster. */
+ if( silk_SMULWW( psCNG->CNG_smth_Gain_Q16, CNG_GAIN_SMTH_THRESHOLD_Q16 ) > psDecCtrl->Gains_Q16[ i ] ) {
+ psCNG->CNG_smth_Gain_Q16 = psDecCtrl->Gains_Q16[ i ];
+ }
}
}
diff --git a/third_party/opus/silk/HP_variable_cutoff.c b/third_party/opus/src/silk/HP_variable_cutoff.c
similarity index 100%
rename from third_party/opus/silk/HP_variable_cutoff.c
rename to third_party/opus/src/silk/HP_variable_cutoff.c
diff --git a/third_party/opus/silk/Inlines.h b/third_party/opus/src/silk/Inlines.h
similarity index 100%
rename from third_party/opus/silk/Inlines.h
rename to third_party/opus/src/silk/Inlines.h
diff --git a/third_party/opus/silk/LPC_analysis_filter.c b/third_party/opus/src/silk/LPC_analysis_filter.c
similarity index 100%
rename from third_party/opus/silk/LPC_analysis_filter.c
rename to third_party/opus/src/silk/LPC_analysis_filter.c
diff --git a/third_party/opus/silk/LPC_fit.c b/third_party/opus/src/silk/LPC_fit.c
similarity index 100%
rename from third_party/opus/silk/LPC_fit.c
rename to third_party/opus/src/silk/LPC_fit.c
diff --git a/third_party/opus/silk/LPC_inv_pred_gain.c b/third_party/opus/src/silk/LPC_inv_pred_gain.c
similarity index 100%
rename from third_party/opus/silk/LPC_inv_pred_gain.c
rename to third_party/opus/src/silk/LPC_inv_pred_gain.c
diff --git a/third_party/opus/silk/LP_variable_cutoff.c b/third_party/opus/src/silk/LP_variable_cutoff.c
similarity index 100%
rename from third_party/opus/silk/LP_variable_cutoff.c
rename to third_party/opus/src/silk/LP_variable_cutoff.c
diff --git a/third_party/opus/silk/MacroCount.h b/third_party/opus/src/silk/MacroCount.h
similarity index 100%
rename from third_party/opus/silk/MacroCount.h
rename to third_party/opus/src/silk/MacroCount.h
diff --git a/third_party/opus/silk/MacroDebug.h b/third_party/opus/src/silk/MacroDebug.h
similarity index 100%
rename from third_party/opus/silk/MacroDebug.h
rename to third_party/opus/src/silk/MacroDebug.h
diff --git a/third_party/opus/silk/NLSF2A.c b/third_party/opus/src/silk/NLSF2A.c
similarity index 100%
rename from third_party/opus/silk/NLSF2A.c
rename to third_party/opus/src/silk/NLSF2A.c
diff --git a/third_party/opus/silk/NLSF_VQ.c b/third_party/opus/src/silk/NLSF_VQ.c
similarity index 100%
rename from third_party/opus/silk/NLSF_VQ.c
rename to third_party/opus/src/silk/NLSF_VQ.c
diff --git a/third_party/opus/silk/NLSF_VQ_weights_laroia.c b/third_party/opus/src/silk/NLSF_VQ_weights_laroia.c
similarity index 100%
rename from third_party/opus/silk/NLSF_VQ_weights_laroia.c
rename to third_party/opus/src/silk/NLSF_VQ_weights_laroia.c
diff --git a/third_party/opus/silk/NLSF_decode.c b/third_party/opus/src/silk/NLSF_decode.c
similarity index 100%
rename from third_party/opus/silk/NLSF_decode.c
rename to third_party/opus/src/silk/NLSF_decode.c
diff --git a/third_party/opus/silk/NLSF_del_dec_quant.c b/third_party/opus/src/silk/NLSF_del_dec_quant.c
similarity index 100%
rename from third_party/opus/silk/NLSF_del_dec_quant.c
rename to third_party/opus/src/silk/NLSF_del_dec_quant.c
diff --git a/third_party/opus/silk/NLSF_encode.c b/third_party/opus/src/silk/NLSF_encode.c
similarity index 100%
rename from third_party/opus/silk/NLSF_encode.c
rename to third_party/opus/src/silk/NLSF_encode.c
diff --git a/third_party/opus/silk/NLSF_stabilize.c b/third_party/opus/src/silk/NLSF_stabilize.c
similarity index 100%
rename from third_party/opus/silk/NLSF_stabilize.c
rename to third_party/opus/src/silk/NLSF_stabilize.c
diff --git a/third_party/opus/silk/NLSF_unpack.c b/third_party/opus/src/silk/NLSF_unpack.c
similarity index 100%
rename from third_party/opus/silk/NLSF_unpack.c
rename to third_party/opus/src/silk/NLSF_unpack.c
diff --git a/third_party/opus/silk/NSQ.c b/third_party/opus/src/silk/NSQ.c
similarity index 100%
rename from third_party/opus/silk/NSQ.c
rename to third_party/opus/src/silk/NSQ.c
diff --git a/third_party/opus/silk/NSQ.h b/third_party/opus/src/silk/NSQ.h
similarity index 100%
rename from third_party/opus/silk/NSQ.h
rename to third_party/opus/src/silk/NSQ.h
diff --git a/third_party/opus/silk/NSQ_del_dec.c b/third_party/opus/src/silk/NSQ_del_dec.c
similarity index 98%
rename from third_party/opus/silk/NSQ_del_dec.c
rename to third_party/opus/src/silk/NSQ_del_dec.c
index 3fd9fa0..00e749c 100644
--- a/third_party/opus/silk/NSQ_del_dec.c
+++ b/third_party/opus/src/silk/NSQ_del_dec.c
@@ -394,8 +394,8 @@
/* Long-term shaping */
if( lag > 0 ) {
/* Symmetric, packed FIR coefficients */
- n_LTP_Q14 = silk_SMULWB( silk_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
- n_LTP_Q14 = silk_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ], HarmShapeFIRPacked_Q14 );
+ n_LTP_Q14 = silk_SMULWB( silk_ADD_SAT32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 );
+ n_LTP_Q14 = silk_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ], HarmShapeFIRPacked_Q14 );
n_LTP_Q14 = silk_SUB_LSHIFT32( LTP_pred_Q14, n_LTP_Q14, 2 ); /* Q12 -> Q14 */
shp_lag_ptr++;
} else {
@@ -451,9 +451,9 @@
/* Input minus prediction plus noise feedback */
/* r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP */
- tmp1 = silk_ADD32( n_AR_Q14, n_LF_Q14 ); /* Q14 */
+ tmp1 = silk_ADD_SAT32( n_AR_Q14, n_LF_Q14 ); /* Q14 */
tmp2 = silk_ADD32( n_LTP_Q14, LPC_pred_Q14 ); /* Q13 */
- tmp1 = silk_SUB32( tmp2, tmp1 ); /* Q13 */
+ tmp1 = silk_SUB_SAT32( tmp2, tmp1 ); /* Q13 */
tmp1 = silk_RSHIFT_ROUND( tmp1, 4 ); /* Q10 */
r_Q10 = silk_SUB32( x_Q10[ i ], tmp1 ); /* residual error Q10 */
@@ -535,7 +535,7 @@
/* Update states */
psSS[ 0 ].Diff_Q14 = silk_SUB_LSHIFT32( xq_Q14, x_Q10[ i ], 4 );
sLF_AR_shp_Q14 = silk_SUB32( psSS[ 0 ].Diff_Q14, n_AR_Q14 );
- psSS[ 0 ].sLTP_shp_Q14 = silk_SUB32( sLF_AR_shp_Q14, n_LF_Q14 );
+ psSS[ 0 ].sLTP_shp_Q14 = silk_SUB_SAT32( sLF_AR_shp_Q14, n_LF_Q14 );
psSS[ 0 ].LF_AR_Q14 = sLF_AR_shp_Q14;
psSS[ 0 ].LPC_exc_Q14 = LPC_exc_Q14;
psSS[ 0 ].xq_Q14 = xq_Q14;
@@ -555,7 +555,7 @@
/* Update states */
psSS[ 1 ].Diff_Q14 = silk_SUB_LSHIFT32( xq_Q14, x_Q10[ i ], 4 );
sLF_AR_shp_Q14 = silk_SUB32( psSS[ 1 ].Diff_Q14, n_AR_Q14 );
- psSS[ 1 ].sLTP_shp_Q14 = silk_SUB32( sLF_AR_shp_Q14, n_LF_Q14 );
+ psSS[ 1 ].sLTP_shp_Q14 = silk_SUB_SAT32( sLF_AR_shp_Q14, n_LF_Q14 );
psSS[ 1 ].LF_AR_Q14 = sLF_AR_shp_Q14;
psSS[ 1 ].LPC_exc_Q14 = LPC_exc_Q14;
psSS[ 1 ].xq_Q14 = xq_Q14;
diff --git a/third_party/opus/silk/PLC.c b/third_party/opus/src/silk/PLC.c
similarity index 100%
rename from third_party/opus/silk/PLC.c
rename to third_party/opus/src/silk/PLC.c
diff --git a/third_party/opus/silk/PLC.h b/third_party/opus/src/silk/PLC.h
similarity index 100%
rename from third_party/opus/silk/PLC.h
rename to third_party/opus/src/silk/PLC.h
diff --git a/third_party/opus/silk/SigProc_FIX.h b/third_party/opus/src/silk/SigProc_FIX.h
similarity index 100%
rename from third_party/opus/silk/SigProc_FIX.h
rename to third_party/opus/src/silk/SigProc_FIX.h
diff --git a/third_party/opus/silk/VAD.c b/third_party/opus/src/silk/VAD.c
similarity index 99%
rename from third_party/opus/silk/VAD.c
rename to third_party/opus/src/silk/VAD.c
index 541e505..d0cda52 100644
--- a/third_party/opus/silk/VAD.c
+++ b/third_party/opus/src/silk/VAD.c
@@ -312,6 +312,8 @@
/* Initially faster smoothing */
if( psSilk_VAD->counter < 1000 ) { /* 1000 = 20 sec */
min_coef = silk_DIV32_16( silk_int16_MAX, silk_RSHIFT( psSilk_VAD->counter, 4 ) + 1 );
+ /* Increment frame counter */
+ psSilk_VAD->counter++;
} else {
min_coef = 0;
}
@@ -355,7 +357,4 @@
/* Store as part of state */
psSilk_VAD->NL[ k ] = nl;
}
-
- /* Increment frame counter */
- psSilk_VAD->counter++;
}
diff --git a/third_party/opus/silk/VQ_WMat_EC.c b/third_party/opus/src/silk/VQ_WMat_EC.c
similarity index 100%
rename from third_party/opus/silk/VQ_WMat_EC.c
rename to third_party/opus/src/silk/VQ_WMat_EC.c
diff --git a/third_party/opus/silk/ana_filt_bank_1.c b/third_party/opus/src/silk/ana_filt_bank_1.c
similarity index 100%
rename from third_party/opus/silk/ana_filt_bank_1.c
rename to third_party/opus/src/silk/ana_filt_bank_1.c
diff --git a/third_party/opus/silk/arm/LPC_inv_pred_gain_arm.h b/third_party/opus/src/silk/arm/LPC_inv_pred_gain_arm.h
similarity index 100%
rename from third_party/opus/silk/arm/LPC_inv_pred_gain_arm.h
rename to third_party/opus/src/silk/arm/LPC_inv_pred_gain_arm.h
diff --git a/third_party/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c b/third_party/opus/src/silk/arm/LPC_inv_pred_gain_neon_intr.c
similarity index 93%
rename from third_party/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c
rename to third_party/opus/src/silk/arm/LPC_inv_pred_gain_neon_intr.c
index 27142f3..726e666 100644
--- a/third_party/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c
+++ b/third_party/opus/src/silk/arm/LPC_inv_pred_gain_neon_intr.c
@@ -210,28 +210,32 @@
/* Increase Q domain of the AR coefficients */
t0_s16x8 = vld1q_s16( A_Q12 + 0 );
t1_s16x8 = vld1q_s16( A_Q12 + 8 );
- t2_s16x8 = vld1q_s16( A_Q12 + 16 );
+ if ( order > 16 ) {
+ t2_s16x8 = vld1q_s16( A_Q12 + 16 );
+ }
t0_s32x4 = vpaddlq_s16( t0_s16x8 );
switch( order - leftover )
{
case 24:
t0_s32x4 = vpadalq_s16( t0_s32x4, t2_s16x8 );
- /* Intend to fall through */
+ vst1q_s32( Atmp_QA + 16, vshll_n_s16( vget_low_s16 ( t2_s16x8 ), QA - 12 ) );
+ vst1q_s32( Atmp_QA + 20, vshll_n_s16( vget_high_s16( t2_s16x8 ), QA - 12 ) );
+ /* FALLTHROUGH */
case 16:
t0_s32x4 = vpadalq_s16( t0_s32x4, t1_s16x8 );
- vst1q_s32( Atmp_QA + 16, vshll_n_s16( vget_low_s16 ( t2_s16x8 ), QA - 12 ) );
- vst1q_s32( Atmp_QA + 20, vshll_n_s16( vget_high_s16( t2_s16x8 ), QA - 12 ) );
- /* Intend to fall through */
+ vst1q_s32( Atmp_QA + 8, vshll_n_s16( vget_low_s16 ( t1_s16x8 ), QA - 12 ) );
+ vst1q_s32( Atmp_QA + 12, vshll_n_s16( vget_high_s16( t1_s16x8 ), QA - 12 ) );
+ /* FALLTHROUGH */
case 8:
{
const int32x2_t t_s32x2 = vpadd_s32( vget_low_s32( t0_s32x4 ), vget_high_s32( t0_s32x4 ) );
const int64x1_t t_s64x1 = vpaddl_s32( t_s32x2 );
DC_resp = vget_lane_s32( vreinterpret_s32_s64( t_s64x1 ), 0 );
- vst1q_s32( Atmp_QA + 8, vshll_n_s16( vget_low_s16 ( t1_s16x8 ), QA - 12 ) );
- vst1q_s32( Atmp_QA + 12, vshll_n_s16( vget_high_s16( t1_s16x8 ), QA - 12 ) );
+ vst1q_s32( Atmp_QA + 0, vshll_n_s16( vget_low_s16 ( t0_s16x8 ), QA - 12 ) );
+ vst1q_s32( Atmp_QA + 4, vshll_n_s16( vget_high_s16( t0_s16x8 ), QA - 12 ) );
}
break;
@@ -246,17 +250,23 @@
case 6:
DC_resp += (opus_int32)A_Q12[ 5 ];
DC_resp += (opus_int32)A_Q12[ 4 ];
- /* Intend to fall through */
+ Atmp_QA[ order - leftover + 5 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 5 ], QA - 12 );
+ Atmp_QA[ order - leftover + 4 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 4 ], QA - 12 );
+ /* FALLTHROUGH */
case 4:
DC_resp += (opus_int32)A_Q12[ 3 ];
DC_resp += (opus_int32)A_Q12[ 2 ];
- /* Intend to fall through */
+ Atmp_QA[ order - leftover + 3 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 3 ], QA - 12 );
+ Atmp_QA[ order - leftover + 2 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 2 ], QA - 12 );
+ /* FALLTHROUGH */
case 2:
DC_resp += (opus_int32)A_Q12[ 1 ];
DC_resp += (opus_int32)A_Q12[ 0 ];
- /* Intend to fall through */
+ Atmp_QA[ order - leftover + 1 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 1 ], QA - 12 );
+ Atmp_QA[ order - leftover + 0 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 0 ], QA - 12 );
+ /* FALLTHROUGH */
default:
break;
@@ -266,8 +276,6 @@
if( DC_resp >= 4096 ) {
invGain_Q30 = 0;
} else {
- vst1q_s32( Atmp_QA + 0, vshll_n_s16( vget_low_s16 ( t0_s16x8 ), QA - 12 ) );
- vst1q_s32( Atmp_QA + 4, vshll_n_s16( vget_high_s16( t0_s16x8 ), QA - 12 ) );
invGain_Q30 = LPC_inverse_pred_gain_QA_neon( Atmp_QA, order );
}
}
diff --git a/third_party/opus/silk/arm/NSQ_del_dec_arm.h b/third_party/opus/src/silk/arm/NSQ_del_dec_arm.h
similarity index 100%
rename from third_party/opus/silk/arm/NSQ_del_dec_arm.h
rename to third_party/opus/src/silk/arm/NSQ_del_dec_arm.h
diff --git a/third_party/opus/silk/arm/NSQ_del_dec_neon_intr.c b/third_party/opus/src/silk/arm/NSQ_del_dec_neon_intr.c
similarity index 100%
rename from third_party/opus/silk/arm/NSQ_del_dec_neon_intr.c
rename to third_party/opus/src/silk/arm/NSQ_del_dec_neon_intr.c
diff --git a/third_party/opus/silk/arm/NSQ_neon.c b/third_party/opus/src/silk/arm/NSQ_neon.c
similarity index 100%
rename from third_party/opus/silk/arm/NSQ_neon.c
rename to third_party/opus/src/silk/arm/NSQ_neon.c
diff --git a/third_party/opus/silk/arm/NSQ_neon.h b/third_party/opus/src/silk/arm/NSQ_neon.h
similarity index 100%
rename from third_party/opus/silk/arm/NSQ_neon.h
rename to third_party/opus/src/silk/arm/NSQ_neon.h
diff --git a/third_party/opus/silk/arm/SigProc_FIX_armv4.h b/third_party/opus/src/silk/arm/SigProc_FIX_armv4.h
similarity index 100%
rename from third_party/opus/silk/arm/SigProc_FIX_armv4.h
rename to third_party/opus/src/silk/arm/SigProc_FIX_armv4.h
diff --git a/third_party/opus/silk/arm/SigProc_FIX_armv5e.h b/third_party/opus/src/silk/arm/SigProc_FIX_armv5e.h
similarity index 100%
rename from third_party/opus/silk/arm/SigProc_FIX_armv5e.h
rename to third_party/opus/src/silk/arm/SigProc_FIX_armv5e.h
diff --git a/third_party/opus/silk/arm/arm_silk_map.c b/third_party/opus/src/silk/arm/arm_silk_map.c
similarity index 100%
rename from third_party/opus/silk/arm/arm_silk_map.c
rename to third_party/opus/src/silk/arm/arm_silk_map.c
diff --git a/third_party/opus/silk/arm/biquad_alt_arm.h b/third_party/opus/src/silk/arm/biquad_alt_arm.h
similarity index 100%
rename from third_party/opus/silk/arm/biquad_alt_arm.h
rename to third_party/opus/src/silk/arm/biquad_alt_arm.h
diff --git a/third_party/opus/silk/arm/biquad_alt_neon_intr.c b/third_party/opus/src/silk/arm/biquad_alt_neon_intr.c
similarity index 100%
rename from third_party/opus/silk/arm/biquad_alt_neon_intr.c
rename to third_party/opus/src/silk/arm/biquad_alt_neon_intr.c
diff --git a/third_party/opus/silk/arm/macros_arm64.h b/third_party/opus/src/silk/arm/macros_arm64.h
similarity index 100%
rename from third_party/opus/silk/arm/macros_arm64.h
rename to third_party/opus/src/silk/arm/macros_arm64.h
diff --git a/third_party/opus/silk/arm/macros_armv4.h b/third_party/opus/src/silk/arm/macros_armv4.h
similarity index 100%
rename from third_party/opus/silk/arm/macros_armv4.h
rename to third_party/opus/src/silk/arm/macros_armv4.h
diff --git a/third_party/opus/silk/arm/macros_armv5e.h b/third_party/opus/src/silk/arm/macros_armv5e.h
similarity index 100%
rename from third_party/opus/silk/arm/macros_armv5e.h
rename to third_party/opus/src/silk/arm/macros_armv5e.h
diff --git a/third_party/opus/silk/biquad_alt.c b/third_party/opus/src/silk/biquad_alt.c
similarity index 100%
rename from third_party/opus/silk/biquad_alt.c
rename to third_party/opus/src/silk/biquad_alt.c
diff --git a/third_party/opus/silk/bwexpander.c b/third_party/opus/src/silk/bwexpander.c
similarity index 100%
rename from third_party/opus/silk/bwexpander.c
rename to third_party/opus/src/silk/bwexpander.c
diff --git a/third_party/opus/silk/bwexpander_32.c b/third_party/opus/src/silk/bwexpander_32.c
similarity index 100%
rename from third_party/opus/silk/bwexpander_32.c
rename to third_party/opus/src/silk/bwexpander_32.c
diff --git a/third_party/opus/silk/check_control_input.c b/third_party/opus/src/silk/check_control_input.c
similarity index 100%
rename from third_party/opus/silk/check_control_input.c
rename to third_party/opus/src/silk/check_control_input.c
diff --git a/third_party/opus/silk/code_signs.c b/third_party/opus/src/silk/code_signs.c
similarity index 100%
rename from third_party/opus/silk/code_signs.c
rename to third_party/opus/src/silk/code_signs.c
diff --git a/third_party/opus/silk/control.h b/third_party/opus/src/silk/control.h
similarity index 100%
rename from third_party/opus/silk/control.h
rename to third_party/opus/src/silk/control.h
diff --git a/third_party/opus/silk/control_SNR.c b/third_party/opus/src/silk/control_SNR.c
similarity index 100%
rename from third_party/opus/silk/control_SNR.c
rename to third_party/opus/src/silk/control_SNR.c
diff --git a/third_party/opus/silk/control_audio_bandwidth.c b/third_party/opus/src/silk/control_audio_bandwidth.c
similarity index 100%
rename from third_party/opus/silk/control_audio_bandwidth.c
rename to third_party/opus/src/silk/control_audio_bandwidth.c
diff --git a/third_party/opus/silk/control_codec.c b/third_party/opus/src/silk/control_codec.c
similarity index 100%
rename from third_party/opus/silk/control_codec.c
rename to third_party/opus/src/silk/control_codec.c
diff --git a/third_party/opus/silk/debug.c b/third_party/opus/src/silk/debug.c
similarity index 100%
rename from third_party/opus/silk/debug.c
rename to third_party/opus/src/silk/debug.c
diff --git a/third_party/opus/silk/debug.h b/third_party/opus/src/silk/debug.h
similarity index 100%
rename from third_party/opus/silk/debug.h
rename to third_party/opus/src/silk/debug.h
diff --git a/third_party/opus/silk/dec_API.c b/third_party/opus/src/silk/dec_API.c
similarity index 100%
rename from third_party/opus/silk/dec_API.c
rename to third_party/opus/src/silk/dec_API.c
diff --git a/third_party/opus/silk/decode_core.c b/third_party/opus/src/silk/decode_core.c
similarity index 100%
rename from third_party/opus/silk/decode_core.c
rename to third_party/opus/src/silk/decode_core.c
diff --git a/third_party/opus/silk/decode_frame.c b/third_party/opus/src/silk/decode_frame.c
similarity index 100%
rename from third_party/opus/silk/decode_frame.c
rename to third_party/opus/src/silk/decode_frame.c
diff --git a/third_party/opus/silk/decode_indices.c b/third_party/opus/src/silk/decode_indices.c
similarity index 100%
rename from third_party/opus/silk/decode_indices.c
rename to third_party/opus/src/silk/decode_indices.c
diff --git a/third_party/opus/silk/decode_parameters.c b/third_party/opus/src/silk/decode_parameters.c
similarity index 100%
rename from third_party/opus/silk/decode_parameters.c
rename to third_party/opus/src/silk/decode_parameters.c
diff --git a/third_party/opus/silk/decode_pitch.c b/third_party/opus/src/silk/decode_pitch.c
similarity index 100%
rename from third_party/opus/silk/decode_pitch.c
rename to third_party/opus/src/silk/decode_pitch.c
diff --git a/third_party/opus/silk/decode_pulses.c b/third_party/opus/src/silk/decode_pulses.c
similarity index 100%
rename from third_party/opus/silk/decode_pulses.c
rename to third_party/opus/src/silk/decode_pulses.c
diff --git a/third_party/opus/silk/decoder_set_fs.c b/third_party/opus/src/silk/decoder_set_fs.c
similarity index 100%
rename from third_party/opus/silk/decoder_set_fs.c
rename to third_party/opus/src/silk/decoder_set_fs.c
diff --git a/third_party/opus/silk/define.h b/third_party/opus/src/silk/define.h
similarity index 98%
rename from third_party/opus/silk/define.h
rename to third_party/opus/src/silk/define.h
index 247cb0b..491c86f 100644
--- a/third_party/opus/silk/define.h
+++ b/third_party/opus/src/silk/define.h
@@ -225,6 +225,7 @@
/* Defines for CN generation */
#define CNG_BUF_MASK_MAX 255 /* 2^floor(log2(MAX_FRAME_LENGTH))-1 */
#define CNG_GAIN_SMTH_Q16 4634 /* 0.25^(1/4) */
+#define CNG_GAIN_SMTH_THRESHOLD_Q16 46396 /* -3 dB */
#define CNG_NLSF_SMTH_Q16 16348 /* 0.25 */
#ifdef __cplusplus
diff --git a/third_party/opus/silk/enc_API.c b/third_party/opus/src/silk/enc_API.c
similarity index 100%
rename from third_party/opus/silk/enc_API.c
rename to third_party/opus/src/silk/enc_API.c
diff --git a/third_party/opus/silk/encode_indices.c b/third_party/opus/src/silk/encode_indices.c
similarity index 100%
rename from third_party/opus/silk/encode_indices.c
rename to third_party/opus/src/silk/encode_indices.c
diff --git a/third_party/opus/silk/encode_pulses.c b/third_party/opus/src/silk/encode_pulses.c
similarity index 100%
rename from third_party/opus/silk/encode_pulses.c
rename to third_party/opus/src/silk/encode_pulses.c
diff --git a/third_party/opus/silk/errors.h b/third_party/opus/src/silk/errors.h
similarity index 100%
rename from third_party/opus/silk/errors.h
rename to third_party/opus/src/silk/errors.h
diff --git a/third_party/opus/silk/fixed/LTP_analysis_filter_FIX.c b/third_party/opus/src/silk/fixed/LTP_analysis_filter_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/LTP_analysis_filter_FIX.c
rename to third_party/opus/src/silk/fixed/LTP_analysis_filter_FIX.c
diff --git a/third_party/opus/silk/fixed/LTP_scale_ctrl_FIX.c b/third_party/opus/src/silk/fixed/LTP_scale_ctrl_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/LTP_scale_ctrl_FIX.c
rename to third_party/opus/src/silk/fixed/LTP_scale_ctrl_FIX.c
diff --git a/third_party/opus/silk/fixed/apply_sine_window_FIX.c b/third_party/opus/src/silk/fixed/apply_sine_window_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/apply_sine_window_FIX.c
rename to third_party/opus/src/silk/fixed/apply_sine_window_FIX.c
diff --git a/third_party/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h b/third_party/opus/src/silk/fixed/arm/warped_autocorrelation_FIX_arm.h
similarity index 100%
rename from third_party/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h
rename to third_party/opus/src/silk/fixed/arm/warped_autocorrelation_FIX_arm.h
diff --git a/third_party/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c b/third_party/opus/src/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
similarity index 96%
rename from third_party/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
rename to third_party/opus/src/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
index 00a70cb5..6f3be02 100644
--- a/third_party/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
+++ b/third_party/opus/src/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c
@@ -84,7 +84,9 @@
silk_assert( ( order & 1 ) == 0 );
silk_assert( 2 * QS - QC >= 0 );
- ALLOC( input_QST, length + 2 * MAX_SHAPE_LPC_ORDER, opus_int32 );
+ /* The additional +4 is to ensure a later vld1q_s32 call does not overflow. */
+ /* Strictly, only +3 is needed but +4 simplifies initialization using the 4x32 neon load. */
+ ALLOC( input_QST, length + 2 * MAX_SHAPE_LPC_ORDER + 4, opus_int32 );
input_QS = input_QST;
/* input_QS has zero paddings in the beginning and end. */
@@ -121,6 +123,8 @@
vst1q_s32( input_QS, vdupq_n_s32( 0 ) );
input_QS += 4;
vst1q_s32( input_QS, vdupq_n_s32( 0 ) );
+ input_QS += 4;
+ vst1q_s32( input_QS, vdupq_n_s32( 0 ) );
input_QS = input_QST + MAX_SHAPE_LPC_ORDER - orderT;
/* The following loop runs ( length + order ) times, with ( order ) extra epilogues. */
@@ -153,7 +157,8 @@
opus_int o = orderT;
int32x4_t state_QS_s32x4[ 3 ][ 2 ];
- ALLOC( state, length + orderT, opus_int32 );
+ /* The additional +4 is to ensure a later vld1q_s32 call does not overflow. */
+ ALLOC( state, length + order + 4, opus_int32 );
state_QS_s32x4[ 2 ][ 1 ] = vdupq_n_s32( 0 );
/* Calculate 8 taps of all inputs in each loop. */
diff --git a/third_party/opus/silk/fixed/autocorr_FIX.c b/third_party/opus/src/silk/fixed/autocorr_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/autocorr_FIX.c
rename to third_party/opus/src/silk/fixed/autocorr_FIX.c
diff --git a/third_party/opus/silk/fixed/burg_modified_FIX.c b/third_party/opus/src/silk/fixed/burg_modified_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/burg_modified_FIX.c
rename to third_party/opus/src/silk/fixed/burg_modified_FIX.c
diff --git a/third_party/opus/silk/fixed/corrMatrix_FIX.c b/third_party/opus/src/silk/fixed/corrMatrix_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/corrMatrix_FIX.c
rename to third_party/opus/src/silk/fixed/corrMatrix_FIX.c
diff --git a/third_party/opus/silk/fixed/encode_frame_FIX.c b/third_party/opus/src/silk/fixed/encode_frame_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/encode_frame_FIX.c
rename to third_party/opus/src/silk/fixed/encode_frame_FIX.c
diff --git a/third_party/opus/silk/fixed/find_LPC_FIX.c b/third_party/opus/src/silk/fixed/find_LPC_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/find_LPC_FIX.c
rename to third_party/opus/src/silk/fixed/find_LPC_FIX.c
diff --git a/third_party/opus/silk/fixed/find_LTP_FIX.c b/third_party/opus/src/silk/fixed/find_LTP_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/find_LTP_FIX.c
rename to third_party/opus/src/silk/fixed/find_LTP_FIX.c
diff --git a/third_party/opus/silk/fixed/find_pitch_lags_FIX.c b/third_party/opus/src/silk/fixed/find_pitch_lags_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/find_pitch_lags_FIX.c
rename to third_party/opus/src/silk/fixed/find_pitch_lags_FIX.c
diff --git a/third_party/opus/silk/fixed/find_pred_coefs_FIX.c b/third_party/opus/src/silk/fixed/find_pred_coefs_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/find_pred_coefs_FIX.c
rename to third_party/opus/src/silk/fixed/find_pred_coefs_FIX.c
diff --git a/third_party/opus/silk/fixed/k2a_FIX.c b/third_party/opus/src/silk/fixed/k2a_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/k2a_FIX.c
rename to third_party/opus/src/silk/fixed/k2a_FIX.c
diff --git a/third_party/opus/silk/fixed/k2a_Q16_FIX.c b/third_party/opus/src/silk/fixed/k2a_Q16_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/k2a_Q16_FIX.c
rename to third_party/opus/src/silk/fixed/k2a_Q16_FIX.c
diff --git a/third_party/opus/silk/fixed/main_FIX.h b/third_party/opus/src/silk/fixed/main_FIX.h
similarity index 100%
rename from third_party/opus/silk/fixed/main_FIX.h
rename to third_party/opus/src/silk/fixed/main_FIX.h
diff --git a/third_party/opus/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h b/third_party/opus/src/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h
similarity index 100%
rename from third_party/opus/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h
rename to third_party/opus/src/silk/fixed/mips/noise_shape_analysis_FIX_mipsr1.h
diff --git a/third_party/opus/silk/fixed/mips/prefilter_FIX_mipsr1.h b/third_party/opus/src/silk/fixed/mips/prefilter_FIX_mipsr1.h
similarity index 100%
rename from third_party/opus/silk/fixed/mips/prefilter_FIX_mipsr1.h
rename to third_party/opus/src/silk/fixed/mips/prefilter_FIX_mipsr1.h
diff --git a/third_party/opus/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h b/third_party/opus/src/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h
similarity index 95%
rename from third_party/opus/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h
rename to third_party/opus/src/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h
index fcbd96c..66eb2ed 100644
--- a/third_party/opus/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h
+++ b/third_party/opus/src/silk/fixed/mips/warped_autocorrelation_FIX_mipsr1.h
@@ -41,15 +41,14 @@
#define QS 14
/* Autocorrelations for a warped frequency axis */
-#define OVERRIDE_silk_warped_autocorrelation_FIX
-void silk_warped_autocorrelation_FIX(
+#define OVERRIDE_silk_warped_autocorrelation_FIX_c
+void silk_warped_autocorrelation_FIX_c(
opus_int32 *corr, /* O Result [order + 1] */
opus_int *scale, /* O Scaling of the correlation vector */
const opus_int16 *input, /* I Input data to correlate */
const opus_int warping_Q16, /* I Warping coefficient */
const opus_int length, /* I Length of input */
- const opus_int order, /* I Correlation order (even) */
- int arch /* I Run-time architecture */
+ const opus_int order /* I Correlation order (even) */
)
{
opus_int n, i, lsh;
diff --git a/third_party/opus/silk/fixed/noise_shape_analysis_FIX.c b/third_party/opus/src/silk/fixed/noise_shape_analysis_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/noise_shape_analysis_FIX.c
rename to third_party/opus/src/silk/fixed/noise_shape_analysis_FIX.c
diff --git a/third_party/opus/silk/fixed/pitch_analysis_core_FIX.c b/third_party/opus/src/silk/fixed/pitch_analysis_core_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/pitch_analysis_core_FIX.c
rename to third_party/opus/src/silk/fixed/pitch_analysis_core_FIX.c
diff --git a/third_party/opus/silk/fixed/process_gains_FIX.c b/third_party/opus/src/silk/fixed/process_gains_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/process_gains_FIX.c
rename to third_party/opus/src/silk/fixed/process_gains_FIX.c
diff --git a/third_party/opus/silk/fixed/regularize_correlations_FIX.c b/third_party/opus/src/silk/fixed/regularize_correlations_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/regularize_correlations_FIX.c
rename to third_party/opus/src/silk/fixed/regularize_correlations_FIX.c
diff --git a/third_party/opus/silk/fixed/residual_energy16_FIX.c b/third_party/opus/src/silk/fixed/residual_energy16_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/residual_energy16_FIX.c
rename to third_party/opus/src/silk/fixed/residual_energy16_FIX.c
diff --git a/third_party/opus/silk/fixed/residual_energy_FIX.c b/third_party/opus/src/silk/fixed/residual_energy_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/residual_energy_FIX.c
rename to third_party/opus/src/silk/fixed/residual_energy_FIX.c
diff --git a/third_party/opus/silk/fixed/schur64_FIX.c b/third_party/opus/src/silk/fixed/schur64_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/schur64_FIX.c
rename to third_party/opus/src/silk/fixed/schur64_FIX.c
diff --git a/third_party/opus/silk/fixed/schur_FIX.c b/third_party/opus/src/silk/fixed/schur_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/schur_FIX.c
rename to third_party/opus/src/silk/fixed/schur_FIX.c
diff --git a/third_party/opus/silk/fixed/structs_FIX.h b/third_party/opus/src/silk/fixed/structs_FIX.h
similarity index 100%
rename from third_party/opus/silk/fixed/structs_FIX.h
rename to third_party/opus/src/silk/fixed/structs_FIX.h
diff --git a/third_party/opus/silk/fixed/vector_ops_FIX.c b/third_party/opus/src/silk/fixed/vector_ops_FIX.c
similarity index 100%
rename from third_party/opus/silk/fixed/vector_ops_FIX.c
rename to third_party/opus/src/silk/fixed/vector_ops_FIX.c
diff --git a/third_party/opus/silk/fixed/warped_autocorrelation_FIX.c b/third_party/opus/src/silk/fixed/warped_autocorrelation_FIX.c
similarity index 97%
rename from third_party/opus/silk/fixed/warped_autocorrelation_FIX.c
rename to third_party/opus/src/silk/fixed/warped_autocorrelation_FIX.c
index 52002a1..5c79553 100644
--- a/third_party/opus/silk/fixed/warped_autocorrelation_FIX.c
+++ b/third_party/opus/src/silk/fixed/warped_autocorrelation_FIX.c
@@ -37,6 +37,7 @@
/* Autocorrelations for a warped frequency axis */
+#ifndef OVERRIDE_silk_warped_autocorrelation_FIX_c
void silk_warped_autocorrelation_FIX_c(
opus_int32 *corr, /* O Result [order + 1] */
opus_int *scale, /* O Scaling of the correlation vector */
@@ -88,3 +89,4 @@
}
silk_assert( corr_QC[ 0 ] >= 0 ); /* If breaking, decrease QC*/
}
+#endif /* OVERRIDE_silk_warped_autocorrelation_FIX_c */
diff --git a/third_party/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c b/third_party/opus/src/silk/fixed/x86/burg_modified_FIX_sse4_1.c
similarity index 100%
rename from third_party/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c
rename to third_party/opus/src/silk/fixed/x86/burg_modified_FIX_sse4_1.c
diff --git a/third_party/opus/silk/fixed/x86/prefilter_FIX_sse.c b/third_party/opus/src/silk/fixed/x86/prefilter_FIX_sse.c
similarity index 100%
rename from third_party/opus/silk/fixed/x86/prefilter_FIX_sse.c
rename to third_party/opus/src/silk/fixed/x86/prefilter_FIX_sse.c
diff --git a/third_party/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c b/third_party/opus/src/silk/fixed/x86/vector_ops_FIX_sse4_1.c
similarity index 100%
rename from third_party/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c
rename to third_party/opus/src/silk/fixed/x86/vector_ops_FIX_sse4_1.c
diff --git a/third_party/opus/silk/float/LPC_analysis_filter_FLP.c b/third_party/opus/src/silk/float/LPC_analysis_filter_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/LPC_analysis_filter_FLP.c
rename to third_party/opus/src/silk/float/LPC_analysis_filter_FLP.c
diff --git a/third_party/opus/silk/float/LPC_inv_pred_gain_FLP.c b/third_party/opus/src/silk/float/LPC_inv_pred_gain_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/LPC_inv_pred_gain_FLP.c
rename to third_party/opus/src/silk/float/LPC_inv_pred_gain_FLP.c
diff --git a/third_party/opus/silk/float/LTP_analysis_filter_FLP.c b/third_party/opus/src/silk/float/LTP_analysis_filter_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/LTP_analysis_filter_FLP.c
rename to third_party/opus/src/silk/float/LTP_analysis_filter_FLP.c
diff --git a/third_party/opus/silk/float/LTP_scale_ctrl_FLP.c b/third_party/opus/src/silk/float/LTP_scale_ctrl_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/LTP_scale_ctrl_FLP.c
rename to third_party/opus/src/silk/float/LTP_scale_ctrl_FLP.c
diff --git a/third_party/opus/silk/float/SigProc_FLP.h b/third_party/opus/src/silk/float/SigProc_FLP.h
similarity index 100%
rename from third_party/opus/silk/float/SigProc_FLP.h
rename to third_party/opus/src/silk/float/SigProc_FLP.h
diff --git a/third_party/opus/silk/float/apply_sine_window_FLP.c b/third_party/opus/src/silk/float/apply_sine_window_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/apply_sine_window_FLP.c
rename to third_party/opus/src/silk/float/apply_sine_window_FLP.c
diff --git a/third_party/opus/silk/float/autocorrelation_FLP.c b/third_party/opus/src/silk/float/autocorrelation_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/autocorrelation_FLP.c
rename to third_party/opus/src/silk/float/autocorrelation_FLP.c
diff --git a/third_party/opus/silk/float/burg_modified_FLP.c b/third_party/opus/src/silk/float/burg_modified_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/burg_modified_FLP.c
rename to third_party/opus/src/silk/float/burg_modified_FLP.c
diff --git a/third_party/opus/silk/float/bwexpander_FLP.c b/third_party/opus/src/silk/float/bwexpander_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/bwexpander_FLP.c
rename to third_party/opus/src/silk/float/bwexpander_FLP.c
diff --git a/third_party/opus/silk/float/corrMatrix_FLP.c b/third_party/opus/src/silk/float/corrMatrix_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/corrMatrix_FLP.c
rename to third_party/opus/src/silk/float/corrMatrix_FLP.c
diff --git a/third_party/opus/silk/float/encode_frame_FLP.c b/third_party/opus/src/silk/float/encode_frame_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/encode_frame_FLP.c
rename to third_party/opus/src/silk/float/encode_frame_FLP.c
diff --git a/third_party/opus/silk/float/energy_FLP.c b/third_party/opus/src/silk/float/energy_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/energy_FLP.c
rename to third_party/opus/src/silk/float/energy_FLP.c
diff --git a/third_party/opus/silk/float/find_LPC_FLP.c b/third_party/opus/src/silk/float/find_LPC_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/find_LPC_FLP.c
rename to third_party/opus/src/silk/float/find_LPC_FLP.c
diff --git a/third_party/opus/silk/float/find_LTP_FLP.c b/third_party/opus/src/silk/float/find_LTP_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/find_LTP_FLP.c
rename to third_party/opus/src/silk/float/find_LTP_FLP.c
diff --git a/third_party/opus/silk/float/find_pitch_lags_FLP.c b/third_party/opus/src/silk/float/find_pitch_lags_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/find_pitch_lags_FLP.c
rename to third_party/opus/src/silk/float/find_pitch_lags_FLP.c
diff --git a/third_party/opus/silk/float/find_pred_coefs_FLP.c b/third_party/opus/src/silk/float/find_pred_coefs_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/find_pred_coefs_FLP.c
rename to third_party/opus/src/silk/float/find_pred_coefs_FLP.c
diff --git a/third_party/opus/silk/float/inner_product_FLP.c b/third_party/opus/src/silk/float/inner_product_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/inner_product_FLP.c
rename to third_party/opus/src/silk/float/inner_product_FLP.c
diff --git a/third_party/opus/silk/float/k2a_FLP.c b/third_party/opus/src/silk/float/k2a_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/k2a_FLP.c
rename to third_party/opus/src/silk/float/k2a_FLP.c
diff --git a/third_party/opus/silk/float/main_FLP.h b/third_party/opus/src/silk/float/main_FLP.h
similarity index 100%
rename from third_party/opus/silk/float/main_FLP.h
rename to third_party/opus/src/silk/float/main_FLP.h
diff --git a/third_party/opus/silk/float/noise_shape_analysis_FLP.c b/third_party/opus/src/silk/float/noise_shape_analysis_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/noise_shape_analysis_FLP.c
rename to third_party/opus/src/silk/float/noise_shape_analysis_FLP.c
diff --git a/third_party/opus/silk/float/pitch_analysis_core_FLP.c b/third_party/opus/src/silk/float/pitch_analysis_core_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/pitch_analysis_core_FLP.c
rename to third_party/opus/src/silk/float/pitch_analysis_core_FLP.c
diff --git a/third_party/opus/silk/float/process_gains_FLP.c b/third_party/opus/src/silk/float/process_gains_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/process_gains_FLP.c
rename to third_party/opus/src/silk/float/process_gains_FLP.c
diff --git a/third_party/opus/silk/float/regularize_correlations_FLP.c b/third_party/opus/src/silk/float/regularize_correlations_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/regularize_correlations_FLP.c
rename to third_party/opus/src/silk/float/regularize_correlations_FLP.c
diff --git a/third_party/opus/silk/float/residual_energy_FLP.c b/third_party/opus/src/silk/float/residual_energy_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/residual_energy_FLP.c
rename to third_party/opus/src/silk/float/residual_energy_FLP.c
diff --git a/third_party/opus/silk/float/scale_copy_vector_FLP.c b/third_party/opus/src/silk/float/scale_copy_vector_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/scale_copy_vector_FLP.c
rename to third_party/opus/src/silk/float/scale_copy_vector_FLP.c
diff --git a/third_party/opus/silk/float/scale_vector_FLP.c b/third_party/opus/src/silk/float/scale_vector_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/scale_vector_FLP.c
rename to third_party/opus/src/silk/float/scale_vector_FLP.c
diff --git a/third_party/opus/silk/float/schur_FLP.c b/third_party/opus/src/silk/float/schur_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/schur_FLP.c
rename to third_party/opus/src/silk/float/schur_FLP.c
diff --git a/third_party/opus/silk/float/sort_FLP.c b/third_party/opus/src/silk/float/sort_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/sort_FLP.c
rename to third_party/opus/src/silk/float/sort_FLP.c
diff --git a/third_party/opus/silk/float/structs_FLP.h b/third_party/opus/src/silk/float/structs_FLP.h
similarity index 100%
rename from third_party/opus/silk/float/structs_FLP.h
rename to third_party/opus/src/silk/float/structs_FLP.h
diff --git a/third_party/opus/silk/float/warped_autocorrelation_FLP.c b/third_party/opus/src/silk/float/warped_autocorrelation_FLP.c
similarity index 94%
rename from third_party/opus/silk/float/warped_autocorrelation_FLP.c
rename to third_party/opus/src/silk/float/warped_autocorrelation_FLP.c
index 9666276..09186e7 100644
--- a/third_party/opus/silk/float/warped_autocorrelation_FLP.c
+++ b/third_party/opus/src/silk/float/warped_autocorrelation_FLP.c
@@ -42,8 +42,8 @@
{
opus_int n, i;
double tmp1, tmp2;
- double state[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
- double C[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };
+ double state[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0 };
+ double C[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0 };
/* Order must be even */
celt_assert( ( order & 1 ) == 0 );
diff --git a/third_party/opus/silk/float/wrappers_FLP.c b/third_party/opus/src/silk/float/wrappers_FLP.c
similarity index 100%
rename from third_party/opus/silk/float/wrappers_FLP.c
rename to third_party/opus/src/silk/float/wrappers_FLP.c
diff --git a/third_party/opus/silk/gain_quant.c b/third_party/opus/src/silk/gain_quant.c
similarity index 100%
rename from third_party/opus/silk/gain_quant.c
rename to third_party/opus/src/silk/gain_quant.c
diff --git a/third_party/opus/silk/init_decoder.c b/third_party/opus/src/silk/init_decoder.c
similarity index 100%
rename from third_party/opus/silk/init_decoder.c
rename to third_party/opus/src/silk/init_decoder.c
diff --git a/third_party/opus/silk/init_encoder.c b/third_party/opus/src/silk/init_encoder.c
similarity index 100%
rename from third_party/opus/silk/init_encoder.c
rename to third_party/opus/src/silk/init_encoder.c
diff --git a/third_party/opus/silk/inner_prod_aligned.c b/third_party/opus/src/silk/inner_prod_aligned.c
similarity index 100%
rename from third_party/opus/silk/inner_prod_aligned.c
rename to third_party/opus/src/silk/inner_prod_aligned.c
diff --git a/third_party/opus/silk/interpolate.c b/third_party/opus/src/silk/interpolate.c
similarity index 100%
rename from third_party/opus/silk/interpolate.c
rename to third_party/opus/src/silk/interpolate.c
diff --git a/third_party/opus/silk/lin2log.c b/third_party/opus/src/silk/lin2log.c
similarity index 100%
rename from third_party/opus/silk/lin2log.c
rename to third_party/opus/src/silk/lin2log.c
diff --git a/third_party/opus/silk/log2lin.c b/third_party/opus/src/silk/log2lin.c
similarity index 100%
rename from third_party/opus/silk/log2lin.c
rename to third_party/opus/src/silk/log2lin.c
diff --git a/third_party/opus/silk/macros.h b/third_party/opus/src/silk/macros.h
similarity index 100%
rename from third_party/opus/silk/macros.h
rename to third_party/opus/src/silk/macros.h
diff --git a/third_party/opus/silk/main.h b/third_party/opus/src/silk/main.h
similarity index 100%
rename from third_party/opus/silk/main.h
rename to third_party/opus/src/silk/main.h
diff --git a/third_party/opus/silk/mips/NSQ_del_dec_mipsr1.h b/third_party/opus/src/silk/mips/NSQ_del_dec_mipsr1.h
similarity index 100%
rename from third_party/opus/silk/mips/NSQ_del_dec_mipsr1.h
rename to third_party/opus/src/silk/mips/NSQ_del_dec_mipsr1.h
diff --git a/third_party/opus/silk/mips/macros_mipsr1.h b/third_party/opus/src/silk/mips/macros_mipsr1.h
similarity index 100%
rename from third_party/opus/silk/mips/macros_mipsr1.h
rename to third_party/opus/src/silk/mips/macros_mipsr1.h
diff --git a/third_party/opus/silk/mips/sigproc_fix_mipsr1.h b/third_party/opus/src/silk/mips/sigproc_fix_mipsr1.h
similarity index 100%
rename from third_party/opus/silk/mips/sigproc_fix_mipsr1.h
rename to third_party/opus/src/silk/mips/sigproc_fix_mipsr1.h
diff --git a/third_party/opus/silk/pitch_est_defines.h b/third_party/opus/src/silk/pitch_est_defines.h
similarity index 100%
rename from third_party/opus/silk/pitch_est_defines.h
rename to third_party/opus/src/silk/pitch_est_defines.h
diff --git a/third_party/opus/silk/pitch_est_tables.c b/third_party/opus/src/silk/pitch_est_tables.c
similarity index 100%
rename from third_party/opus/silk/pitch_est_tables.c
rename to third_party/opus/src/silk/pitch_est_tables.c
diff --git a/third_party/opus/silk/process_NLSFs.c b/third_party/opus/src/silk/process_NLSFs.c
similarity index 100%
rename from third_party/opus/silk/process_NLSFs.c
rename to third_party/opus/src/silk/process_NLSFs.c
diff --git a/third_party/opus/silk/quant_LTP_gains.c b/third_party/opus/src/silk/quant_LTP_gains.c
similarity index 100%
rename from third_party/opus/silk/quant_LTP_gains.c
rename to third_party/opus/src/silk/quant_LTP_gains.c
diff --git a/third_party/opus/silk/resampler.c b/third_party/opus/src/silk/resampler.c
similarity index 100%
rename from third_party/opus/silk/resampler.c
rename to third_party/opus/src/silk/resampler.c
diff --git a/third_party/opus/silk/resampler_down2.c b/third_party/opus/src/silk/resampler_down2.c
similarity index 100%
rename from third_party/opus/silk/resampler_down2.c
rename to third_party/opus/src/silk/resampler_down2.c
diff --git a/third_party/opus/silk/resampler_down2_3.c b/third_party/opus/src/silk/resampler_down2_3.c
similarity index 100%
rename from third_party/opus/silk/resampler_down2_3.c
rename to third_party/opus/src/silk/resampler_down2_3.c
diff --git a/third_party/opus/silk/resampler_private.h b/third_party/opus/src/silk/resampler_private.h
similarity index 100%
rename from third_party/opus/silk/resampler_private.h
rename to third_party/opus/src/silk/resampler_private.h
diff --git a/third_party/opus/silk/resampler_private_AR2.c b/third_party/opus/src/silk/resampler_private_AR2.c
similarity index 100%
rename from third_party/opus/silk/resampler_private_AR2.c
rename to third_party/opus/src/silk/resampler_private_AR2.c
diff --git a/third_party/opus/silk/resampler_private_IIR_FIR.c b/third_party/opus/src/silk/resampler_private_IIR_FIR.c
similarity index 100%
rename from third_party/opus/silk/resampler_private_IIR_FIR.c
rename to third_party/opus/src/silk/resampler_private_IIR_FIR.c
diff --git a/third_party/opus/silk/resampler_private_down_FIR.c b/third_party/opus/src/silk/resampler_private_down_FIR.c
similarity index 100%
rename from third_party/opus/silk/resampler_private_down_FIR.c
rename to third_party/opus/src/silk/resampler_private_down_FIR.c
diff --git a/third_party/opus/silk/resampler_private_up2_HQ.c b/third_party/opus/src/silk/resampler_private_up2_HQ.c
similarity index 100%
rename from third_party/opus/silk/resampler_private_up2_HQ.c
rename to third_party/opus/src/silk/resampler_private_up2_HQ.c
diff --git a/third_party/opus/silk/resampler_rom.c b/third_party/opus/src/silk/resampler_rom.c
similarity index 100%
rename from third_party/opus/silk/resampler_rom.c
rename to third_party/opus/src/silk/resampler_rom.c
diff --git a/third_party/opus/silk/resampler_rom.h b/third_party/opus/src/silk/resampler_rom.h
similarity index 100%
rename from third_party/opus/silk/resampler_rom.h
rename to third_party/opus/src/silk/resampler_rom.h
diff --git a/third_party/opus/silk/resampler_structs.h b/third_party/opus/src/silk/resampler_structs.h
similarity index 100%
rename from third_party/opus/silk/resampler_structs.h
rename to third_party/opus/src/silk/resampler_structs.h
diff --git a/third_party/opus/silk/shell_coder.c b/third_party/opus/src/silk/shell_coder.c
similarity index 100%
rename from third_party/opus/silk/shell_coder.c
rename to third_party/opus/src/silk/shell_coder.c
diff --git a/third_party/opus/silk/sigm_Q15.c b/third_party/opus/src/silk/sigm_Q15.c
similarity index 100%
rename from third_party/opus/silk/sigm_Q15.c
rename to third_party/opus/src/silk/sigm_Q15.c
diff --git a/third_party/opus/silk/sort.c b/third_party/opus/src/silk/sort.c
similarity index 100%
rename from third_party/opus/silk/sort.c
rename to third_party/opus/src/silk/sort.c
diff --git a/third_party/opus/silk/stereo_LR_to_MS.c b/third_party/opus/src/silk/stereo_LR_to_MS.c
similarity index 100%
rename from third_party/opus/silk/stereo_LR_to_MS.c
rename to third_party/opus/src/silk/stereo_LR_to_MS.c
diff --git a/third_party/opus/silk/stereo_MS_to_LR.c b/third_party/opus/src/silk/stereo_MS_to_LR.c
similarity index 100%
rename from third_party/opus/silk/stereo_MS_to_LR.c
rename to third_party/opus/src/silk/stereo_MS_to_LR.c
diff --git a/third_party/opus/silk/stereo_decode_pred.c b/third_party/opus/src/silk/stereo_decode_pred.c
similarity index 100%
rename from third_party/opus/silk/stereo_decode_pred.c
rename to third_party/opus/src/silk/stereo_decode_pred.c
diff --git a/third_party/opus/silk/stereo_encode_pred.c b/third_party/opus/src/silk/stereo_encode_pred.c
similarity index 100%
rename from third_party/opus/silk/stereo_encode_pred.c
rename to third_party/opus/src/silk/stereo_encode_pred.c
diff --git a/third_party/opus/silk/stereo_find_predictor.c b/third_party/opus/src/silk/stereo_find_predictor.c
similarity index 100%
rename from third_party/opus/silk/stereo_find_predictor.c
rename to third_party/opus/src/silk/stereo_find_predictor.c
diff --git a/third_party/opus/silk/stereo_quant_pred.c b/third_party/opus/src/silk/stereo_quant_pred.c
similarity index 100%
rename from third_party/opus/silk/stereo_quant_pred.c
rename to third_party/opus/src/silk/stereo_quant_pred.c
diff --git a/third_party/opus/silk/structs.h b/third_party/opus/src/silk/structs.h
similarity index 100%
rename from third_party/opus/silk/structs.h
rename to third_party/opus/src/silk/structs.h
diff --git a/third_party/opus/silk/sum_sqr_shift.c b/third_party/opus/src/silk/sum_sqr_shift.c
similarity index 100%
rename from third_party/opus/silk/sum_sqr_shift.c
rename to third_party/opus/src/silk/sum_sqr_shift.c
diff --git a/third_party/opus/silk/table_LSF_cos.c b/third_party/opus/src/silk/table_LSF_cos.c
similarity index 100%
rename from third_party/opus/silk/table_LSF_cos.c
rename to third_party/opus/src/silk/table_LSF_cos.c
diff --git a/third_party/opus/silk/tables.h b/third_party/opus/src/silk/tables.h
similarity index 100%
rename from third_party/opus/silk/tables.h
rename to third_party/opus/src/silk/tables.h
diff --git a/third_party/opus/silk/tables_LTP.c b/third_party/opus/src/silk/tables_LTP.c
similarity index 100%
rename from third_party/opus/silk/tables_LTP.c
rename to third_party/opus/src/silk/tables_LTP.c
diff --git a/third_party/opus/silk/tables_NLSF_CB_NB_MB.c b/third_party/opus/src/silk/tables_NLSF_CB_NB_MB.c
similarity index 100%
rename from third_party/opus/silk/tables_NLSF_CB_NB_MB.c
rename to third_party/opus/src/silk/tables_NLSF_CB_NB_MB.c
diff --git a/third_party/opus/silk/tables_NLSF_CB_WB.c b/third_party/opus/src/silk/tables_NLSF_CB_WB.c
similarity index 100%
rename from third_party/opus/silk/tables_NLSF_CB_WB.c
rename to third_party/opus/src/silk/tables_NLSF_CB_WB.c
diff --git a/third_party/opus/silk/tables_gain.c b/third_party/opus/src/silk/tables_gain.c
similarity index 100%
rename from third_party/opus/silk/tables_gain.c
rename to third_party/opus/src/silk/tables_gain.c
diff --git a/third_party/opus/silk/tables_other.c b/third_party/opus/src/silk/tables_other.c
similarity index 100%
rename from third_party/opus/silk/tables_other.c
rename to third_party/opus/src/silk/tables_other.c
diff --git a/third_party/opus/silk/tables_pitch_lag.c b/third_party/opus/src/silk/tables_pitch_lag.c
similarity index 100%
rename from third_party/opus/silk/tables_pitch_lag.c
rename to third_party/opus/src/silk/tables_pitch_lag.c
diff --git a/third_party/opus/silk/tables_pulses_per_block.c b/third_party/opus/src/silk/tables_pulses_per_block.c
similarity index 100%
rename from third_party/opus/silk/tables_pulses_per_block.c
rename to third_party/opus/src/silk/tables_pulses_per_block.c
diff --git a/third_party/opus/silk/tests/test_unit_LPC_inv_pred_gain.c b/third_party/opus/src/silk/tests/test_unit_LPC_inv_pred_gain.c
similarity index 100%
rename from third_party/opus/silk/tests/test_unit_LPC_inv_pred_gain.c
rename to third_party/opus/src/silk/tests/test_unit_LPC_inv_pred_gain.c
diff --git a/third_party/opus/silk/tuning_parameters.h b/third_party/opus/src/silk/tuning_parameters.h
similarity index 100%
rename from third_party/opus/silk/tuning_parameters.h
rename to third_party/opus/src/silk/tuning_parameters.h
diff --git a/third_party/opus/silk/typedef.h b/third_party/opus/src/silk/typedef.h
similarity index 100%
rename from third_party/opus/silk/typedef.h
rename to third_party/opus/src/silk/typedef.h
diff --git a/third_party/opus/silk/x86/NSQ_del_dec_sse4_1.c b/third_party/opus/src/silk/x86/NSQ_del_dec_sse4_1.c
similarity index 100%
rename from third_party/opus/silk/x86/NSQ_del_dec_sse4_1.c
rename to third_party/opus/src/silk/x86/NSQ_del_dec_sse4_1.c
diff --git a/third_party/opus/silk/x86/NSQ_sse4_1.c b/third_party/opus/src/silk/x86/NSQ_sse4_1.c
similarity index 100%
rename from third_party/opus/silk/x86/NSQ_sse4_1.c
rename to third_party/opus/src/silk/x86/NSQ_sse4_1.c
diff --git a/third_party/opus/silk/x86/SigProc_FIX_sse.h b/third_party/opus/src/silk/x86/SigProc_FIX_sse.h
similarity index 100%
rename from third_party/opus/silk/x86/SigProc_FIX_sse.h
rename to third_party/opus/src/silk/x86/SigProc_FIX_sse.h
diff --git a/third_party/opus/silk/x86/VAD_sse4_1.c b/third_party/opus/src/silk/x86/VAD_sse4_1.c
similarity index 100%
rename from third_party/opus/silk/x86/VAD_sse4_1.c
rename to third_party/opus/src/silk/x86/VAD_sse4_1.c
diff --git a/third_party/opus/silk/x86/VQ_WMat_EC_sse4_1.c b/third_party/opus/src/silk/x86/VQ_WMat_EC_sse4_1.c
similarity index 100%
rename from third_party/opus/silk/x86/VQ_WMat_EC_sse4_1.c
rename to third_party/opus/src/silk/x86/VQ_WMat_EC_sse4_1.c
diff --git a/third_party/opus/silk/x86/main_sse.h b/third_party/opus/src/silk/x86/main_sse.h
similarity index 100%
rename from third_party/opus/silk/x86/main_sse.h
rename to third_party/opus/src/silk/x86/main_sse.h
diff --git a/third_party/opus/silk/x86/x86_silk_map.c b/third_party/opus/src/silk/x86/x86_silk_map.c
similarity index 100%
rename from third_party/opus/silk/x86/x86_silk_map.c
rename to third_party/opus/src/silk/x86/x86_silk_map.c
diff --git a/third_party/opus/src/analysis.c b/third_party/opus/src/src/analysis.c
similarity index 96%
rename from third_party/opus/src/analysis.c
rename to third_party/opus/src/src/analysis.c
index 8ee57aa..cb46dec 100644
--- a/third_party/opus/src/analysis.c
+++ b/third_party/opus/src/src/analysis.c
@@ -249,6 +249,15 @@
if (curr_lookahead<0)
curr_lookahead += DETECT_SIZE;
+ tonal->read_subframe += len/(tonal->Fs/400);
+ while (tonal->read_subframe>=8)
+ {
+ tonal->read_subframe -= 8;
+ tonal->read_pos++;
+ }
+ if (tonal->read_pos>=DETECT_SIZE)
+ tonal->read_pos-=DETECT_SIZE;
+
/* On long frames, look at the second analysis window rather than the first. */
if (len > tonal->Fs/50 && pos != tonal->write_pos)
{
@@ -262,6 +271,8 @@
pos = DETECT_SIZE-1;
pos0 = pos;
OPUS_COPY(info_out, &tonal->info[pos], 1);
+ if (!info_out->valid)
+ return;
tonality_max = tonality_avg = info_out->tonality;
tonality_count = 1;
/* Look at the neighbouring frames and pick largest bandwidth found (to be safe). */
@@ -393,14 +404,6 @@
info_out->music_prob_max = prob_max;
/* printf("%f %f %f %f %f\n", prob_min, prob_max, prob_avg/prob_count, vad_prob, info_out->music_prob); */
- tonal->read_subframe += len/(tonal->Fs/400);
- while (tonal->read_subframe>=8)
- {
- tonal->read_subframe -= 8;
- tonal->read_pos++;
- }
- if (tonal->read_pos>=DETECT_SIZE)
- tonal->read_pos-=DETECT_SIZE;
}
static const float std_feature_bias[9] = {
@@ -420,6 +423,24 @@
#define SCALE_ENER(e) (e)
#endif
+#ifdef FIXED_POINT
+static int is_digital_silence32(const opus_val32* pcm, int frame_size, int channels, int lsb_depth)
+{
+ int silence = 0;
+ opus_val32 sample_max = 0;
+#ifdef MLP_TRAINING
+ return 0;
+#endif
+ sample_max = celt_maxabs32(pcm, frame_size*channels);
+
+ silence = (sample_max == 0);
+ (void)lsb_depth;
+ return silence;
+}
+#else
+#define is_digital_silence32(pcm, frame_size, channels, lsb_depth) is_digital_silence(pcm, frame_size, channels, lsb_depth)
+#endif
+
static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt_mode, const void *x, int len, int offset, int c1, int c2, int C, int lsb_depth, downmix_func downmix)
{
int i, b;
@@ -464,8 +485,14 @@
float layer_out[MAX_NEURONS];
float below_max_pitch;
float above_max_pitch;
+ int is_silence;
SAVE_STACK;
+ if (!tonal->initialized)
+ {
+ tonal->mem_fill = 240;
+ tonal->initialized = 1;
+ }
alpha = 1.f/IMIN(10, 1+tonal->count);
alphaE = 1.f/IMIN(25, 1+tonal->count);
/* Noise floor related decay for bandwidth detection: -2.2 dB/second */
@@ -483,8 +510,6 @@
}
kfft = celt_mode->mdct.kfft[0];
- if (tonal->count==0)
- tonal->mem_fill = 240;
tonal->hp_ener_accum += (float)downmix_and_resample(downmix, x,
&tonal->inmem[tonal->mem_fill], tonal->downmix_state,
IMIN(len, ANALYSIS_BUF_SIZE-tonal->mem_fill), offset, c1, c2, C, tonal->Fs);
@@ -500,6 +525,8 @@
if (tonal->write_pos>=DETECT_SIZE)
tonal->write_pos-=DETECT_SIZE;
+ is_silence = is_digital_silence32(tonal->inmem, ANALYSIS_BUF_SIZE, 1, lsb_depth);
+
ALLOC(in, 480, kiss_fft_cpx);
ALLOC(out, 480, kiss_fft_cpx);
ALLOC(tonality, 240, float);
@@ -518,6 +545,16 @@
&tonal->inmem[240], tonal->downmix_state, remaining,
offset+ANALYSIS_BUF_SIZE-tonal->mem_fill, c1, c2, C, tonal->Fs);
tonal->mem_fill = 240 + remaining;
+ if (is_silence)
+ {
+ /* On silence, copy the previous analysis. */
+ int prev_pos = tonal->write_pos-2;
+ if (prev_pos < 0)
+ prev_pos += DETECT_SIZE;
+ OPUS_COPY(info, &tonal->info[prev_pos], 1);
+ RESTORE_STACK;
+ return;
+ }
opus_fft(kfft, in, out, tonal->arch);
#ifndef FIXED_POINT
/* If there's any NaN on the input, the entire output will be NaN, so we only need to check one value. */
@@ -654,7 +691,7 @@
tonal->lowE[b] = logE[b];
tonal->highE[b] = MIN32(tonal->lowE[b]+15, tonal->highE[b]);
}
- relativeE += (logE[b]-tonal->lowE[b])/(1e-15f + (tonal->highE[b]-tonal->lowE[b]));
+ relativeE += (logE[b]-tonal->lowE[b])/(1e-5f + (tonal->highE[b]-tonal->lowE[b]));
L1=L2=0;
for (i=0;i<NB_FRAMES;i++)
@@ -896,9 +933,7 @@
/* Probability of speech or music vs noise */
info->activity_probability = frame_probs[1];
- /* It seems like the RNN tends to have a bias towards speech and this
- warping of the probabilities compensates for it. */
- info->music_prob = MAX16(1.f-10.f*(1.f-frame_probs[0]), MIN16(10.f*frame_probs[0], .12f+.69f*frame_probs[0]*(2.f-frame_probs[0])));
+ info->music_prob = frame_probs[0];
/*printf("%f %f %f\n", frame_probs[0], frame_probs[1], info->music_prob);*/
#ifdef MLP_TRAINING
@@ -940,7 +975,6 @@
analysis->analysis_offset -= frame_size;
}
- analysis_info->valid = 0;
tonality_get_info(analysis, analysis_info, frame_size);
}
diff --git a/third_party/opus/src/analysis.h b/third_party/opus/src/src/analysis.h
similarity index 99%
rename from third_party/opus/src/analysis.h
rename to third_party/opus/src/src/analysis.h
index 289c845..0b66555 100644
--- a/third_party/opus/src/analysis.h
+++ b/third_party/opus/src/src/analysis.h
@@ -74,6 +74,7 @@
int read_pos;
int read_subframe;
float hp_ener_accum;
+ int initialized;
float rnn_state[MAX_NEURONS];
opus_val32 downmix_state[3];
AnalysisInfo info[DETECT_SIZE];
diff --git a/third_party/opus/src/mapping_matrix.c b/third_party/opus/src/src/mapping_matrix.c
similarity index 98%
rename from third_party/opus/src/mapping_matrix.c
rename to third_party/opus/src/src/mapping_matrix.c
index 11a14ce..31298af 100644
--- a/third_party/opus/src/mapping_matrix.c
+++ b/third_party/opus/src/src/mapping_matrix.c
@@ -35,8 +35,6 @@
#include "opus_defines.h"
#include "mapping_matrix.h"
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
-
#define MATRIX_INDEX(nb_rows, row, col) (nb_rows * col + row)
opus_int32 mapping_matrix_get_size(int rows, int cols)
@@ -58,7 +56,8 @@
opus_int16 *mapping_matrix_get_data(const MappingMatrix *matrix)
{
- return (opus_int16*)((char*)matrix + align(sizeof(MappingMatrix)));
+ /* void* cast avoids clang -Wcast-align warning */
+ return (opus_int16*)(void*)((char*)matrix + align(sizeof(MappingMatrix)));
}
void mapping_matrix_init(MappingMatrix * const matrix,
@@ -377,4 +376,3 @@
0, 0, 0, 32767
};
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
diff --git a/third_party/opus/src/mapping_matrix.h b/third_party/opus/src/src/mapping_matrix.h
similarity index 96%
rename from third_party/opus/src/mapping_matrix.h
rename to third_party/opus/src/src/mapping_matrix.h
index 8645168..98bc82d 100644
--- a/third_party/opus/src/mapping_matrix.h
+++ b/third_party/opus/src/src/mapping_matrix.h
@@ -33,8 +33,6 @@
#ifndef MAPPING_MATRIX_H
#define MAPPING_MATRIX_H
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
-
#include "opus_types.h"
#include "opus_projection.h"
@@ -55,7 +53,7 @@
opus_int16 *mapping_matrix_get_data(const MappingMatrix *matrix);
void mapping_matrix_init(
- MappingMatrix * const st,
+ MappingMatrix * const matrix,
int rows,
int cols,
int gain,
@@ -132,6 +130,4 @@
}
#endif
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
-
#endif /* MAPPING_MATRIX_H */
diff --git a/third_party/opus/src/mlp.c b/third_party/opus/src/src/mlp.c
similarity index 71%
rename from third_party/opus/src/mlp.c
rename to third_party/opus/src/src/mlp.c
index f43a704..964c6a9 100644
--- a/third_party/opus/src/mlp.c
+++ b/third_party/opus/src/src/mlp.c
@@ -69,22 +69,29 @@
return .5f + .5f*tansig_approx(.5f*x);
}
-void compute_dense(const DenseLayer *layer, float *output, const float *input)
+static void gemm_accum(float *out, const opus_int8 *weights, int rows, int cols, int col_stride, const float *x)
{
int i, j;
+ for (i=0;i<rows;i++)
+ {
+ for (j=0;j<cols;j++)
+ out[i] += weights[j*col_stride + i]*x[j];
+ }
+}
+
+void compute_dense(const DenseLayer *layer, float *output, const float *input)
+{
+ int i;
int N, M;
int stride;
M = layer->nb_inputs;
N = layer->nb_neurons;
stride = N;
for (i=0;i<N;i++)
- {
- /* Compute update gate. */
- float sum = layer->bias[i];
- for (j=0;j<M;j++)
- sum += layer->input_weights[j*stride + i]*input[j];
- output[i] = WEIGHTS_SCALE*sum;
- }
+ output[i] = layer->bias[i];
+ gemm_accum(output, layer->input_weights, N, M, stride, input);
+ for (i=0;i<N;i++)
+ output[i] *= WEIGHTS_SCALE;
if (layer->sigmoid) {
for (i=0;i<N;i++)
output[i] = sigmoid_approx(output[i]);
@@ -96,45 +103,41 @@
void compute_gru(const GRULayer *gru, float *state, const float *input)
{
- int i, j;
+ int i;
int N, M;
int stride;
+ float tmp[MAX_NEURONS];
float z[MAX_NEURONS];
float r[MAX_NEURONS];
float h[MAX_NEURONS];
M = gru->nb_inputs;
N = gru->nb_neurons;
stride = 3*N;
+ /* Compute update gate. */
for (i=0;i<N;i++)
- {
- /* Compute update gate. */
- float sum = gru->bias[i];
- for (j=0;j<M;j++)
- sum += gru->input_weights[j*stride + i]*input[j];
- for (j=0;j<N;j++)
- sum += gru->recurrent_weights[j*stride + i]*state[j];
- z[i] = sigmoid_approx(WEIGHTS_SCALE*sum);
- }
+ z[i] = gru->bias[i];
+ gemm_accum(z, gru->input_weights, N, M, stride, input);
+ gemm_accum(z, gru->recurrent_weights, N, N, stride, state);
for (i=0;i<N;i++)
- {
- /* Compute reset gate. */
- float sum = gru->bias[N + i];
- for (j=0;j<M;j++)
- sum += gru->input_weights[N + j*stride + i]*input[j];
- for (j=0;j<N;j++)
- sum += gru->recurrent_weights[N + j*stride + i]*state[j];
- r[i] = sigmoid_approx(WEIGHTS_SCALE*sum);
- }
+ z[i] = sigmoid_approx(WEIGHTS_SCALE*z[i]);
+
+ /* Compute reset gate. */
for (i=0;i<N;i++)
- {
- /* Compute output. */
- float sum = gru->bias[2*N + i];
- for (j=0;j<M;j++)
- sum += gru->input_weights[2*N + j*stride + i]*input[j];
- for (j=0;j<N;j++)
- sum += gru->recurrent_weights[2*N + j*stride + i]*state[j]*r[j];
- h[i] = z[i]*state[i] + (1-z[i])*tansig_approx(WEIGHTS_SCALE*sum);
- }
+ r[i] = gru->bias[N + i];
+ gemm_accum(r, &gru->input_weights[N], N, M, stride, input);
+ gemm_accum(r, &gru->recurrent_weights[N], N, N, stride, state);
+ for (i=0;i<N;i++)
+ r[i] = sigmoid_approx(WEIGHTS_SCALE*r[i]);
+
+ /* Compute output. */
+ for (i=0;i<N;i++)
+ h[i] = gru->bias[2*N + i];
+ for (i=0;i<N;i++)
+ tmp[i] = state[i] * r[i];
+ gemm_accum(h, &gru->input_weights[2*N], N, M, stride, input);
+ gemm_accum(h, &gru->recurrent_weights[2*N], N, N, stride, tmp);
+ for (i=0;i<N;i++)
+ h[i] = z[i]*state[i] + (1-z[i])*tansig_approx(WEIGHTS_SCALE*h[i]);
for (i=0;i<N;i++)
state[i] = h[i];
}
diff --git a/third_party/opus/src/mlp.h b/third_party/opus/src/src/mlp.h
similarity index 100%
rename from third_party/opus/src/mlp.h
rename to third_party/opus/src/src/mlp.h
diff --git a/third_party/opus/src/src/mlp_data.c b/third_party/opus/src/src/mlp_data.c
new file mode 100644
index 0000000..ae4178d
--- /dev/null
+++ b/third_party/opus/src/src/mlp_data.c
@@ -0,0 +1,672 @@
+/*This file is automatically generated from a Keras model*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "mlp.h"
+
+static const opus_int8 layer0_weights[800] = {
+ -30, -9, 2, -12, 5, -1, 8, 9,
+ 9, 8, -13, 18, -17, -34, -5, 17,
+ -11, 0, -4, 10, 2, 10, 15, -8,
+ 2, -1, 0, 5, 13, -3, -16, 1,
+ -5, 3, 7, -28, -13, 6, 36, -3,
+ 19, -60, -17, -28, 7, -11, -30, -7,
+ 2, -42, -21, -3, 6, -22, 33, -9,
+ 7, -30, 21, -14, 24, -11, -20, -18,
+ -5, -12, 12, -49, -50, -49, 16, 9,
+ -37, -1, 9, 34, -13, -31, -31, 12,
+ 16, 44, -42, 2, -9, 8, -18, -6,
+ 9, 36, 19, 11, 13, 12, -21, 3,
+ -28, -12, 3, 33, 25, -14, 11, 1,
+ -94, -39, 18, -12, -11, -15, -7, 49,
+ 52, 10, -43, 9, 57, 8, 21, -6,
+ 14, -15, 44, -8, 7, -30, -13, -2,
+ -9, 25, -2, -127, 18, -11, -52, 26,
+ -27, 27, 10, -10, 7, 43, 6, -24,
+ 41, 10, -18, -27, 10, 17, 9, 10,
+ -17, -10, 20, -6, 22, 55, 35, -80,
+ 36, 25, -24, -36, 15, 9, -19, 88,
+ 19, 64, -51, -35, 17, 0, -7, 41,
+ -16, 27, 4, 15, -1, 18, -16, 47,
+ -39, -54, -8, 13, -25, -20, 102, -18,
+ -5, 44, 11, -28, 71, 2, -51, -5,
+ 5, 2, -83, -9, -29, 8, 21, -53,
+ 58, -37, -7, 13, 38, 9, 34, -1,
+ -41, 21, 4, -24, -36, -33, -21, 32,
+ 75, -2, 1, -68, -1, 47, -29, 32,
+ 20, 12, -65, -87, 5, 16, -12, 24,
+ 40, 15, 7, 19, -26, -17, 17, 6,
+ -2, -37, -30, -9, 32, -127, -39, 0,
+ -31, -27, 4, -22, 23, -6, -77, 35,
+ -61, 32, -37, -24, 13, -11, -1, -40,
+ -3, 17, -7, 13, 11, 59, -19, 10,
+ 6, -18, 0, 13, 3, -6, -23, 19,
+ 11, -17, 13, -1, -80, 40, -53, 69,
+ -29, -54, 0, -4, 33, -25, -2, 38,
+ 35, 36, -15, 46, 2, -13, -16, -8,
+ -8, 12, -24, -9, -55, -5, -9, 32,
+ 11, 7, 12, -18, -10, -86, -38, 54,
+ 37, -25, 18, -43, 7, -27, -27, -54,
+ 13, 9, 22, 70, 6, 35, -7, 23,
+ -15, -44, -6, 7, -66, -85, 32, 40,
+ -19, -9, -7, 12, -15, 7, 2, 6,
+ -35, 11, 28, 0, 26, 14, 1, 1,
+ 4, 12, 18, 35, 22, -18, -3, 14,
+ -1, 7, 14, -8, -14, -3, 4, -3,
+ -19, -7, -1, -25, -27, 25, -26, -2,
+ 33, -22, -27, -25, 4, -9, 7, 21,
+ 26, -30, 10, -9, -20, 11, 27, 10,
+ 5, -18, 14, -4, 2, -17, -5, -7,
+ -9, -13, 15, 29, 1, -10, -16, -10,
+ 35, 36, -7, -22, -44, 17, 30, 22,
+ 21, -1, 22, -11, 32, -8, -7, 5,
+ -10, 5, 30, -20, 29, -20, -34, 12,
+ -4, -6, 6, -13, 10, -5, -68, -1,
+ 24, 9, 19, -24, -64, 31, 19, 27,
+ -26, 75, -45, 41, 39, -42, 8, 6,
+ 23, -30, 16, -25, 30, 34, 8, -38,
+ -3, 18, 16, -31, 22, -4, -9, 1,
+ 20, 9, 38, -32, 0, -45, 0, -6,
+ -13, 11, -25, -32, -22, 31, -24, -11,
+ -11, -4, -4, 20, -34, 22, 20, 9,
+ -25, 27, -5, 28, -29, 29, 6, 21,
+ -6, -18, 54, 4, -46, 23, 21, -14,
+ -31, 36, -41, -24, 4, 22, 10, 11,
+ 7, 36, -32, -13, -52, -17, 24, 28,
+ -37, -36, -1, 24, 9, -38, 35, 48,
+ 18, 2, -1, 45, 10, 39, 24, -38,
+ 13, 8, -16, 8, 25, 11, 7, -29,
+ -11, 7, 20, -30, -38, -45, 14, -18,
+ -28, -9, 65, 61, 22, -53, -38, -16,
+ 36, 46, 20, -39, 32, -61, -6, -6,
+ -36, -33, -18, -28, 56, 101, 45, 11,
+ -28, -23, -29, -61, 20, -47, 2, 48,
+ 27, -17, 1, 40, 1, 3, -51, 15,
+ 35, 28, 22, 35, 53, -61, -29, 12,
+ -6, -21, 10, 3, -20, 2, -25, 1,
+ -6, 31, 11, -3, 1, -10, -52, 6,
+ 126, -105, 122, 127, -128, 127, 127, -128,
+ 127, 108, 12, 127, 48, -128, -36, -128,
+ 127, 127, -128, -128, 127, 89, -128, 127,
+ -128, -128, -128, 127, 127, -128, -128, -93,
+ -82, 20, 125, 65, -82, 127, 38, -74,
+ 81, 88, -88, 79, 51, -47, -111, -26,
+ 14, 83, -88, -112, 24, 35, -101, 98,
+ -99, -48, -45, 46, 83, -60, -79, 45,
+ -20, -41, 9, 4, 52, 54, 93, -10,
+ 4, 13, 3, 123, 6, 94, -111, -69,
+ -14, -31, 10, 12, 53, -79, -11, -21,
+ -2, -44, -72, 92, 65, -57, 56, -38,
+ 127, -56, -128, 127, 127, -128, 86, 117,
+ -75, -128, 127, -19, -99, -112, 127, -128,
+ 127, -48, 114, 118, -128, -128, 117, -17,
+ -6, 121, -128, 127, -128, 82, 54, -106,
+ 127, 127, -33, 100, -39, -23, 18, -78,
+ -34, -29, -1, -30, 127, -26, 127, -128,
+ 126, -128, 27, -23, -79, -120, -127, 127,
+ 72, 66, 29, 7, -66, -56, -117, -128
+};
+
+static const opus_int8 layer0_bias[32] = {
+ 51, -16, 1, 13, -5, -6, -16, -7,
+ 11, -6, 106, 26, 28, -14, 21, -29,
+ 7, 18, -18, -17, 21, -17, -9, 20,
+ -25, -3, -34, 48, 11, -13, -31, -20
+};
+
+static const opus_int8 layer1_weights[2304] = {
+ 22, -1, -7, 7, 29, -27, -31, -17,
+ -13, 33, 44, -8, 11, 33, 24, 78,
+ 15, 19, 30, -2, -24, 5, 49, 5,
+ 36, 29, -14, -11, -48, -33, 21, -42,
+ -38, -12, 55, -37, 54, -8, 1, 36,
+ 17, 0, 51, 31, 59, 7, -12, 53,
+ 4, 32, -14, 48, 5, -10, -16, -8,
+ 1, -16, -56, -24, -6, 18, -2, 23,
+ 6, 46, -6, -10, 20, 35, -44, -15,
+ -49, 36, 16, 5, -7, -79, -67, 12,
+ 70, -3, -79, -54, -85, -24, 47, -22,
+ 33, 21, 69, -1, 11, 22, 14, -16,
+ -16, -22, -28, -11, 11, -41, 31, -26,
+ -33, -19, -4, 27, 32, -50, 5, -10,
+ -38, -22, -8, 35, -31, 1, -41, -15,
+ -11, 44, 28, -17, -41, -23, 17, 2,
+ -23, -26, -13, -13, -17, 6, 14, -31,
+ -25, 9, -19, 39, -8, 4, 31, -1,
+ -45, -11, -28, -92, -46, -15, 21, 118,
+ -22, 45, -51, 11, -20, -20, -15, 13,
+ -21, -97, -29, -32, -23, -42, 94, 1,
+ 23, -8, 63, -3, -46, 19, -26, 32,
+ -40, -74, -26, 26, -4, -13, 30, -20,
+ -30, -25, -14, -31, -45, -43, 4, -60,
+ -48, -12, -34, 2, 2, 3, 13, 15,
+ 11, 16, 5, 46, -9, -55, -16, -57,
+ 29, 14, 38, -50, -2, -44, -11, -8,
+ 52, -27, -38, -7, 20, 47, 17, -59,
+ 0, 47, 46, -63, 35, -17, 19, 33,
+ 68, -19, 2, 15, -16, 28, -16, -103,
+ 26, -35, 47, -39, -60, 30, 31, -23,
+ -52, -13, 116, 47, -25, 30, 40, 30,
+ -22, 2, 12, -27, -18, 31, -10, 27,
+ -8, -66, 12, 14, 4, -26, -28, -13,
+ 3, 13, -26, -51, 37, 5, 2, -21,
+ 47, 3, 13, 25, -41, -27, -8, -4,
+ 5, -76, -33, 28, 10, 9, -46, -74,
+ 19, 28, 25, 31, 54, -55, 68, 38,
+ -24, -32, 2, 4, 68, 11, -1, 99,
+ 5, 16, -2, -74, 40, 26, -26, 33,
+ 31, -1, -68, 14, -6, 25, 9, 29,
+ 60, 61, 7, -7, 0, -24, 7, 77,
+ 4, -1, 16, -7, 13, -15, -19, 28,
+ -31, -24, -16, 37, 24, 13, 30, 10,
+ -30, 11, 11, -10, 22, 60, 28, 45,
+ -3, -40, -62, -5, -102, 9, -32, -27,
+ -54, 21, 15, -5, 37, -43, -11, 37,
+ -19, 47, -64, -128, -27, -114, 21, -66,
+ 59, 46, -3, -12, -87, -9, 4, 19,
+ -113, -36, 78, 57, -26, -38, -77, -10,
+ 6, 6, -75, 25, -97, -11, 33, -46,
+ 1, 13, -21, -33, -20, 16, -6, -3,
+ -11, -4, -27, 38, 8, -41, -2, -33,
+ 18, 19, -26, 1, -29, -22, -4, -14,
+ -55, -11, -80, -3, 11, 34, 90, 51,
+ 11, 17, 43, 36, 127, -32, 29, 103,
+ 9, 27, 13, 64, 56, 70, -14, 3,
+ -12, 10, 37, 3, 12, -22, -10, 46,
+ 28, 10, 20, 26, -24, 18, 9, 7,
+ 14, 34, -5, -7, 31, -14, -56, 11,
+ -18, -8, -17, -7, -10, -40, 10, -33,
+ -32, -43, 5, 9, 11, -4, 10, 50,
+ -12, -5, 46, 9, 7, 1, 11, 15,
+ 91, -17, 7, -50, 23, 6, -30, -99,
+ 0, -17, 14, 8, -10, -25, -30, -69,
+ -62, 31, 127, 114, -23, 101, -5, -54,
+ -6, -22, 7, -56, 39, 18, -29, 0,
+ 46, 8, -79, 4, -21, 18, -32, 62,
+ -12, -8, -12, -58, 31, -32, 17, 6,
+ -24, 25, 24, 9, -4, -19, 45, 6,
+ 17, -14, 5, -27, 16, -4, -41, 25,
+ -36, 5, 15, 12, 50, 27, 25, 23,
+ -44, -69, -9, -19, -48, -8, 4, 12,
+ -6, 13, -19, -30, -36, 26, 37, -1,
+ -3, -30, -42, -14, -10, -20, 26, -54,
+ -27, -44, 4, 73, -26, 90, 32, -69,
+ -29, -16, 3, 103, 15, -17, 37, 24,
+ -23, -31, 33, -37, -64, 25, 13, -81,
+ -28, -32, 27, 5, -35, -23, 15, -22,
+ 19, -7, 9, 30, 19, -23, 27, -13,
+ 43, 29, -29, -6, 9, -40, -33, -33,
+ -32, 9, 11, -48, -8, -23, -52, 46,
+ 17, -22, -42, 35, -15, -41, 16, 34,
+ 31, -42, -19, -11, 55, 7, -39, 89,
+ -11, -33, 20, -14, 22, 32, 3, -17,
+ -6, 14, 34, 1, 55, -21, -90, -8,
+ 18, 27, 13, -29, 21, 15, -33, -51,
+ -9, -11, 4, -16, -18, 23, -4, -4,
+ 48, 1, 7, 29, -14, -12, -16, 17,
+ 35, 8, 0, -7, -2, 9, 8, 17,
+ -6, 53, -32, -21, -50, 5, 99, -60,
+ -5, -53, 10, -31, 12, -5, 7, 80,
+ 36, 18, -31, 9, 98, 36, -63, -35,
+ 4, -13, -28, -24, 28, -13, 18, 16,
+ -1, -18, -34, 10, 20, 7, 4, 29,
+ 11, 25, -7, 36, 14, 45, 24, 1,
+ -16, 30, 6, 35, -6, -11, -24, 13,
+ -1, 27, 39, 20, 48, -11, -4, -13,
+ 28, 11, -31, -18, 31, -29, 22, -2,
+ -20, -16, 5, 30, -12, -28, -3, 93,
+ -16, 23, 18, -29, 6, -54, -37, 28,
+ -3, -3, -47, -3, -36, -55, -3, 41,
+ -10, 47, -2, 23, 42, -7, -71, -27,
+ 83, -64, 7, -24, 8, 26, -17, 15,
+ 12, 31, -30, -38, -13, -33, -56, 4,
+ -17, 20, 18, 1, -30, -5, -6, -31,
+ -14, -37, 0, 22, 10, -30, 37, -17,
+ 18, 6, 5, 23, -36, -32, 14, 18,
+ -13, -61, -52, -69, 44, -30, 16, 18,
+ -4, -25, 14, 81, 26, -8, -23, -59,
+ 52, -104, 17, 119, -32, 26, 17, 1,
+ 23, 45, 29, -64, -57, -14, 73, 21,
+ -13, -13, 9, -68, -7, -52, 3, 24,
+ -39, 44, -15, 27, 14, 19, -9, -28,
+ -11, 5, 3, -34, -2, 2, 22, -6,
+ -23, 4, 3, 13, -22, -13, -10, -18,
+ 29, 6, 44, -13, -24, -8, 2, 30,
+ 14, 43, 6, 17, -73, -6, -7, 20,
+ -80, -7, -7, -28, 15, -69, -38, -5,
+ -100, -35, 15, -79, 23, 29, -18, -27,
+ 21, -66, -37, 8, -22, -39, 48, 4,
+ -13, 1, -9, 11, -29, 22, 6, -49,
+ 32, -14, 47, -18, -4, 44, -52, -74,
+ 43, 30, 23, -14, 5, 0, -27, 4,
+ -7, 10, -4, 10, 1, -16, 11, -18,
+ -2, -5, 2, -11, 0, -20, -4, 38,
+ 74, 59, 39, 64, -10, 26, -3, -40,
+ -68, 3, -30, -51, 8, -19, -27, -46,
+ 51, 52, 54, 36, 90, 92, 14, 13,
+ -5, 0, 16, -62, 16, 11, -47, -37,
+ -6, -5, 21, 54, -57, 32, 42, -6,
+ 62, -9, 16, 21, 24, 9, -10, -4,
+ 33, 50, 13, -15, 1, -35, -48, 18,
+ -11, -17, -67, -13, 21, 38, -44, 36,
+ -16, 29, 17, 5, -10, 18, 17, -32,
+ 2, 8, 22, -56, -15, -32, 40, 43,
+ 19, 46, -7, -100, -96, 19, 53, 24,
+ 21, -26, -48, -101, -82, 61, 38, -85,
+ -28, -34, -1, 63, -5, -5, 39, 39,
+ -38, 32, -12, -28, 20, 40, -8, 2,
+ 31, 12, -35, -13, 20, -25, 30, 8,
+ 3, -13, -9, -20, 2, -13, 24, 37,
+ -10, 33, 6, 20, -16, -24, -6, -6,
+ -19, -5, 22, 21, 10, 11, -4, -39,
+ -1, 6, 49, 41, -15, -57, 21, -62,
+ 77, -69, -13, 0, -74, 1, -7, -38,
+ -8, 6, 63, 28, 4, 26, -52, 82,
+ 63, 13, 45, -33, 44, -52, -65, -21,
+ -46, -49, 64, -17, 32, 24, 68, -39,
+ -16, -5, -26, 28, 5, -61, -28, 2,
+ 24, 11, -12, -33, 9, -37, -3, -28,
+ 22, -37, -12, 19, 0, -18, -2, 14,
+ 1, 4, 8, -9, -2, 43, -17, -2,
+ -66, -31, 56, -40, -87, -36, -2, -4,
+ -42, -45, -1, 31, -43, -15, 27, 63,
+ -11, 32, -10, -33, 27, -19, 4, 15,
+ -26, -34, 29, -4, -39, -65, 14, -20,
+ -21, -17, -36, 13, 59, 47, -38, -33,
+ 13, -37, -8, -37, -7, -6, -76, -31,
+ -12, -46, 7, 24, -21, -30, -14, 9,
+ 15, -12, -13, 47, -27, -25, -1, -39,
+ 0, 20, -9, 6, 7, 4, 3, 7,
+ 39, 50, 22, -7, 14, -20, 1, 70,
+ -28, 29, -41, 10, -16, -5, -28, -2,
+ -37, 32, -18, 17, 62, -11, -20, -50,
+ 36, 21, -62, -12, -56, 52, 50, 17,
+ 3, 48, 44, -41, -25, 3, 16, -3,
+ 0, 33, -6, 15, 27, 34, -25, 22,
+ 9, 17, -11, 36, 16, -2, 12, 21,
+ -52, 45, -2, -10, 46, 21, -18, 67,
+ -28, -13, 30, 37, 42, 16, -9, 11,
+ 75, 7, -64, -40, -10, 29, 57, -23,
+ 5, 53, -77, 3, -17, -5, 47, -55,
+ -35, -36, -13, 52, -53, -71, 52, -111,
+ -23, -26, -28, 29, -43, 55, -19, 43,
+ -19, 54, -12, -33, -44, -39, -19, -10,
+ -31, -10, 21, 38, -57, -20, 2, -25,
+ 8, -6, 50, 12, 15, 25, -25, 15,
+ -30, -6, 9, 25, 37, 19, -4, 31,
+ -22, 2, 4, 2, 36, 7, 3, -34,
+ -80, 36, -10, -2, -5, 31, -36, 49,
+ -70, 20, -36, 21, 24, 25, -46, -51,
+ 36, -58, -48, -40, -10, 55, 71, 47,
+ 10, -1, 1, 2, -46, -68, 16, 13,
+ 0, -74, -29, 73, -52, -18, -11, 7,
+ -44, -82, -32, -70, -28, -1, -39, -68,
+ -6, -41, 12, -22, -16, 40, -11, -25,
+ 51, -9, 21, 4, 4, -34, 7, -78,
+ 16, 6, -38, -30, -2, -44, 32, 0,
+ 22, 64, 5, -72, -2, -14, -10, -16,
+ -8, -25, 12, 102, -58, 37, -10, -23,
+ 15, 49, 7, -7, 2, -20, -32, 45,
+ -6, 48, 28, 30, 33, -1, 22, -6,
+ 30, 65, -17, 29, 74, 37, -26, -10,
+ 15, -24, 19, -66, 22, -10, -31, -1,
+ -18, -9, 11, 37, -4, 45, 5, 41,
+ 17, 1, 1, 24, -58, 41, 5, -51,
+ 14, 8, 43, 16, -10, -1, 45, 32,
+ -64, 3, -33, -25, -3, -27, -68, 12,
+ 23, -11, -13, -37, -40, 4, -21, -12,
+ 32, -23, -19, 76, 41, -23, -24, -44,
+ -65, -1, -15, 1, 71, 63, 5, 20,
+ -3, 21, -23, 31, -32, 18, -2, 27,
+ 31, 46, -5, -39, -5, -35, 18, -18,
+ -40, -10, 3, 12, 2, -2, -22, 40,
+ 5, -6, 60, 36, 3, 29, -27, 10,
+ 25, -54, 5, 26, 39, 35, -24, -37,
+ 30, -91, 28, -4, -21, -27, -39, -6,
+ 5, 12, -128, 38, -16, 29, -95, -29,
+ 82, -2, 35, 2, 12, 8, -22, 10,
+ 80, -47, 2, -25, -73, -79, 16, -30,
+ -32, -66, 48, 21, -45, -11, -47, 14,
+ -27, -17, -7, 15, -44, -14, -44, -26,
+ -32, 26, -23, 17, -7, -28, 26, -6,
+ 28, 6, -26, 2, 13, -14, -23, -14,
+ 19, 46, 16, 2, -33, -21, 28, -17,
+ -42, 44, -37, 1, -39, 28, 84, -46,
+ 15, 10, 13, -44, 72, -26, 26, 32,
+ -28, -12, -83, 2, 10, -30, -44, -10,
+ -28, 53, 45, 65, 0, -25, 57, 36,
+ -33, 6, 29, 44, -53, 11, 19, -2,
+ -27, 35, 32, 49, 4, 23, 38, 36,
+ 24, 10, 51, -39, 4, -7, 26, 37,
+ -35, 11, -47, -18, 28, 16, -35, 42,
+ 17, -21, -41, 28, 14, -12, 11, -45,
+ 7, -43, -15, 18, -5, 38, -40, -50,
+ -30, -21, 9, -98, 13, 12, 23, 75,
+ -56, -7, -3, -4, -1, -34, 12, -49,
+ 11, 26, -18, -28, -17, 33, 13, -14,
+ 40, 24, -72, -37, 10, 17, -6, 22,
+ 16, 16, -6, -12, -30, -14, 10, 40,
+ -23, 12, 15, -3, -15, 13, -56, -4,
+ -30, 1, -3, -17, 27, 50, -5, 64,
+ -36, -19, 7, 29, 22, 25, 9, -16,
+ -58, -69, -40, -61, -71, -14, 42, 93,
+ 26, 11, -6, -58, -11, 70, -52, 19,
+ 9, -30, -33, 11, -37, -47, -21, -22,
+ -40, 10, 47, 4, -23, 17, 48, 41,
+ -48, 14, 10, 15, 34, -23, -2, -47,
+ 23, -32, -13, -10, -26, -26, -4, 16,
+ 38, -14, 0, -12, -7, -7, 20, 44,
+ -1, -32, -27, -16, 4, -6, -18, 14,
+ 5, 4, -29, 28, 7, -7, 15, -11,
+ -20, -45, -36, 16, 84, 34, -59, -30,
+ 22, 126, 8, 68, 79, -17, 21, -68,
+ 37, 5, 15, 63, 49, 127, -90, 85,
+ 43, 7, 16, 9, 6, -45, -57, -43,
+ 57, 11, -23, -11, -29, 60, -26, 0,
+ 7, 42, -24, 10, 23, -25, 8, -7,
+ -40, 19, -17, 35, 4, 27, -39, -91,
+ 27, -36, 34, 2, 16, -24, 25, 7,
+ -21, 5, 17, 10, -22, -30, 9, -17,
+ -61, -26, 33, 21, 58, -51, -14, 69,
+ -38, 20, 7, 80, -4, -65, -6, -27,
+ 53, -12, 47, -1, -15, 1, 60, 102,
+ -79, -4, 12, 9, 22, 37, -8, -4,
+ 37, 2, -3, -15, -16, -11, -5, 19,
+ -6, -43, 20, -25, -18, 10, -27, 0,
+ -28, -27, -11, 10, -18, -2, -4, -16,
+ 26, 14, -6, 7, -6, 1, 53, -2,
+ -29, 23, 9, -30, -6, -4, -6, 56,
+ 70, 0, -33, -20, -17, -9, -24, 46,
+ -5, -105, 47, -46, -51, 20, 20, -53,
+ -81, -1, -7, 75, -5, -21, -65, 12,
+ -52, 22, -50, -12, 49, 54, 76, -81,
+ 10, 45, -41, -59, 18, -19, 25, 14,
+ -31, -53, -5, 12, 31, 84, -23, 2,
+ 7, 2, 10, -32, 39, -2, -12, 1,
+ -9, 0, -10, -11, 9, 15, -8, -2,
+ 2, -1, 10, 14, -5, -40, 19, -7,
+ -7, 26, -4, 2, 1, -27, 35, 32,
+ 21, -31, 26, 43, -9, 4, -32, 40,
+ -62, -52, 36, 22, 38, 22, 36, -96,
+ 6, -10, -23, -49, 15, -33, -18, -3,
+ 0, 41, 21, -19, 21, 23, -39, -23,
+ -6, 6, 47, 56, 4, 74, 0, -98,
+ 29, -47, -14, -36, 21, -22, 22, 16,
+ 13, 12, 16, -5, 13, 17, -13, -15,
+ 1, -34, -26, 26, 12, 32, 27, 13,
+ -67, 27, 2, 8, 10, 18, 16, 20,
+ -17, -17, 57, -64, 5, 14, 19, 31,
+ -18, -44, -46, -16, 4, -25, 17, -126,
+ -24, 39, 4, 8, 55, -25, -34, 39,
+ -16, 3, 9, 71, 72, -31, -55, 6,
+ 10, -25, 32, -85, -21, 18, -8, 15,
+ 12, -27, -7, 1, -21, -2, -5, 48,
+ -16, 18, 1, -22, -26, 16, 14, -31,
+ 27, -6, -15, -21, 4, -14, 18, -36
+};
+
+static const opus_int8 layer1_recur_weights[1728] = {
+ 20, 67, -99, 12, 41, -25, 49, -44,
+ 35, 81, 110, 47, 34, -66, -14, 14,
+ -60, 34, 29, -73, 10, 41, 35, 89,
+ 7, -35, 22, 7, 27, -20, -6, 56,
+ 26, 66, 6, 33, -55, 53, 1, -21,
+ 14, 17, 68, 55, 59, 0, 18, -9,
+ 5, -41, 6, -5, -114, -12, 29, 42,
+ -23, 10, 81, -27, 20, -53, -30, -62,
+ 40, 95, 25, -4, 3, 18, -8, -15,
+ -29, -82, 2, -57, -3, -61, -29, -29,
+ 49, 2, -55, 5, -69, -99, -49, -51,
+ 6, -25, 12, 89, 44, -33, 5, 41,
+ 1, 23, -37, -37, -28, -48, 3, 4,
+ -41, -30, -57, -35, -39, -1, -13, -56,
+ -5, 50, 49, 41, -4, -4, 33, -22,
+ -1, 33, 34, 18, 40, -42, 12, 1,
+ -6, -2, 18, 17, 39, 44, 11, 65,
+ -60, -45, 10, 91, 21, 9, -62, -11,
+ 8, 69, 37, 24, -30, 21, 26, -27,
+ 1, -28, 24, 66, -8, 6, -71, 34,
+ 24, 44, 58, -78, -19, 57, 17, -60,
+ 1, 12, -3, -1, -40, 22, 11, -5,
+ 25, 12, 1, 72, 79, 7, -50, 23,
+ 18, 13, 21, -11, -20, 5, 77, -94,
+ 24, 15, 57, -51, 3, 36, 53, -1,
+ 4, 14, 30, -31, 22, 40, 32, -11,
+ -34, -36, -59, 58, 25, 21, -54, -23,
+ 40, 46, 18, 0, 12, 54, -96, -99,
+ -59, 5, 119, -38, 50, 55, 12, -16,
+ 67, 0, 34, 35, 39, 35, -1, 69,
+ 24, 27, -30, -35, -4, -70, 2, -44,
+ -7, -6, 19, -9, 60, 44, -21, -10,
+ 37, 43, -16, -3, 30, -15, -65, 31,
+ -55, 18, -98, 76, 64, 25, 24, -18,
+ -7, -68, -10, 38, 27, -60, 36, 33,
+ 16, 30, 34, -39, -37, 31, 12, 53,
+ -54, 14, -26, -49, -128, -13, -5, -22,
+ -11, -85, 55, -8, -51, -11, -33, -10,
+ -31, -76, -41, 23, 44, -40, -54, -127,
+ -101, 19, -23, -15, 15, 27, 58, -60,
+ 8, 14, -33, 1, 48, -9, -11, -123,
+ 3, 53, 23, 4, -28, 22, 2, -29,
+ -67, 36, 12, 7, 55, -21, 88, 20,
+ -1, -21, -17, 3, 41, 32, -10, -14,
+ -5, -57, 67, 57, 21, 23, -2, -27,
+ -73, -24, 120, 21, 18, -35, 42, -7,
+ 3, -45, -25, 76, -34, 50, 11, -54,
+ -91, 3, -113, -20, -5, 47, 15, -47,
+ 17, 27, -3, -26, -7, 10, 7, 74,
+ -40, 64, -7, -5, -24, -49, -24, -3,
+ -10, 27, -17, -8, -3, 14, -27, 33,
+ 13, 39, 28, -7, -38, 29, 16, 44,
+ 19, 55, -3, 9, -13, -57, 43, 43,
+ 31, 0, -93, -17, 19, -56, 4, -12,
+ -25, 37, -85, -13, -118, 33, -17, 56,
+ 71, -80, -4, 6, -11, -18, 47, -52,
+ 25, 9, 48, -107, 1, 21, 20, -3,
+ 10, -16, -4, 24, 17, 31, -61, -18,
+ -50, 24, -10, 12, 71, 26, 11, -3,
+ 4, 1, 0, -7, -40, 18, 38, -34,
+ 38, 17, 8, -34, 2, 21, 123, -32,
+ -26, 43, 14, -34, -1, -9, 37, -16,
+ 6, -17, -62, 68, 22, 17, 11, -75,
+ 33, -80, 62, -9, -75, 76, 36, -41,
+ -8, -40, -11, -71, 40, -39, 62, -49,
+ -81, 16, -9, -52, 52, 61, 17, -103,
+ -27, -10, -8, -54, -57, 21, 23, -16,
+ -52, 36, 18, 10, -5, 8, 15, -29,
+ 5, -19, -37, 8, -53, 6, 19, -37,
+ 38, -17, 48, 10, 0, 81, 46, 70,
+ -29, 101, 11, 44, -44, -3, 24, 11,
+ 3, 14, -9, 11, 14, -45, 13, 46,
+ -3, -57, 68, 44, 63, 98, 25, -28,
+ -23, 15, 32, -10, 53, -6, -2, -9,
+ -6, 16, -107, -11, -11, -28, 59, 57,
+ -22, 38, 42, 83, 27, 5, 29, -30,
+ 12, -21, -13, 31, 38, -21, 58, -10,
+ -10, -15, -2, -5, 11, 12, -73, -28,
+ -38, 22, 2, -25, 73, -52, -12, -55,
+ 32, -63, 21, 51, 33, 52, -26, 55,
+ -26, -26, 57, -32, -4, -52, -61, 21,
+ -33, -91, -51, 69, -90, -53, -38, -44,
+ 12, -76, -20, 77, -45, -7, 86, 43,
+ -109, -33, -105, -40, -121, -10, 0, -72,
+ 45, -51, -75, -49, -38, -1, -62, 18,
+ -1, 30, -44, -14, -10, -67, 40, -10,
+ -34, 46, -64, -32, 29, -13, 33, 3,
+ -32, -5, 28, -27, -25, 93, 24, 68,
+ -40, 57, 23, -3, -21, -58, 17, -39,
+ -17, -22, -89, 11, 18, -46, 27, 24,
+ 46, 127, 61, 87, 31, 127, -36, 47,
+ -23, 47, 127, -24, 110, 122, 30, 100,
+ 0, 96, -12, 6, 50, 44, -13, 73,
+ 4, 55, -11, -15, 49, 42, -6, 20,
+ -35, 58, 18, 38, 42, 72, 19, -21,
+ 11, 9, -37, 7, 29, 31, 16, -17,
+ 13, -50, 19, 5, -23, 51, -16, -5,
+ 4, -24, 76, 10, -53, -28, -7, -65,
+ 74, 40, -16, -29, 32, -16, -49, -35,
+ -3, 59, -96, -50, -43, -43, -61, -15,
+ -8, -36, -34, -33, -14, 11, -3, -39,
+ 4, -114, -123, -11, -49, -21, 14, -56,
+ 1, 43, -63, 26, 40, 18, -10, -26,
+ -14, -15, -35, -35, -11, 32, -44, -67,
+ 2, 22, 7, 3, -9, -30, -51, -28,
+ 28, 6, -22, 16, 34, -25, -52, -54,
+ -8, -6, 5, 8, 20, -16, -17, -44,
+ 27, 3, 31, -5, -48, -1, -3, 116,
+ 11, 71, -31, -47, 109, 50, -22, -12,
+ -57, 32, 66, 8, -25, -93, -54, -10,
+ 19, -76, -34, 97, 48, -36, -18, -30,
+ -39, -26, -12, 28, 14, 12, -12, -31,
+ 38, 2, 10, 4, -40, 20, 16, -61,
+ 2, 64, 39, 5, 15, 33, 40, -61,
+ -49, 93, -10, 33, 28, -11, -27, -18,
+ 39, -62, -6, -6, 62, 11, -8, 38,
+ -67, 12, 27, 39, -27, 123, -18, -6,
+ -65, 83, -64, 20, 19, -11, 33, 24,
+ 17, 56, 78, 7, -15, 54, -101, -9,
+ 115, -96, 50, 51, 35, 34, 27, 37,
+ -40, -11, 8, -36, 42, -45, 2, -23,
+ 0, 67, -8, -9, -13, 50, -14, -27,
+ 4, 0, -8, -14, 30, -9, 29, 15,
+ 9, -38, 37, -8, 50, -46, 54, 41,
+ -11, -8, -11, -26, 39, 45, 14, -26,
+ -17, -27, 69, 38, 39, 98, 66, 0,
+ 42, 123, -101, -19, -83, 117, -32, 56,
+ 10, 12, -88, 79, -53, 56, 63, 95,
+ -62, 9, 36, -13, -79, -16, 37, -46,
+ 35, -34, 14, 17, -54, 5, 21, -7,
+ 7, 63, 56, 15, 27, -76, -25, 4,
+ -26, -63, 28, -67, -52, 43, -47, -70,
+ 40, -12, 40, -66, -37, 0, 35, 37,
+ -53, 4, -17, -51, 11, 21, 14, -34,
+ -4, 24, -42, 29, 22, 7, 28, 12,
+ 37, 39, -39, -19, 65, -60, -50, -2,
+ 1, 82, 39, 19, -23, -43, -22, -67,
+ -35, -34, 32, 102, 81, 127, 36, 67,
+ -45, 1, -67, -52, -4, 35, 20, 28,
+ 71, 86, -35, -9, -83, -34, 12, 9,
+ -23, 2, 14, 28, -23, 7, -25, 45,
+ 7, 17, -37, 0, -19, 31, 26, 40,
+ -27, -16, 17, 5, -21, 23, 24, 96,
+ -55, 52, -19, -14, -6, 1, 50, -34,
+ 86, -53, 38, 2, -52, -36, -13, 60,
+ -85, -120, 32, 7, -12, 22, 70, -7,
+ -94, 38, -76, -31, -20, 15, -28, 7,
+ 6, 40, 53, 88, 3, 38, 18, -8,
+ -22, -23, 51, 37, -9, 13, -32, 25,
+ -21, 27, 31, 20, 18, -9, -13, 1,
+ 21, -24, -13, 39, 15, -11, -29, -36,
+ 18, 15, 8, 27, 21, -94, -1, -22,
+ 49, 66, -1, 6, -3, -40, -18, 6,
+ 28, 12, 33, -59, 62, 60, -48, 90,
+ -1, 108, 9, 18, -2, 27, 77, -65,
+ 82, -48, -38, -19, -11, 127, 50, 66,
+ 18, -13, -22, 60, -38, 40, -14, -26,
+ -13, 38, 67, 57, 30, 33, 26, 36,
+ 38, -17, 27, -28, 20, 12, -64, 18,
+ 5, -33, -27, 13, -26, 32, 35, -5,
+ -48, -14, 92, 43, -47, -14, 40, 11,
+ 51, 66, 22, -63, -16, -61, 4, -28,
+ 27, 20, -33, -30, -21, -29, -53, 31,
+ -40, 24, 43, -4, -19, 21, 67, 20,
+ 100, -16, -93, 78, -6, -18, -52, -37,
+ -9, 66, -31, -8, 26, 18, 4, 24,
+ -22, 17, -2, -13, 27, 0, 8, -18,
+ -25, 5, -21, -24, -7, 18, -93, 21,
+ 7, 2, -75, 69, 50, -5, -15, -17,
+ 60, -42, 55, 1, -4, 3, 10, 46,
+ 16, -13, 45, -7, -10, -44, -108, 49,
+ 2, -15, -64, -12, -72, 32, -38, -45,
+ 10, -54, 13, -13, -27, -36, -64, 58,
+ -62, -101, 88, -86, -71, -39, -9, -128,
+ 32, 15, -4, 54, -16, -39, -26, -36,
+ 46, 48, -64, -10, 19, 30, -13, 34,
+ -8, 50, 60, -22, -6, -11, -30, 5,
+ 50, 32, 56, 0, 25, 6, 68, 11,
+ -29, 45, -9, -12, 4, 1, 18, -49,
+ 0, -38, -19, 90, 29, 35, 51, 8,
+ -48, 96, -1, -12, -9, -32, -63, -65,
+ -7, 38, 89, 28, -85, -28, -23, -25,
+ -128, 56, 79, -36, 99, -6, -37, 7,
+ -13, -69, -46, -29, 25, 64, -21, 17,
+ 1, 42, -66, 1, 80, 26, -32, 21,
+ 15, 15, 6, 6, -10, 15, 127, 5,
+ 38, 27, 87, -57, -25, 11, 72, -21,
+ -5, 11, -13, -66, 78, 36, -3, 41,
+ -21, 8, -33, 23, 73, 28, 57, -25,
+ -5, 4, -22, -47, 15, 4, -57, -72,
+ 33, 1, 18, 2, 53, -71, -99, -21,
+ -3, -111, 108, 71, -14, 82, 25, 61,
+ -48, 5, 9, -51, -20, -25, -3, 14,
+ -33, 14, -3, -34, 22, 12, -19, -38,
+ -16, 2, 21, 16, 26, -31, 75, 44,
+ -31, 16, 26, 66, 17, -9, -22, -22,
+ 22, -44, 22, 27, 2, 58, -14, 10,
+ -73, -42, 55, -25, -61, 72, -1, 30,
+ -58, -25, 63, 26, -48, -40, 26, -30,
+ 60, 8, -17, -1, -18, -20, 43, -20,
+ -4, -28, 127, -106, 29, 70, 64, -27,
+ 39, -33, -5, -88, -40, -52, 26, 44,
+ -17, 23, 2, -49, 22, -9, -8, 86,
+ 49, -43, -60, 1, 10, 45, 36, -53,
+ -4, 33, 38, 48, -72, 1, 19, 21,
+ -65, 4, -5, -62, 27, -25, 17, -6,
+ 6, -45, -39, -46, 4, 26, 127, -9,
+ 18, -33, -18, -3, 33, 2, -5, 15,
+ -26, -22, -117, -63, -17, -59, 61, -74,
+ 7, -47, -58, -128, -67, 15, -16, -128,
+ 12, 2, 20, 9, -48, -40, 43, 3,
+ -40, -16, -38, -6, -22, -28, -16, -59,
+ -22, 6, -5, 11, -12, -66, -40, 27,
+ -62, -44, -19, 38, -3, 39, -8, 40,
+ -24, 13, 21, 50, -60, -22, 53, -29,
+ -6, 1, 22, -59, 0, 17, -39, 115
+};
+
+static const opus_int8 layer1_bias[72] = {
+ -42, 20, 16, 0, 105, 60, 1, -97,
+ 24, 60, 18, 13, 62, 25, 127, 34,
+ 79, 55, 118, 127, 95, 31, -4, 87,
+ 21, 12, 2, -14, 18, 23, 8, 17,
+ -1, -8, 5, 4, 24, 37, 21, 13,
+ 36, 13, 17, 18, 37, 30, 33, 1,
+ 8, -16, -11, -5, -31, -3, -5, 0,
+ 6, 3, 58, -7, -1, -16, 5, -13,
+ 16, 10, -2, -14, 11, -4, 3, -11
+};
+
+static const opus_int8 layer2_weights[48] = {
+ -113, -88, 31, -128, -126, -61, 85, -35,
+ 118, -128, -61, 127, -128, -17, -128, 127,
+ 104, -9, -128, 33, 45, 127, 5, 83,
+ 84, -128, -85, -128, -45, 48, -53, -128,
+ 46, 127, -17, 125, 117, -41, -117, -91,
+ -127, -68, -1, -89, -80, 32, 106, 7
+};
+
+static const opus_int8 layer2_bias[2] = {
+ 14, 117
+};
+
+const DenseLayer layer0 = {
+ layer0_bias,
+ layer0_weights,
+ 25, 32, 0
+};
+
+const GRULayer layer1 = {
+ layer1_bias,
+ layer1_weights,
+ layer1_recur_weights,
+ 32, 24
+};
+
+const DenseLayer layer2 = {
+ layer2_bias,
+ layer2_weights,
+ 24, 2, 1
+};
+
diff --git a/third_party/opus/src/opus.c b/third_party/opus/src/src/opus.c
similarity index 99%
rename from third_party/opus/src/opus.c
rename to third_party/opus/src/src/opus.c
index cdbd13a..538b5ea 100644
--- a/third_party/opus/src/opus.c
+++ b/third_party/opus/src/src/opus.c
@@ -252,7 +252,7 @@
/* Number of frames encoded in bits 0 to 5 */
ch = *data++;
count = ch&0x3F;
- if (count <= 0 || framesize*count > 5760)
+ if (count <= 0 || framesize*(opus_int32)count > 5760)
return OPUS_INVALID_PACKET;
len--;
/* Padding flag is bit 6 */
diff --git a/third_party/opus/src/opus_compare.c b/third_party/opus/src/src/opus_compare.c
similarity index 100%
rename from third_party/opus/src/opus_compare.c
rename to third_party/opus/src/src/opus_compare.c
diff --git a/third_party/opus/src/opus_decoder.c b/third_party/opus/src/src/opus_decoder.c
similarity index 100%
rename from third_party/opus/src/opus_decoder.c
rename to third_party/opus/src/src/opus_decoder.c
diff --git a/third_party/opus/src/opus_demo.c b/third_party/opus/src/src/opus_demo.c
similarity index 100%
rename from third_party/opus/src/opus_demo.c
rename to third_party/opus/src/src/opus_demo.c
diff --git a/third_party/opus/src/opus_encoder.c b/third_party/opus/src/src/opus_encoder.c
similarity index 97%
rename from third_party/opus/src/opus_encoder.c
rename to third_party/opus/src/src/opus_encoder.c
index 1c5a8b3..844b08d 100644
--- a/third_party/opus/src/opus_encoder.c
+++ b/third_party/opus/src/src/opus_encoder.c
@@ -837,7 +837,7 @@
#ifndef DISABLE_FLOAT_API
-static int is_digital_silence(const opus_val16* pcm, int frame_size, int channels, int lsb_depth)
+int is_digital_silence(const opus_val16* pcm, int frame_size, int channels, int lsb_depth)
{
int silence = 0;
opus_val32 sample_max = 0;
@@ -1140,21 +1140,19 @@
if (st->silk_mode.complexity >= 7 && st->Fs>=16000)
#endif
{
- if (is_digital_silence(pcm, frame_size, st->channels, lsb_depth))
- {
- is_silence = 1;
- } else {
- analysis_read_pos_bak = st->analysis.read_pos;
- analysis_read_subframe_bak = st->analysis.read_subframe;
- run_analysis(&st->analysis, celt_mode, analysis_pcm, analysis_size, frame_size,
- c1, c2, analysis_channels, st->Fs,
- lsb_depth, downmix, &analysis_info);
- }
+ is_silence = is_digital_silence(pcm, frame_size, st->channels, lsb_depth);
+ analysis_read_pos_bak = st->analysis.read_pos;
+ analysis_read_subframe_bak = st->analysis.read_subframe;
+ run_analysis(&st->analysis, celt_mode, analysis_pcm, analysis_size, frame_size,
+ c1, c2, analysis_channels, st->Fs,
+ lsb_depth, downmix, &analysis_info);
/* Track the peak signal energy */
if (!is_silence && analysis_info.activity_probability > DTX_ACTIVITY_THRESHOLD)
st->peak_signal_energy = MAX32(MULT16_32_Q15(QCONST16(0.999f, 15), st->peak_signal_energy),
compute_frame_energy(pcm, frame_size, st->channels, st->arch));
+ } else if (st->analysis.initialized) {
+ tonality_analysis_reset(&st->analysis);
}
#else
(void)analysis_pcm;
@@ -1338,6 +1336,14 @@
equiv_rate = compute_equiv_rate(st->bitrate_bps, st->stream_channels, st->Fs/frame_size,
st->use_vbr, 0, st->silk_mode.complexity, st->silk_mode.packetLossPercentage);
+ /* Allow SILK DTX if DTX is enabled but the generalized DTX cannot be used,
+ e.g. because of the complexity setting or sample rate. */
+#ifndef DISABLE_FLOAT_API
+ st->silk_mode.useDTX = st->use_dtx && !(analysis_info.valid || is_silence);
+#else
+ st->silk_mode.useDTX = st->use_dtx;
+#endif
+
/* Mode selection depending on application and signal type */
if (st->application == OPUS_APPLICATION_RESTRICTED_LOWDELAY)
{
@@ -1386,13 +1392,7 @@
if (st->silk_mode.useInBandFEC && st->silk_mode.packetLossPercentage > (128-voice_est)>>4)
st->mode = MODE_SILK_ONLY;
/* When encoding voice and DTX is enabled but the generalized DTX cannot be used,
- because of complexity and sampling frequency settings, switch to SILK DTX and
- set the encoder to SILK mode */
-#ifndef DISABLE_FLOAT_API
- st->silk_mode.useDTX = st->use_dtx && !(analysis_info.valid || is_silence);
-#else
- st->silk_mode.useDTX = st->use_dtx;
-#endif
+ use SILK in order to make use of its DTX. */
if (st->silk_mode.useDTX && voice_est > 100)
st->mode = MODE_SILK_ONLY;
#endif
@@ -2152,6 +2152,8 @@
RESTORE_STACK;
return 1;
}
+ } else {
+ st->nb_no_activity_frames = 0;
}
#endif
@@ -2629,7 +2631,6 @@
goto bad_arg;
}
st->variable_duration = value;
- celt_encoder_ctl(celt_enc, OPUS_SET_EXPERT_FRAME_DURATION(value));
}
break;
case OPUS_GET_EXPERT_FRAME_DURATION_REQUEST:
@@ -2726,7 +2727,33 @@
ret = celt_encoder_ctl(celt_enc, OPUS_SET_ENERGY_MASK(value));
}
break;
-
+ case OPUS_GET_IN_DTX_REQUEST:
+ {
+ opus_int32 *value = va_arg(ap, opus_int32*);
+ if (!value)
+ {
+ goto bad_arg;
+ }
+ if (st->silk_mode.useDTX && (st->prev_mode == MODE_SILK_ONLY || st->prev_mode == MODE_HYBRID)) {
+ /* DTX determined by Silk. */
+ silk_encoder *silk_enc = (silk_encoder*)((char*)st+st->silk_enc_offset);
+ *value = silk_enc->state_Fxx[0].sCmn.noSpeechCounter >= NB_SPEECH_FRAMES_BEFORE_DTX;
+ /* Stereo: check second channel unless only the middle channel was encoded. */
+ if(*value == 1 && st->silk_mode.nChannelsInternal == 2 && silk_enc->prev_decode_only_middle == 0) {
+ *value = silk_enc->state_Fxx[1].sCmn.noSpeechCounter >= NB_SPEECH_FRAMES_BEFORE_DTX;
+ }
+ }
+#ifndef DISABLE_FLOAT_API
+ else if (st->use_dtx) {
+ /* DTX determined by Opus. */
+ *value = st->nb_no_activity_frames >= NB_SPEECH_FRAMES_BEFORE_DTX;
+ }
+#endif
+ else {
+ *value = 0;
+ }
+ }
+ break;
case CELT_GET_MODE_REQUEST:
{
const CELTMode ** value = va_arg(ap, const CELTMode**);
diff --git a/third_party/opus/src/opus_multistream.c b/third_party/opus/src/src/opus_multistream.c
similarity index 100%
rename from third_party/opus/src/opus_multistream.c
rename to third_party/opus/src/src/opus_multistream.c
diff --git a/third_party/opus/src/opus_multistream_decoder.c b/third_party/opus/src/src/opus_multistream_decoder.c
similarity index 98%
rename from third_party/opus/src/opus_multistream_decoder.c
rename to third_party/opus/src/src/opus_multistream_decoder.c
index f767ea0..a2837c3 100644
--- a/third_party/opus/src/opus_multistream_decoder.c
+++ b/third_party/opus/src/src/opus_multistream_decoder.c
@@ -43,10 +43,6 @@
static void validate_ms_decoder(OpusMSDecoder *st)
{
validate_layout(&st->layout);
-#ifdef OPUS_ARCHMASK
- celt_assert(st->arch >= 0);
- celt_assert(st->arch <= OPUS_ARCHMASK);
-#endif
}
#define VALIDATE_MS_DECODER(st) validate_ms_decoder(st)
#else
@@ -201,6 +197,11 @@
ALLOC_STACK;
VALIDATE_MS_DECODER(st);
+ if (frame_size <= 0)
+ {
+ RESTORE_STACK;
+ return OPUS_BAD_ARG;
+ }
/* Limit frame_size to avoid excessive stack allocations. */
MUST_SUCCEED(opus_multistream_decoder_ctl(st, OPUS_GET_SAMPLE_RATE(&Fs)));
frame_size = IMIN(frame_size, Fs/25*3);
@@ -250,8 +251,11 @@
}
packet_offset = 0;
ret = opus_decode_native(dec, data, len, buf, frame_size, decode_fec, s!=st->layout.nb_streams-1, &packet_offset, soft_clip);
- data += packet_offset;
- len -= packet_offset;
+ if (!do_plc)
+ {
+ data += packet_offset;
+ len -= packet_offset;
+ }
if (ret <= 0)
{
RESTORE_STACK;
@@ -486,7 +490,7 @@
OpusDecoder **value;
stream_id = va_arg(ap, opus_int32);
if (stream_id<0 || stream_id >= st->layout.nb_streams)
- ret = OPUS_BAD_ARG;
+ goto bad_arg;
value = va_arg(ap, OpusDecoder**);
if (!value)
{
diff --git a/third_party/opus/src/opus_multistream_encoder.c b/third_party/opus/src/src/opus_multistream_encoder.c
similarity index 94%
rename from third_party/opus/src/opus_multistream_encoder.c
rename to third_party/opus/src/src/opus_multistream_encoder.c
index aa48a61..93204a1 100644
--- a/third_party/opus/src/opus_multistream_encoder.c
+++ b/third_party/opus/src/src/opus_multistream_encoder.c
@@ -101,7 +101,6 @@
return (opus_val32*)(void*)ptr;
}
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
static int validate_ambisonics(int nb_channels, int *nb_streams, int *nb_coupled_streams)
{
int order_plus_one;
@@ -124,7 +123,6 @@
*nb_coupled_streams = nondiegetic_channels != 0;
return 1;
}
-#endif
static int validate_encoder_layout(const ChannelLayout *layout)
{
@@ -414,12 +412,10 @@
{
nb_streams=channels;
nb_coupled_streams=0;
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
- } else if (mapping_family==254)
+ } else if (mapping_family==2)
{
if (!validate_ambisonics(channels, &nb_streams, &nb_coupled_streams))
return 0;
-#endif
} else
return 0;
size = opus_multistream_encoder_get_size(nb_streams, nb_coupled_streams);
@@ -466,11 +462,9 @@
if (mapping_type == MAPPING_TYPE_SURROUND &&
!validate_encoder_layout(&st->layout))
return OPUS_BAD_ARG;
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
if (mapping_type == MAPPING_TYPE_AMBISONICS &&
!validate_ambisonics(st->layout.nb_channels, NULL, NULL))
return OPUS_BAD_ARG;
-#endif
ptr = (char*)st + align(sizeof(OpusMSEncoder));
coupled_size = opus_encoder_get_size(2);
mono_size = opus_encoder_get_size(1);
@@ -562,8 +556,7 @@
*coupled_streams=0;
for(i=0;i<channels;i++)
mapping[i] = i;
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
- } else if (mapping_family==254)
+ } else if (mapping_family==2)
{
int i;
if (!validate_ambisonics(channels, streams, coupled_streams))
@@ -572,17 +565,14 @@
mapping[i] = i + (*coupled_streams * 2);
for(i = 0; i < *coupled_streams * 2; i++)
mapping[i + (*streams - *coupled_streams)] = i;
-#endif
} else
return OPUS_UNIMPLEMENTED;
if (channels>2 && mapping_family==1) {
mapping_type = MAPPING_TYPE_SURROUND;
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
- } else if (mapping_family==254)
+ } else if (mapping_family==2)
{
mapping_type = MAPPING_TYPE_AMBISONICS;
-#endif
} else
{
mapping_type = MAPPING_TYPE_NONE;
@@ -743,7 +733,6 @@
}
}
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
static void ambisonics_rate_allocation(
OpusMSEncoder *st,
opus_int32 *rate,
@@ -752,24 +741,15 @@
)
{
int i;
- int total_rate;
- int directional_rate;
- int nondirectional_rate;
- int leftover_bits;
+ opus_int32 total_rate;
+ opus_int32 per_stream_rate;
- /* Each nondirectional channel gets (rate_ratio_num / rate_ratio_den) times
- * as many bits as all other ambisonics channels.
- */
- const int rate_ratio_num = 4;
- const int rate_ratio_den = 3;
const int nb_channels = st->layout.nb_streams + st->layout.nb_coupled_streams;
- const int nb_nondirectional_channels = st->layout.nb_coupled_streams * 2 + 1;
- const int nb_directional_channels = st->layout.nb_streams - 1;
if (st->bitrate_bps==OPUS_AUTO)
{
total_rate = (st->layout.nb_coupled_streams + st->layout.nb_streams) *
- (Fs+60*Fs/frame_size) + st->layout.nb_streams * 15000;
+ (Fs+60*Fs/frame_size) + st->layout.nb_streams * (opus_int32)15000;
} else if (st->bitrate_bps==OPUS_BITRATE_MAX)
{
total_rate = nb_channels * 320000;
@@ -778,49 +758,14 @@
total_rate = st->bitrate_bps;
}
- /* Let y be the directional rate, m be the num of nondirectional channels
- * m = (s + 1)
- * and let p, q be integers such that the nondirectional rate is
- * m_rate = (p / q) * y
- * Also let T be the total bitrate to allocate. Then
- * T = (n - m) * y + m * m_rate
- * Solving for y,
- * y = (q * T) / (m * (p - q) + n * q)
- */
- directional_rate =
- total_rate * rate_ratio_den
- / (nb_nondirectional_channels * (rate_ratio_num - rate_ratio_den)
- + nb_channels * rate_ratio_den);
-
- /* Calculate the nondirectional rate.
- * m_rate = y * (p / q)
- */
- nondirectional_rate = directional_rate * rate_ratio_num / rate_ratio_den;
-
- /* Calculate the leftover from truncation error.
- * leftover = T - y * (n - m) - m_rate * m
- * Place leftover bits in omnidirectional channel.
- */
- leftover_bits = total_rate
- - directional_rate * nb_directional_channels
- - nondirectional_rate * nb_nondirectional_channels;
-
- /* Calculate rates for each channel */
+ /* Allocate equal number of bits to Ambisonic (uncoupled) and non-diegetic
+ * (coupled) streams */
+ per_stream_rate = total_rate / st->layout.nb_streams;
for (i = 0; i < st->layout.nb_streams; i++)
{
- if (i < st->layout.nb_coupled_streams)
- {
- rate[i] = nondirectional_rate * 2;
- } else if (i == st->layout.nb_coupled_streams)
- {
- rate[i] = nondirectional_rate + leftover_bits;
- } else
- {
- rate[i] = directional_rate;
- }
+ rate[i] = per_stream_rate;
}
}
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
static opus_int32 rate_allocation(
OpusMSEncoder *st,
@@ -836,11 +781,9 @@
ptr = (char*)st + align(sizeof(OpusMSEncoder));
opus_encoder_ctl((OpusEncoder*)ptr, OPUS_GET_SAMPLE_RATE(&Fs));
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
if (st->mapping_type == MAPPING_TYPE_AMBISONICS) {
ambisonics_rate_allocation(st, rate, frame_size, Fs);
} else
-#endif
{
surround_rate_allocation(st, rate, frame_size, Fs);
}
@@ -973,11 +916,9 @@
opus_encoder_ctl(enc, OPUS_SET_FORCE_CHANNELS(2));
}
}
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
else if (st->mapping_type == MAPPING_TYPE_AMBISONICS) {
opus_encoder_ctl(enc, OPUS_SET_FORCE_MODE(MODE_CELT_ONLY));
}
-#endif
}
ptr = (char*)st + align(sizeof(OpusMSEncoder));
@@ -1308,7 +1249,7 @@
OpusEncoder **value;
stream_id = va_arg(ap, opus_int32);
if (stream_id<0 || stream_id >= st->layout.nb_streams)
- ret = OPUS_BAD_ARG;
+ goto bad_arg;
value = va_arg(ap, OpusEncoder**);
if (!value)
{
diff --git a/third_party/opus/src/opus_private.h b/third_party/opus/src/src/opus_private.h
similarity index 97%
rename from third_party/opus/src/opus_private.h
rename to third_party/opus/src/src/opus_private.h
index 193ff93..5e2463f 100644
--- a/third_party/opus/src/opus_private.h
+++ b/third_party/opus/src/src/opus_private.h
@@ -53,11 +53,8 @@
typedef enum {
MAPPING_TYPE_NONE,
- MAPPING_TYPE_SURROUND
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
- , /* Do not include comma at end of enumerator list */
+ MAPPING_TYPE_SURROUND,
MAPPING_TYPE_AMBISONICS
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
} MappingType;
struct OpusMSEncoder {
@@ -138,6 +135,7 @@
typedef void (*downmix_func)(const void *, opus_val32 *, int, int, int, int, int);
void downmix_float(const void *_x, opus_val32 *sub, int subframe, int offset, int c1, int c2, int C);
void downmix_int(const void *_x, opus_val32 *sub, int subframe, int offset, int c1, int c2, int C);
+int is_digital_silence(const opus_val16* pcm, int frame_size, int channels, int lsb_depth);
int encode_size(int size, unsigned char *data);
diff --git a/third_party/opus/src/opus_projection_decoder.c b/third_party/opus/src/src/opus_projection_decoder.c
similarity index 75%
rename from third_party/opus/src/opus_projection_decoder.c
rename to third_party/opus/src/src/opus_projection_decoder.c
index c879ead..c2e07d5 100644
--- a/third_party/opus/src/opus_projection_decoder.c
+++ b/third_party/opus/src/src/opus_projection_decoder.c
@@ -38,8 +38,6 @@
#include "mapping_matrix.h"
#include "stack_alloc.h"
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
-
struct OpusProjectionDecoder
{
opus_int32 demixing_matrix_size_in_bytes;
@@ -91,14 +89,18 @@
src_stride, short_dst, dst_stride, frame_size);
}
-static MappingMatrix *get_demixing_matrix(OpusProjectionDecoder *st)
+static MappingMatrix *get_dec_demixing_matrix(OpusProjectionDecoder *st)
{
- return (MappingMatrix*)((char*)st + align(sizeof(OpusProjectionDecoder)));
+ /* void* cast avoids clang -Wcast-align warning */
+ return (MappingMatrix*)(void*)((char*)st +
+ align(sizeof(OpusProjectionDecoder)));
}
static OpusMSDecoder *get_multistream_decoder(OpusProjectionDecoder *st)
{
- return (OpusMSDecoder*)((char*)st + align(sizeof(OpusProjectionDecoder) +
+ /* void* cast avoids clang -Wcast-align warning */
+ return (OpusMSDecoder*)(void*)((char*)st +
+ align(sizeof(OpusProjectionDecoder) +
st->demixing_matrix_size_in_bytes));
}
@@ -158,7 +160,7 @@
return OPUS_BAD_ARG;
}
- mapping_matrix_init(get_demixing_matrix(st), channels, nb_input_streams, 0,
+ mapping_matrix_init(get_dec_demixing_matrix(st), channels, nb_input_streams, 0,
buf, demixing_matrix_size);
/* Set trivial mapping so each input channel pairs with a matrix column. */
@@ -214,7 +216,7 @@
{
return opus_multistream_decode_native(get_multistream_decoder(st), data, len,
pcm, opus_projection_copy_channel_out_short, frame_size, decode_fec, 0,
- get_demixing_matrix(st));
+ get_dec_demixing_matrix(st));
}
#else
int opus_projection_decode(OpusProjectionDecoder *st, const unsigned char *data,
@@ -223,7 +225,7 @@
{
return opus_multistream_decode_native(get_multistream_decoder(st), data, len,
pcm, opus_projection_copy_channel_out_short, frame_size, decode_fec, 1,
- get_demixing_matrix(st));
+ get_dec_demixing_matrix(st));
}
#endif
@@ -233,7 +235,7 @@
{
return opus_multistream_decode_native(get_multistream_decoder(st), data, len,
pcm, opus_projection_copy_channel_out_float, frame_size, decode_fec, 0,
- get_demixing_matrix(st));
+ get_dec_demixing_matrix(st));
}
#endif
@@ -254,105 +256,3 @@
opus_free(st);
}
-#else /* ENABLE_EXPERIMENTAL_AMBISONICS */
-
-opus_int32 opus_projection_decoder_get_size(
- int channels,
- int streams,
- int coupled_streams)
-{
- (void)channels;
- (void)streams;
- (void)coupled_streams;
- return OPUS_UNIMPLEMENTED;
-}
-
-OpusProjectionDecoder *opus_projection_decoder_create(
- opus_int32 Fs,
- int channels,
- int streams,
- int coupled_streams,
- unsigned char *demixing_matrix,
- opus_int32 demixing_matrix_size,
- int *error)
-{
- (void)Fs;
- (void)channels;
- (void)streams;
- (void)coupled_streams;
- (void)demixing_matrix;
- (void)demixing_matrix_size;
- if (error) *error = OPUS_UNIMPLEMENTED;
- return NULL;
-}
-
-int opus_projection_decoder_init(
- OpusProjectionDecoder *st,
- opus_int32 Fs,
- int channels,
- int streams,
- int coupled_streams,
- unsigned char *demixing_matrix,
- opus_int32 demixing_matrix_size)
-{
- (void)st;
- (void)Fs;
- (void)channels;
- (void)streams;
- (void)coupled_streams;
- (void)demixing_matrix;
- (void)demixing_matrix_size;
- return OPUS_UNIMPLEMENTED;
-}
-
-int opus_projection_decode(
- OpusProjectionDecoder *st,
- const unsigned char *data,
- opus_int32 len,
- opus_int16 *pcm,
- int frame_size,
- int decode_fec)
-{
- (void)st;
- (void)data;
- (void)len;
- (void)pcm;
- (void)frame_size;
- (void)decode_fec;
- return OPUS_UNIMPLEMENTED;
-}
-
-int opus_projection_decode_float(
- OpusProjectionDecoder *st,
- const unsigned char *data,
- opus_int32 len,
- float *pcm,
- int frame_size,
- int decode_fec)
-{
- (void)st;
- (void)data;
- (void)len;
- (void)pcm;
- (void)frame_size;
- (void)decode_fec;
- return OPUS_UNIMPLEMENTED;
-}
-
-int opus_projection_decoder_ctl(
- OpusProjectionDecoder *st,
- int request,
- ...)
-{
- (void)st;
- (void)request;
- return OPUS_UNIMPLEMENTED;
-}
-
-void opus_projection_decoder_destroy(
- OpusProjectionDecoder *st)
-{
- (void)st;
-}
-
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
diff --git a/third_party/opus/src/opus_projection_encoder.c b/third_party/opus/src/src/opus_projection_encoder.c
similarity index 85%
rename from third_party/opus/src/opus_projection_encoder.c
rename to third_party/opus/src/src/opus_projection_encoder.c
index 1fbcf47..06fb2d2 100644
--- a/third_party/opus/src/opus_projection_encoder.c
+++ b/third_party/opus/src/src/opus_projection_encoder.c
@@ -38,8 +38,6 @@
#include "stack_alloc.h"
#include "mapping_matrix.h"
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
-
struct OpusProjectionEncoder
{
opus_int32 mixing_matrix_size_in_bytes;
@@ -104,7 +102,7 @@
int *streams, int *coupled_streams,
int *order_plus_one)
{
- if (mapping_family == 253)
+ if (mapping_family == 3)
{
if (get_order_plus_one_from_channels(channels, order_plus_one) != OPUS_OK)
return OPUS_BAD_ARG;
@@ -119,19 +117,26 @@
static MappingMatrix *get_mixing_matrix(OpusProjectionEncoder *st)
{
- return (MappingMatrix *)((char*)st + align(sizeof(OpusProjectionEncoder)));
+ /* void* cast avoids clang -Wcast-align warning */
+ return (MappingMatrix *)(void*)((char*)st +
+ align(sizeof(OpusProjectionEncoder)));
}
-static MappingMatrix *get_demixing_matrix(OpusProjectionEncoder *st)
+static MappingMatrix *get_enc_demixing_matrix(OpusProjectionEncoder *st)
{
- return (MappingMatrix *)((char*)st + align(sizeof(OpusProjectionEncoder) +
+ /* void* cast avoids clang -Wcast-align warning */
+ return (MappingMatrix *)(void*)((char*)st +
+ align(sizeof(OpusProjectionEncoder) +
st->mixing_matrix_size_in_bytes));
}
static OpusMSEncoder *get_multistream_encoder(OpusProjectionEncoder *st)
{
- return (OpusMSEncoder *)((char*)st + align(sizeof(OpusProjectionEncoder) +
- st->mixing_matrix_size_in_bytes + st->demixing_matrix_size_in_bytes));
+ /* void* cast avoids clang -Wcast-align warning */
+ return (OpusMSEncoder *)(void*)((char*)st +
+ align(sizeof(OpusProjectionEncoder) +
+ st->mixing_matrix_size_in_bytes +
+ st->demixing_matrix_size_in_bytes));
}
opus_int32 opus_projection_ambisonics_encoder_get_size(int channels,
@@ -215,7 +220,7 @@
coupled_streams, &order_plus_one) != OPUS_OK)
return OPUS_BAD_ARG;
- if (mapping_family == 253)
+ if (mapping_family == 3)
{
/* Assign mixing matrix based on available pre-computed matrices. */
mixing_matrix = get_mixing_matrix(st);
@@ -249,7 +254,7 @@
return OPUS_BAD_ARG;
/* Assign demixing matrix based on available pre-computed matrices. */
- demixing_matrix = get_demixing_matrix(st);
+ demixing_matrix = get_enc_demixing_matrix(st);
if (order_plus_one == 2)
{
mapping_matrix_init(demixing_matrix, mapping_matrix_foa_demixing.rows,
@@ -374,14 +379,14 @@
int opus_projection_encoder_ctl(OpusProjectionEncoder *st, int request, ...)
{
+ va_list ap;
MappingMatrix *demixing_matrix;
OpusMSEncoder *ms_encoder;
int ret = OPUS_OK;
ms_encoder = get_multistream_encoder(st);
- demixing_matrix = get_demixing_matrix(st);
+ demixing_matrix = get_enc_demixing_matrix(st);
- va_list ap;
va_start(ap, request);
switch(request)
{
@@ -461,93 +466,3 @@
return OPUS_BAD_ARG;
}
-#else /* ENABLE_EXPERIMENTAL_AMBISONICS */
-
-opus_int32 opus_projection_ambisonics_encoder_get_size(
- int channels, int mapping_family)
-{
- (void)channels;
- (void)mapping_family;
- return OPUS_UNIMPLEMENTED;
-}
-
-OpusProjectionEncoder *opus_projection_ambisonics_encoder_create(
- opus_int32 Fs, int channels, int mapping_family, int *streams,
- int *coupled_streams, int application, int *error)
-{
- (void)Fs;
- (void)channels;
- (void)mapping_family;
- (void)streams;
- (void)coupled_streams;
- (void)application;
- if (error) *error = OPUS_UNIMPLEMENTED;
- return NULL;
-}
-
-int opus_projection_ambisonics_encoder_init(
- OpusProjectionEncoder *st,
- opus_int32 Fs,
- int channels,
- int mapping_family,
- int *streams,
- int *coupled_streams,
- int application)
-{
- (void)st;
- (void)Fs;
- (void)channels;
- (void)mapping_family;
- (void)streams;
- (void)coupled_streams;
- (void)application;
- return OPUS_UNIMPLEMENTED;
-}
-
-int opus_projection_encode(
- OpusProjectionEncoder *st,
- const opus_int16 *pcm,
- int frame_size,
- unsigned char *data,
- opus_int32 max_data_bytes)
-{
- (void)st;
- (void)pcm;
- (void)frame_size;
- (void)data;
- (void)max_data_bytes;
- return OPUS_UNIMPLEMENTED;
-}
-
-int opus_projection_encode_float(
- OpusProjectionEncoder *st,
- const float *pcm,
- int frame_size,
- unsigned char *data,
- opus_int32 max_data_bytes)
-{
- (void)st;
- (void)pcm;
- (void)frame_size;
- (void)data;
- (void)max_data_bytes;
- return OPUS_UNIMPLEMENTED;
-}
-
-void opus_projection_encoder_destroy(
- OpusProjectionEncoder *st)
-{
- (void)st;
-}
-
-int opus_projection_encoder_ctl(
- OpusProjectionEncoder *st,
- int request,
- ...)
-{
- (void)st;
- (void)request;
- return OPUS_UNIMPLEMENTED;
-}
-
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
diff --git a/third_party/opus/src/repacketizer.c b/third_party/opus/src/src/repacketizer.c
similarity index 100%
rename from third_party/opus/src/repacketizer.c
rename to third_party/opus/src/src/repacketizer.c
diff --git a/third_party/opus/src/repacketizer_demo.c b/third_party/opus/src/src/repacketizer_demo.c
similarity index 100%
rename from third_party/opus/src/repacketizer_demo.c
rename to third_party/opus/src/src/repacketizer_demo.c
diff --git a/third_party/opus/src/tansig_table.h b/third_party/opus/src/src/tansig_table.h
similarity index 100%
rename from third_party/opus/src/tansig_table.h
rename to third_party/opus/src/src/tansig_table.h
diff --git a/third_party/opus/tests/opus_decode_fuzzer.c b/third_party/opus/src/tests/opus_decode_fuzzer.c
similarity index 100%
rename from third_party/opus/tests/opus_decode_fuzzer.c
rename to third_party/opus/src/tests/opus_decode_fuzzer.c
diff --git a/third_party/opus/tests/opus_decode_fuzzer.options b/third_party/opus/src/tests/opus_decode_fuzzer.options
similarity index 100%
rename from third_party/opus/tests/opus_decode_fuzzer.options
rename to third_party/opus/src/tests/opus_decode_fuzzer.options
diff --git a/third_party/opus/tests/opus_encode_regressions.c b/third_party/opus/src/tests/opus_encode_regressions.c
similarity index 100%
rename from third_party/opus/tests/opus_encode_regressions.c
rename to third_party/opus/src/tests/opus_encode_regressions.c
diff --git a/third_party/opus/tests/run_vectors.sh b/third_party/opus/src/tests/run_vectors.sh
similarity index 100%
rename from third_party/opus/tests/run_vectors.sh
rename to third_party/opus/src/tests/run_vectors.sh
diff --git a/third_party/opus/tests/test_opus_api.c b/third_party/opus/src/tests/test_opus_api.c
similarity index 96%
rename from third_party/opus/tests/test_opus_api.c
rename to third_party/opus/src/tests/test_opus_api.c
index 1d00950..fb385c6 100644
--- a/third_party/opus/tests/test_opus_api.c
+++ b/third_party/opus/src/tests/test_opus_api.c
@@ -78,6 +78,9 @@
}
#endif
+opus_int32 *null_int_ptr = (opus_int32 *)NULL;
+opus_uint32 *null_uint_ptr = (opus_uint32 *)NULL;
+
static const opus_int32 opus_rates[5] = {48000,24000,16000,12000,8000};
opus_int32 test_dec_api(void)
@@ -92,8 +95,6 @@
#endif
short sbuf[960*2];
int c,err;
- opus_int32 *nullvalue;
- nullvalue=0;
cfgs=0;
/*First test invalid configurations which should fail*/
@@ -147,7 +148,7 @@
fprintf(stdout," opus_decoder_create() ........................ OK.\n");
fprintf(stdout," opus_decoder_init() .......................... OK.\n");
- err=opus_decoder_ctl(dec, OPUS_GET_FINAL_RANGE((opus_uint32 *)NULL));
+ err=opus_decoder_ctl(dec, OPUS_GET_FINAL_RANGE(null_uint_ptr));
if(err != OPUS_BAD_ARG)test_failed();
VG_UNDEF(&dec_final_range,sizeof(dec_final_range));
err=opus_decoder_ctl(dec, OPUS_GET_FINAL_RANGE(&dec_final_range));
@@ -161,7 +162,7 @@
fprintf(stdout," OPUS_UNIMPLEMENTED ........................... OK.\n");
cfgs++;
- err=opus_decoder_ctl(dec, OPUS_GET_BANDWIDTH((opus_int32 *)NULL));
+ err=opus_decoder_ctl(dec, OPUS_GET_BANDWIDTH(null_int_ptr));
if(err != OPUS_BAD_ARG)test_failed();
VG_UNDEF(&i,sizeof(i));
err=opus_decoder_ctl(dec, OPUS_GET_BANDWIDTH(&i));
@@ -169,7 +170,7 @@
fprintf(stdout," OPUS_GET_BANDWIDTH ........................... OK.\n");
cfgs++;
- err=opus_decoder_ctl(dec, OPUS_GET_SAMPLE_RATE((opus_int32 *)NULL));
+ err=opus_decoder_ctl(dec, OPUS_GET_SAMPLE_RATE(null_int_ptr));
if(err != OPUS_BAD_ARG)test_failed();
VG_UNDEF(&i,sizeof(i));
err=opus_decoder_ctl(dec, OPUS_GET_SAMPLE_RATE(&i));
@@ -178,7 +179,7 @@
cfgs++;
/*GET_PITCH has different execution paths depending on the previously decoded frame.*/
- err=opus_decoder_ctl(dec, OPUS_GET_PITCH(nullvalue));
+ err=opus_decoder_ctl(dec, OPUS_GET_PITCH(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
VG_UNDEF(&i,sizeof(i));
@@ -202,7 +203,7 @@
cfgs++;
fprintf(stdout," OPUS_GET_PITCH ............................... OK.\n");
- err=opus_decoder_ctl(dec, OPUS_GET_LAST_PACKET_DURATION((opus_int32 *)NULL));
+ err=opus_decoder_ctl(dec, OPUS_GET_LAST_PACKET_DURATION(null_int_ptr));
if(err != OPUS_BAD_ARG)test_failed();
VG_UNDEF(&i,sizeof(i));
err=opus_decoder_ctl(dec, OPUS_GET_LAST_PACKET_DURATION(&i));
@@ -215,7 +216,7 @@
VG_CHECK(&i,sizeof(i));
if(err != OPUS_OK || i!=0)test_failed();
cfgs++;
- err=opus_decoder_ctl(dec, OPUS_GET_GAIN(nullvalue));
+ err=opus_decoder_ctl(dec, OPUS_GET_GAIN(null_int_ptr));
if(err != OPUS_BAD_ARG)test_failed();
cfgs++;
err=opus_decoder_ctl(dec, OPUS_SET_GAIN(-32769));
@@ -352,11 +353,6 @@
#endif
short sbuf[960*2];
int a,b,c,err;
-#if 0
- /*Relevant test not enabled for multistream*/
- int *nullvalue;
- nullvalue=0;
-#endif
mapping[0]=0;
mapping[1]=1;
@@ -610,7 +606,7 @@
#if 0
/*Currently unimplemented for multistream*/
/*GET_PITCH has different execution paths depending on the previously decoded frame.*/
- err=opus_multistream_decoder_ctl(dec, OPUS_GET_PITCH(nullvalue));
+ err=opus_multistream_decoder_ctl(dec, OPUS_GET_PITCH(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
VG_UNDEF(&i,sizeof(i));
@@ -657,6 +653,8 @@
packet[1]=packet[2]=0;
if(opus_multistream_decode(dec, packet, -1, sbuf, 960, 0)!=OPUS_BAD_ARG){printf("%d\n",opus_multistream_decode(dec, packet, -1, sbuf, 960, 0));test_failed();}
cfgs++;
+ if(opus_multistream_decode(dec, packet, 3, sbuf, -960, 0)!=OPUS_BAD_ARG)test_failed();
+ cfgs++;
if(opus_multistream_decode(dec, packet, 3, sbuf, 60, 0)!=OPUS_BUFFER_TOO_SMALL)test_failed();
cfgs++;
if(opus_multistream_decode(dec, packet, 3, sbuf, 480, 0)!=OPUS_BUFFER_TOO_SMALL)test_failed();
@@ -1166,7 +1164,7 @@
err=opus_encoder_ctl(enc,OPUS_GET_LOOKAHEAD(&i));
if(err!=OPUS_OK || i<0 || i>32766)test_failed();
cfgs++;
- err=opus_encoder_ctl(enc,OPUS_GET_LOOKAHEAD((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_LOOKAHEAD(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
fprintf(stdout," OPUS_GET_LOOKAHEAD ........................... OK.\n");
@@ -1174,7 +1172,7 @@
err=opus_encoder_ctl(enc,OPUS_GET_SAMPLE_RATE(&i));
if(err!=OPUS_OK || i!=48000)test_failed();
cfgs++;
- err=opus_encoder_ctl(enc,OPUS_GET_SAMPLE_RATE((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_SAMPLE_RATE(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
fprintf(stdout," OPUS_GET_SAMPLE_RATE ......................... OK.\n");
@@ -1183,7 +1181,7 @@
fprintf(stdout," OPUS_UNIMPLEMENTED ........................... OK.\n");
cfgs++;
- err=opus_encoder_ctl(enc,OPUS_GET_APPLICATION((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_APPLICATION(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_APPLICATION(i),OPUS_GET_APPLICATION(&i),-1,OPUS_AUTO,
@@ -1191,7 +1189,7 @@
" OPUS_SET_APPLICATION ......................... OK.\n",
" OPUS_GET_APPLICATION ......................... OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_BITRATE((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_BITRATE(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
if(opus_encoder_ctl(enc,OPUS_SET_BITRATE(1073741832))!=OPUS_OK)test_failed();
@@ -1205,7 +1203,7 @@
" OPUS_SET_BITRATE ............................. OK.\n",
" OPUS_GET_BITRATE ............................. OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_FORCE_CHANNELS((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_FORCE_CHANNELS(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_FORCE_CHANNELS(i),OPUS_GET_FORCE_CHANNELS(&i),-1,3,
@@ -1243,7 +1241,7 @@
cfgs++;
if(opus_encoder_ctl(enc,OPUS_SET_BANDWIDTH(OPUS_AUTO))!=OPUS_OK)test_failed();
cfgs++;
- err=opus_encoder_ctl(enc,OPUS_GET_BANDWIDTH((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_BANDWIDTH(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
fprintf(stdout," OPUS_GET_BANDWIDTH ........................... OK.\n");
@@ -1276,12 +1274,12 @@
i!=OPUS_BANDWIDTH_MEDIUMBAND&&i!=OPUS_BANDWIDTH_WIDEBAND&&
i!=OPUS_BANDWIDTH_FULLBAND))test_failed();
cfgs++;
- err=opus_encoder_ctl(enc,OPUS_GET_MAX_BANDWIDTH((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_MAX_BANDWIDTH(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
fprintf(stdout," OPUS_GET_MAX_BANDWIDTH ....................... OK.\n");
- err=opus_encoder_ctl(enc,OPUS_GET_DTX((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_DTX(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_DTX(i),OPUS_GET_DTX(&i),-1,2,
@@ -1289,7 +1287,7 @@
" OPUS_SET_DTX ................................. OK.\n",
" OPUS_GET_DTX ................................. OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_COMPLEXITY((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_COMPLEXITY(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_COMPLEXITY(i),OPUS_GET_COMPLEXITY(&i),-1,11,
@@ -1297,7 +1295,7 @@
" OPUS_SET_COMPLEXITY .......................... OK.\n",
" OPUS_GET_COMPLEXITY .......................... OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_INBAND_FEC((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_INBAND_FEC(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_INBAND_FEC(i),OPUS_GET_INBAND_FEC(&i),-1,2,
@@ -1305,7 +1303,7 @@
" OPUS_SET_INBAND_FEC .......................... OK.\n",
" OPUS_GET_INBAND_FEC .......................... OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_PACKET_LOSS_PERC((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_PACKET_LOSS_PERC(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_PACKET_LOSS_PERC(i),OPUS_GET_PACKET_LOSS_PERC(&i),-1,101,
@@ -1313,7 +1311,7 @@
" OPUS_SET_PACKET_LOSS_PERC .................... OK.\n",
" OPUS_GET_PACKET_LOSS_PERC .................... OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_VBR((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_VBR(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_VBR(i),OPUS_GET_VBR(&i),-1,2,
@@ -1321,7 +1319,7 @@
" OPUS_SET_VBR ................................. OK.\n",
" OPUS_GET_VBR ................................. OK.\n")
-/* err=opus_encoder_ctl(enc,OPUS_GET_VOICE_RATIO((opus_int32 *)NULL));
+/* err=opus_encoder_ctl(enc,OPUS_GET_VOICE_RATIO(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_VOICE_RATIO(i),OPUS_GET_VOICE_RATIO(&i),-2,101,
@@ -1329,7 +1327,7 @@
" OPUS_SET_VOICE_RATIO ......................... OK.\n",
" OPUS_GET_VOICE_RATIO ......................... OK.\n")*/
- err=opus_encoder_ctl(enc,OPUS_GET_VBR_CONSTRAINT((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_VBR_CONSTRAINT(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_VBR_CONSTRAINT(i),OPUS_GET_VBR_CONSTRAINT(&i),-1,2,
@@ -1337,7 +1335,7 @@
" OPUS_SET_VBR_CONSTRAINT ...................... OK.\n",
" OPUS_GET_VBR_CONSTRAINT ...................... OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_SIGNAL((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_SIGNAL(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_SIGNAL(i),OPUS_GET_SIGNAL(&i),-12345,0x7FFFFFFF,
@@ -1345,7 +1343,7 @@
" OPUS_SET_SIGNAL .............................. OK.\n",
" OPUS_GET_SIGNAL .............................. OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_LSB_DEPTH((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_LSB_DEPTH(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_LSB_DEPTH(i),OPUS_GET_LSB_DEPTH(&i),7,25,16,24,
@@ -1355,14 +1353,14 @@
err=opus_encoder_ctl(enc,OPUS_GET_PREDICTION_DISABLED(&i));
if(i!=0)test_failed();
cfgs++;
- err=opus_encoder_ctl(enc,OPUS_GET_PREDICTION_DISABLED((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_PREDICTION_DISABLED(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
CHECK_SETGET(OPUS_SET_PREDICTION_DISABLED(i),OPUS_GET_PREDICTION_DISABLED(&i),-1,2,1,0,
" OPUS_SET_PREDICTION_DISABLED ................. OK.\n",
" OPUS_GET_PREDICTION_DISABLED ................. OK.\n")
- err=opus_encoder_ctl(enc,OPUS_GET_EXPERT_FRAME_DURATION((opus_int32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_EXPERT_FRAME_DURATION(null_int_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
err=opus_encoder_ctl(enc,OPUS_SET_EXPERT_FRAME_DURATION(OPUS_FRAMESIZE_2_5_MS));
@@ -1399,7 +1397,7 @@
/*OPUS_SET_FORCE_MODE is not tested here because it's not a public API, however the encoder tests use it*/
- err=opus_encoder_ctl(enc,OPUS_GET_FINAL_RANGE((opus_uint32 *)NULL));
+ err=opus_encoder_ctl(enc,OPUS_GET_FINAL_RANGE(null_uint_ptr));
if(err!=OPUS_BAD_ARG)test_failed();
cfgs++;
if(opus_encoder_ctl(enc,OPUS_GET_FINAL_RANGE(&enc_final_range))!=OPUS_OK)test_failed();
diff --git a/third_party/opus/tests/test_opus_common.h b/third_party/opus/src/tests/test_opus_common.h
similarity index 100%
rename from third_party/opus/tests/test_opus_common.h
rename to third_party/opus/src/tests/test_opus_common.h
diff --git a/third_party/opus/tests/test_opus_decode.c b/third_party/opus/src/tests/test_opus_decode.c
similarity index 100%
rename from third_party/opus/tests/test_opus_decode.c
rename to third_party/opus/src/tests/test_opus_decode.c
diff --git a/third_party/opus/tests/test_opus_encode.c b/third_party/opus/src/tests/test_opus_encode.c
similarity index 96%
rename from third_party/opus/tests/test_opus_encode.c
rename to third_party/opus/src/tests/test_opus_encode.c
index dae49c3..00795a1 100644
--- a/third_party/opus/tests/test_opus_encode.c
+++ b/third_party/opus/src/tests/test_opus_encode.c
@@ -140,7 +140,7 @@
return frame_size_enum;
}
-void test_encode(OpusEncoder *enc, int channels, int frame_size, OpusDecoder *dec, const char* debug_info)
+int test_encode(OpusEncoder *enc, int channels, int frame_size, OpusDecoder *dec)
{
int samp_count = 0;
opus_int16 *inbuf;
@@ -148,6 +148,7 @@
int len;
opus_int16 *outbuf;
int out_samples;
+ int ret = 0;
/* Generate input data */
inbuf = (opus_int16*)malloc(sizeof(*inbuf)*SSAMPLES);
@@ -160,16 +161,16 @@
do {
len = opus_encode(enc, &inbuf[samp_count*channels], frame_size, packet, MAX_PACKET);
if(len<0 || len>MAX_PACKET) {
- fprintf(stderr,"%s\n",debug_info);
fprintf(stderr,"opus_encode() returned %d\n",len);
- test_failed();
+ ret = -1;
+ break;
}
out_samples = opus_decode(dec, packet, len, outbuf, MAX_FRAME_SAMP, 0);
if(out_samples!=frame_size) {
- fprintf(stderr,"%s\n",debug_info);
fprintf(stderr,"opus_decode() returned %d\n",out_samples);
- test_failed();
+ ret = -1;
+ break;
}
samp_count += frame_size;
@@ -178,6 +179,7 @@
/* Clean up */
free(inbuf);
free(outbuf);
+ return ret;
}
void fuzz_encoder_settings(const int num_encoders, const int num_setting_changes)
@@ -205,7 +207,6 @@
int prediction_disabled[3] = {0, 0, 1};
int use_dtx[2] = {0, 1};
int frame_sizes_ms_x2[9] = {5, 10, 20, 40, 80, 120, 160, 200, 240}; /* x2 to avoid 2.5 ms */
- char debug_info[512];
for (i=0; i<num_encoders; i++) {
int sampling_rate = RAND_SAMPLE(sampling_rates);
@@ -236,15 +237,6 @@
int frame_size_enum = get_frame_size_enum(frame_size, sampling_rate);
force_channel = IMIN(force_channel, num_channels);
- sprintf(debug_info,
- "fuzz_encoder_settings: %d kHz, %d ch, application: %d, "
- "%d bps, force ch: %d, vbr: %d, vbr constraint: %d, complexity: %d, "
- "max bw: %d, signal: %d, inband fec: %d, pkt loss: %d%%, lsb depth: %d, "
- "pred disabled: %d, dtx: %d, (%d/2) ms\n",
- sampling_rate/1000, num_channels, application, bitrate,
- force_channel, vbr, vbr_constraint, complexity, max_bw, sig, inband_fec,
- pkt_loss, lsb_depth, pred_disabled, dtx, frame_size_ms_x2);
-
if(opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate)) != OPUS_OK) test_failed();
if(opus_encoder_ctl(enc, OPUS_SET_FORCE_CHANNELS(force_channel)) != OPUS_OK) test_failed();
if(opus_encoder_ctl(enc, OPUS_SET_VBR(vbr)) != OPUS_OK) test_failed();
@@ -259,7 +251,17 @@
if(opus_encoder_ctl(enc, OPUS_SET_DTX(dtx)) != OPUS_OK) test_failed();
if(opus_encoder_ctl(enc, OPUS_SET_EXPERT_FRAME_DURATION(frame_size_enum)) != OPUS_OK) test_failed();
- test_encode(enc, num_channels, frame_size, dec, debug_info);
+ if(test_encode(enc, num_channels, frame_size, dec)) {
+ fprintf(stderr,
+ "fuzz_encoder_settings: %d kHz, %d ch, application: %d, "
+ "%d bps, force ch: %d, vbr: %d, vbr constraint: %d, complexity: %d, "
+ "max bw: %d, signal: %d, inband fec: %d, pkt loss: %d%%, lsb depth: %d, "
+ "pred disabled: %d, dtx: %d, (%d/2) ms\n",
+ sampling_rate/1000, num_channels, application, bitrate,
+ force_channel, vbr, vbr_constraint, complexity, max_bw, sig, inband_fec,
+ pkt_loss, lsb_depth, pred_disabled, dtx, frame_size_ms_x2);
+ test_failed();
+ }
}
opus_encoder_destroy(enc);
diff --git a/third_party/opus/tests/test_opus_padding.c b/third_party/opus/src/tests/test_opus_padding.c
similarity index 100%
rename from third_party/opus/tests/test_opus_padding.c
rename to third_party/opus/src/tests/test_opus_padding.c
diff --git a/third_party/opus/tests/test_opus_projection.c b/third_party/opus/src/tests/test_opus_projection.c
similarity index 96%
rename from third_party/opus/tests/test_opus_projection.c
rename to third_party/opus/src/tests/test_opus_projection.c
index 6679a0e..5f0d672 100644
--- a/third_party/opus/tests/test_opus_projection.c
+++ b/third_party/opus/src/tests/test_opus_projection.c
@@ -42,8 +42,6 @@
#include "../src/mapping_matrix.h"
#include "mathops.h"
-#ifdef ENABLE_EXPERIMENTAL_AMBISONICS
-
#define BUFFER_SIZE 960
#define MAX_DATA_BYTES 32768
#define MAX_FRAME_SAMPLES 5760
@@ -362,6 +360,8 @@
goto bad_cleanup;
}
+ opus_projection_decoder_destroy(st_dec);
+ opus_projection_encoder_destroy(st_enc);
free(buffer_in);
free(buffer_out);
return;
@@ -383,24 +383,12 @@
/* Test full range of channels in creation arguments. */
for (i = 0; i < 255; i++)
- test_creation_arguments(i, 253);
+ test_creation_arguments(i, 3);
/* Test encode/decode pipeline. */
- test_encode_decode(64 * 18, 18, 253);
+ test_encode_decode(64 * 18, 18, 3);
fprintf(stderr, "All projection tests passed.\n");
return 0;
}
-#else
-
-int main(int _argc, char **_argv)
-{
- (void)_argc;
- (void)_argv;
- fprintf(stderr, "Projection tests are disabled. "
- "Configure with --enable-ambisonics for support.\n");
- return 0;
-}
-
-#endif /* ENABLE_EXPERIMENTAL_AMBISONICS */
diff --git a/third_party/opus/src/training/rnn_dump.py b/third_party/opus/src/training/rnn_dump.py
new file mode 100755
index 0000000..c312088
--- /dev/null
+++ b/third_party/opus/src/training/rnn_dump.py
@@ -0,0 +1,66 @@
+#!/usr/bin/python
+
+from __future__ import print_function
+
+from keras.models import Sequential
+from keras.models import Model
+from keras.layers import Input
+from keras.layers import Dense
+from keras.layers import LSTM
+from keras.layers import GRU
+from keras.models import load_model
+from keras import backend as K
+import sys
+
+import numpy as np
+
+def printVector(f, vector, name):
+ v = np.reshape(vector, (-1));
+ #print('static const float ', name, '[', len(v), '] = \n', file=f)
+ f.write('static const opus_int8 {}[{}] = {{\n '.format(name, len(v)))
+ for i in range(0, len(v)):
+ f.write('{}'.format(max(-128,min(127,int(round(128*v[i]))))))
+ if (i!=len(v)-1):
+ f.write(',')
+ else:
+ break;
+ if (i%8==7):
+ f.write("\n ")
+ else:
+ f.write(" ")
+ #print(v, file=f)
+ f.write('\n};\n\n')
+ return;
+
+def binary_crossentrop2(y_true, y_pred):
+ return K.mean(2*K.abs(y_true-0.5) * K.binary_crossentropy(y_pred, y_true), axis=-1)
+
+
+#model = load_model(sys.argv[1], custom_objects={'binary_crossentrop2': binary_crossentrop2})
+main_input = Input(shape=(None, 25), name='main_input')
+x = Dense(32, activation='tanh')(main_input)
+x = GRU(24, activation='tanh', recurrent_activation='sigmoid', return_sequences=True)(x)
+x = Dense(2, activation='sigmoid')(x)
+model = Model(inputs=main_input, outputs=x)
+model.load_weights(sys.argv[1])
+
+weights = model.get_weights()
+
+f = open(sys.argv[2], 'w')
+
+f.write('/*This file is automatically generated from a Keras model*/\n\n')
+f.write('#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif\n\n#include "mlp.h"\n\n')
+
+printVector(f, weights[0], 'layer0_weights')
+printVector(f, weights[1], 'layer0_bias')
+printVector(f, weights[2], 'layer1_weights')
+printVector(f, weights[3], 'layer1_recur_weights')
+printVector(f, weights[4], 'layer1_bias')
+printVector(f, weights[5], 'layer2_weights')
+printVector(f, weights[6], 'layer2_bias')
+
+f.write('const DenseLayer layer0 = {\n layer0_bias,\n layer0_weights,\n 25, 32, 0\n};\n\n')
+f.write('const GRULayer layer1 = {\n layer1_bias,\n layer1_weights,\n layer1_recur_weights,\n 32, 24\n};\n\n')
+f.write('const DenseLayer layer2 = {\n layer2_bias,\n layer2_weights,\n 24, 2, 1\n};\n\n')
+
+f.close()
diff --git a/third_party/opus/src/training/rnn_train.py b/third_party/opus/src/training/rnn_train.py
new file mode 100755
index 0000000..29bcb03
--- /dev/null
+++ b/third_party/opus/src/training/rnn_train.py
@@ -0,0 +1,177 @@
+#!/usr/bin/python3
+
+from __future__ import print_function
+
+from keras.models import Sequential
+from keras.models import Model
+from keras.layers import Input
+from keras.layers import Dense
+from keras.layers import LSTM
+from keras.layers import GRU
+from keras.layers import CuDNNGRU
+from keras.layers import SimpleRNN
+from keras.layers import Dropout
+from keras import losses
+import h5py
+from keras.optimizers import Adam
+
+from keras.constraints import Constraint
+from keras import backend as K
+import numpy as np
+
+import tensorflow as tf
+from keras.backend.tensorflow_backend import set_session
+config = tf.ConfigProto()
+config.gpu_options.per_process_gpu_memory_fraction = 0.44
+set_session(tf.Session(config=config))
+
+def binary_crossentrop2(y_true, y_pred):
+ return K.mean(2*K.abs(y_true-0.5) * K.binary_crossentropy(y_true, y_pred), axis=-1)
+
+def binary_accuracy2(y_true, y_pred):
+ return K.mean(K.cast(K.equal(y_true, K.round(y_pred)), 'float32') + K.cast(K.equal(y_true, 0.5), 'float32'), axis=-1)
+
+def quant_model(model):
+ weights = model.get_weights()
+ for k in range(len(weights)):
+ weights[k] = np.maximum(-128, np.minimum(127, np.round(128*weights[k])*0.0078125))
+ model.set_weights(weights)
+
+class WeightClip(Constraint):
+ '''Clips the weights incident to each hidden unit to be inside a range
+ '''
+ def __init__(self, c=2):
+ self.c = c
+
+ def __call__(self, p):
+ return K.clip(p, -self.c, self.c)
+
+ def get_config(self):
+ return {'name': self.__class__.__name__,
+ 'c': self.c}
+
+reg = 0.000001
+constraint = WeightClip(.998)
+
+print('Build model...')
+
+main_input = Input(shape=(None, 25), name='main_input')
+x = Dense(32, activation='tanh', kernel_constraint=constraint, bias_constraint=constraint)(main_input)
+#x = CuDNNGRU(24, return_sequences=True, kernel_constraint=constraint, recurrent_constraint=constraint, bias_constraint=constraint)(x)
+x = GRU(24, recurrent_activation='sigmoid', activation='tanh', return_sequences=True, kernel_constraint=constraint, recurrent_constraint=constraint, bias_constraint=constraint)(x)
+x = Dense(2, activation='sigmoid', kernel_constraint=constraint, bias_constraint=constraint)(x)
+model = Model(inputs=main_input, outputs=x)
+
+batch_size = 2048
+
+print('Loading data...')
+with h5py.File('features10b.h5', 'r') as hf:
+ all_data = hf['data'][:]
+print('done.')
+
+window_size = 1500
+
+nb_sequences = len(all_data)//window_size
+print(nb_sequences, ' sequences')
+x_train = all_data[:nb_sequences*window_size, :-2]
+x_train = np.reshape(x_train, (nb_sequences, window_size, 25))
+
+y_train = np.copy(all_data[:nb_sequences*window_size, -2:])
+y_train = np.reshape(y_train, (nb_sequences, window_size, 2))
+
+print("Marking ignores")
+for s in y_train:
+ for e in s:
+ if (e[1] >= 1):
+ break
+ e[0] = 0.5
+
+all_data = 0;
+x_train = x_train.astype('float32')
+y_train = y_train.astype('float32')
+
+print(len(x_train), 'train sequences. x shape =', x_train.shape, 'y shape = ', y_train.shape)
+
+model.load_weights('newweights10a1b_ep206.hdf5')
+
+#weights = model.get_weights()
+#for k in range(len(weights)):
+# weights[k] = np.round(128*weights[k])*0.0078125
+#model.set_weights(weights)
+
+# try using different optimizers and different optimizer configs
+model.compile(loss=binary_crossentrop2,
+ optimizer=Adam(0.0001),
+ metrics=[binary_accuracy2])
+
+print('Train...')
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=10, validation_data=(x_train, y_train))
+model.save("newweights10a1c_ep10.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=50, initial_epoch=10)
+model.save("newweights10a1c_ep50.hdf5")
+
+model.compile(loss=binary_crossentrop2,
+ optimizer=Adam(0.0001),
+ metrics=[binary_accuracy2])
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=100, initial_epoch=50)
+model.save("newweights10a1c_ep100.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=150, initial_epoch=100)
+model.save("newweights10a1c_ep150.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=200, initial_epoch=150)
+model.save("newweights10a1c_ep200.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=201, initial_epoch=200)
+model.save("newweights10a1c_ep201.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=202, initial_epoch=201, validation_data=(x_train, y_train))
+model.save("newweights10a1c_ep202.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=203, initial_epoch=202, validation_data=(x_train, y_train))
+model.save("newweights10a1c_ep203.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=204, initial_epoch=203, validation_data=(x_train, y_train))
+model.save("newweights10a1c_ep204.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=205, initial_epoch=204, validation_data=(x_train, y_train))
+model.save("newweights10a1c_ep205.hdf5")
+
+quant_model(model)
+model.fit(x_train, y_train,
+ batch_size=batch_size,
+ epochs=206, initial_epoch=205, validation_data=(x_train, y_train))
+model.save("newweights10a1c_ep206.hdf5")
+
diff --git a/third_party/opus/src/training/txt2hdf5.py b/third_party/opus/src/training/txt2hdf5.py
new file mode 100755
index 0000000..9c60287
--- /dev/null
+++ b/third_party/opus/src/training/txt2hdf5.py
@@ -0,0 +1,12 @@
+#!/usr/bin/python
+
+from __future__ import print_function
+
+import numpy as np
+import h5py
+import sys
+
+data = np.loadtxt(sys.argv[1], dtype='float32')
+h5f = h5py.File(sys.argv[2], 'w');
+h5f.create_dataset('data', data=data)
+h5f.close()
diff --git a/third_party/opus/src/update_version b/third_party/opus/src/update_version
new file mode 100755
index 0000000..a999991
--- /dev/null
+++ b/third_party/opus/src/update_version
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+# Creates and updates the package_version information used by configure.ac
+# (or other makefiles). When run inside a git repository it will use the
+# version information that can be queried from it unless AUTO_UPDATE is set
+# to 'no'. If no version is currently known it will be set to 'unknown'.
+#
+# If called with the argument 'release', the PACKAGE_VERSION will be updated
+# even if AUTO_UPDATE=no, but the value of AUTO_UPDATE shall be preserved.
+# This is used to force a version update whenever `make dist` is run.
+#
+# The exit status is 1 if package_version is not modified, else 0 is returned.
+#
+# This script should NOT be included in distributed tarballs, because if a
+# parent directory contains a git repository we do not want to accidentally
+# retrieve the version information from it instead. Tarballs should ship
+# with only the package_version file.
+#
+# Ron <ron@debian.org>, 2012.
+
+SRCDIR=$(dirname $0)
+
+if [ -e "$SRCDIR/package_version" ]; then
+ . "$SRCDIR/package_version"
+fi
+
+if [ "$AUTO_UPDATE" = no ]; then
+ [ "$1" = release ] || exit 1
+else
+ AUTO_UPDATE=yes
+fi
+
+# We run `git status` before describe here to ensure that we don't get a false
+# -dirty from files that have been touched but are not actually altered in the
+# working dir.
+GIT_VERSION=$(cd "$SRCDIR" && git status > /dev/null 2>&1 \
+ && git describe --tags --match 'v*' --dirty 2> /dev/null)
+GIT_VERSION=${GIT_VERSION#v}
+
+if [ -n "$GIT_VERSION" ]; then
+
+ [ "$GIT_VERSION" != "$PACKAGE_VERSION" ] || exit 1
+ PACKAGE_VERSION="$GIT_VERSION"
+
+elif [ -z "$PACKAGE_VERSION" ]; then
+ # No current package_version and no git ...
+ # We really shouldn't ever get here, because this script should only be
+ # included in the git repository, and should usually be export-ignored.
+ PACKAGE_VERSION="unknown"
+else
+ exit 1
+fi
+
+cat > "$SRCDIR/package_version" <<-EOF
+ # Automatically generated by update_version.
+ # This file may be sourced into a shell script or makefile.
+
+ # Set this to 'no' if you do not wish the version information
+ # to be checked and updated for every build. Most people will
+ # never want to change this, it is an option for developers
+ # making frequent changes that they know will not be released.
+ AUTO_UPDATE=$AUTO_UPDATE
+
+ PACKAGE_VERSION="$PACKAGE_VERSION"
+EOF
diff --git a/third_party/opus/src/win32/.gitignore b/third_party/opus/src/win32/.gitignore
new file mode 100644
index 0000000..c17feab
--- /dev/null
+++ b/third_party/opus/src/win32/.gitignore
@@ -0,0 +1,26 @@
+# Visual Studio ignores
+[Dd]ebug/
+[Dd]ebugDLL/
+[Dd]ebugDLL_fixed/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleaseDLL/
+[Rr]eleaseDLL_fixed/
+[Rr]eleases/
+*.manifest
+*.lastbuildstate
+*.lib
+*.log
+*.idb
+*.ipdb
+*.ilk
+*.iobj
+*.obj
+*.opensdf
+*.pdb
+*.sdf
+*.suo
+*.tlog
+*.vcxproj.user
+*.vc.db
+*.vc.opendb
diff --git a/third_party/opus/win32/genversion.bat b/third_party/opus/src/win32/genversion.bat
old mode 100644
new mode 100755
similarity index 100%
rename from third_party/opus/win32/genversion.bat
rename to third_party/opus/src/win32/genversion.bat
diff --git a/third_party/opus/starboard/config.h b/third_party/opus/starboard/config.h
index 4a9f5e1..4a0413d 100644
--- a/third_party/opus/starboard/config.h
+++ b/third_party/opus/starboard/config.h
@@ -39,10 +39,6 @@
#define OPUS_EXPORT
#if defined(_M_IX86) || defined(_M_X64)
-/* Can always compile SSE intrinsics (no special compiler flags necessary) */
-#define OPUS_X86_MAY_HAVE_SSE
-#define OPUS_X86_MAY_HAVE_SSE2
-#define OPUS_X86_MAY_HAVE_SSE4_1
/* Presume SSE functions, if compiled to use SSE/SSE2/AVX (note that AMD64 implies SSE2, and AVX
implies SSE4.1) */
diff --git a/third_party/opus/tests/opus_benchmark.cc b/third_party/opus/tests/opus_benchmark.cc
new file mode 100644
index 0000000..5bdc10f
--- /dev/null
+++ b/third_party/opus/tests/opus_benchmark.cc
@@ -0,0 +1,224 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <cmath>
+#include <cstdio>
+#include <cstdlib>
+#include <ctime>
+#include <limits>
+
+#include "base/files/file_path.h"
+#include "base/path_service.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/opus/src/include/opus.h"
+
+// Set to 1 to generate golden values instead of checking against them.
+// Used to ease updating when new references are better or acceptable.
+#define REGENERATE_REFERENCES 0
+
+namespace {
+
+constexpr int RETRIES = 3;
+constexpr int MAX_FRAME_SAMP = 5760; // 120ms * 48kHz
+
+base::FilePath GetDataPath(const std::string& filename) {
+ base::FilePath path;
+ DCHECK(base::PathService::Get(base::DIR_SOURCE_ROOT, &path));
+ return path.AppendASCII("third_party")
+ .AppendASCII("opus")
+ .AppendASCII("tests")
+ .AppendASCII("resources")
+ .AppendASCII(filename);
+}
+
+void opus_run(int frame_size_ms,
+ int sampling_khz,
+ int channels,
+ int bit_rate,
+ int complexity,
+ size_t audio_duration_sec,
+ float* encoding_rtf,
+ float* decoding_rtf) {
+ const int frame_size = frame_size_ms * sampling_khz;
+ const int application =
+ channels == 1 ? OPUS_APPLICATION_VOIP : OPUS_APPLICATION_AUDIO;
+
+ /* Read PCM */
+ auto in_filename = GetDataPath("speech_mono_32_48kHz.pcm").value();
+ FILE* fp = fopen(in_filename.c_str(), "rb");
+
+ // TODO(b/1002973): Review error handling. ASSERT_* just return from function,
+ // meaning calling code is executed.
+ // We might want to factorize encoder creation anyway (read pcm once instead
+ // of re-opening it for each bitrate / complexity).
+ ASSERT_NE(fp, nullptr) << "Could not open: " << in_filename;
+
+ fseek(fp, 0, SEEK_END);
+ const size_t total_samp = ftell(fp) / sizeof(int16_t);
+ rewind(fp);
+
+ int16_t* in_data =
+ (int16_t*)malloc((total_samp + frame_size * channels) * sizeof(*in_data));
+ const size_t check_total_samp =
+ fread(&in_data[0], sizeof(int16_t), total_samp, fp);
+ ASSERT_EQ(check_total_samp, total_samp) << "Error reading input pcm file.";
+ fclose(fp);
+
+ const opus_int32 max_bytes = frame_size * channels * sizeof(int16_t);
+ int16_t* out_data =
+ (int16_t*)malloc((frame_size * channels) * sizeof(int16_t));
+ uint8_t* bit_stream = (uint8_t*)malloc(max_bytes * sizeof(*bit_stream));
+
+ /* Create an encoder */
+ opus_int32 res;
+ OpusEncoder* enc =
+ opus_encoder_create(sampling_khz * 1000, channels, application, &res);
+ ASSERT_TRUE(res == OPUS_OK && enc != nullptr)
+ << "Could not instantiate an Opus encoder. Error code: " << res;
+
+ opus_encoder_ctl(enc, OPUS_SET_BITRATE(bit_rate));
+ opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(complexity));
+
+ /* Create a decoder */
+ OpusDecoder* dec = opus_decoder_create(sampling_khz * 1000, channels, &res);
+ ASSERT_TRUE(res == OPUS_OK && dec != nullptr)
+ << "Could not instantiate an Opus decoder. Error code: " << res;
+
+ /* Transcode up to |audio_duration_sec| only */
+ size_t data_pointer = 0;
+ size_t decoded_ms = 0;
+ float encoding_sec = 0;
+ float decoding_sec = 0;
+ while (decoded_ms < audio_duration_sec * 1000) {
+ /* Encode */
+ clock_t clocks = clock();
+ res = opus_encode(enc, &in_data[data_pointer], frame_size, &bit_stream[0],
+ max_bytes);
+ clocks = clock() - clocks;
+ EXPECT_GT(res, 0) << "No bytes were encoded successfully.";
+
+ encoding_sec += 1. * clocks / CLOCKS_PER_SEC;
+
+ /* Decode */
+ clocks = clock();
+ res =
+ opus_decode(dec, &bit_stream[0], res, &out_data[0], MAX_FRAME_SAMP, 0);
+ clocks = clock() - clocks;
+ EXPECT_EQ(res, frame_size) << "Wrong number of samples returned by decoder";
+
+ decoding_sec += 1. * clocks / CLOCKS_PER_SEC;
+
+ /* Update data pointer and time tracker */
+ data_pointer += frame_size * channels;
+ decoded_ms += frame_size_ms;
+ }
+
+ *encoding_rtf = encoding_sec / audio_duration_sec;
+ *decoding_rtf = decoding_sec / audio_duration_sec;
+
+ /* Clean up */
+ opus_encoder_destroy(enc);
+ opus_decoder_destroy(dec);
+ free(in_data);
+ free(out_data);
+ free(bit_stream);
+}
+} // namespace
+
+TEST(OpusBenchmark, SpeechMono48kHzNexus5) {
+ const int sampling_khz = 48;
+ const int channels = 1;
+ size_t audio_duration_sec = 240;
+ const int frame_size_ms = 20;
+ constexpr int nr_bit_rates = 8;
+ int32_t bit_rates[nr_bit_rates] = {64000, 32000, 24000, 16000,
+ 12000, 10000, 8000, 6000};
+ constexpr int nr_complexities = 11;
+ int32_t complexities[nr_complexities] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+
+#if REGENERATE_REFERENCES
+ fprintf(stderr, "bitrate,complexity,encoding_rtf,decoding_rtf\n");
+#else
+ // Real-time factors, scaled *1000 for cosmetic purpose.
+ // Lower is best, any value <= 1000 is real-time.
+
+ // This reference numbers were generated on a NEXUS 5.
+ // This means they are irrelevant if you run the test on a linux workstation.
+ // TODO(b/1002973): Have a set of references by architecture?
+ // Or at least, disable the tests if not run on expected target.
+ float encoding_reference[nr_bit_rates][nr_complexities] = {
+ // NB: RTF is dropping for complexities 9 and 10 at bit_rate 64000.
+ // On linux x64, it drops for complexities 7, 8, 9, 10.
+ // That seems ok, sanitizers don't report anything.
+ // It looks to be operating more often in CELT-only mode compared to
+ // Hybrid mode for this particular audio file (possibly because of
+ // the presence of the background music).
+ {18.0, 20.2, 22.8, 24.1, 29.3, 29.2, 31.5, 31.5, 35.6, 15.5, 21.6},
+ {16.9, 19.2, 21.7, 23.0, 28.1, 28.1, 30.1, 30.1, 34.2, 34.2, 32.6},
+ {16.6, 18.8, 21.3, 22.6, 27.8, 27.8, 29.7, 29.7, 33.7, 33.7, 39.9},
+ {12.7, 13.6, 20.9, 22.2, 27.4, 27.3, 29.2, 29.2, 33.1, 33.0, 39.1},
+ {8.4, 9.1, 16.0, 17.3, 22.4, 22.4, 24.2, 24.3, 27.7, 27.7, 33.8},
+ {8.4, 9.1, 10.3, 11.2, 13.8, 13.8, 14.7, 14.7, 16.6, 16.6, 26.6},
+ {8.4, 9.0, 10.3, 11.1, 13.7, 13.7, 14.6, 14.6, 16.5, 16.5, 22.6},
+ {8.3, 9.0, 10.2, 11.1, 13.7, 13.7, 14.6, 14.6, 16.4, 16.4, 22.5}};
+
+ float decoding_reference[nr_bit_rates][nr_complexities] = {
+ {7.1, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 7.5, 5.8, 5.8},
+ {6.5, 6.8, 6.8, 6.8, 6.9, 6.9, 6.9, 6.9, 6.9, 6.9, 6.2},
+ {6.3, 6.6, 6.6, 6.6, 6.7, 6.7, 6.7, 6.7, 6.7, 6.7, 6.7},
+ {3.2, 3.2, 6.4, 6.4, 6.5, 6.4, 6.4, 6.5, 6.5, 6.4, 6.5},
+ {2.2, 2.2, 3.1, 3.1, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2, 3.2},
+ {2.1, 2.1, 2.1, 2.1, 2.2, 2.2, 2.2, 2.2, 2.2, 1.9, 2.5},
+ {2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1},
+ {2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1}};
+#endif
+
+ for (int i = 0; i < nr_bit_rates; i++) {
+ for (int j = 0; j < nr_complexities; j++) {
+ // To reduce brittleness, each test is retried independently.
+#if REGENERATE_REFERENCES
+ float encoding_best = std::numeric_limits<float>::infinity();
+ float decoding_best = std::numeric_limits<float>::infinity();
+#endif
+ for (int k = 0; k < RETRIES; k++) {
+ float encoding_rtf;
+ float decoding_rtf;
+ opus_run(frame_size_ms, sampling_khz, channels, bit_rates[i],
+ complexities[j], audio_duration_sec, &encoding_rtf,
+ &decoding_rtf);
+ // Scale to match reference unit.
+ encoding_rtf *= 1000;
+ decoding_rtf *= 1000;
+
+#if REGENERATE_REFERENCES
+ encoding_best = std::min(encoding_best, encoding_rtf);
+ decoding_best = std::min(decoding_best, decoding_rtf);
+#else
+ // Allow 5% relative error.
+ auto encoding_ref = encoding_reference[i][j];
+ auto decoding_ref = decoding_reference[i][j];
+ const float encoding_abs_error = .05 * encoding_ref;
+ const float decoding_abs_error = .05 * decoding_ref;
+ if (std::abs(encoding_rtf - encoding_ref) < encoding_abs_error) {
+ SUCCEED();
+ break; // No need for retry.
+ } else if (k == RETRIES - 1) {
+ // Nb: If returned value is consistently lower (better),
+ // one just have to update the reference.
+ EXPECT_NEAR(encoding_rtf, encoding_ref, encoding_abs_error)
+ << "Mismatch for bitrate " << bit_rates[i] << " and complexity "
+ << complexities[j];
+ EXPECT_NEAR(decoding_rtf, decoding_ref, decoding_abs_error)
+ << "Mismatch for bitrate " << bit_rates[i] << " and complexity "
+ << complexities[j];
+ }
+#endif
+ }
+#if REGENERATE_REFERENCES
+ fprintf(stderr, "%d, %d, %.2f, %.2f\n", bit_rates[i], complexities[j],
+ encoding_best, decoding_best);
+#endif
+ }
+ }
+}
diff --git a/third_party/opus/tests/resources/.gitignore b/third_party/opus/tests/resources/.gitignore
new file mode 100644
index 0000000..6c502ff
--- /dev/null
+++ b/third_party/opus/tests/resources/.gitignore
@@ -0,0 +1 @@
+**/*.pcm
diff --git a/third_party/opus/tests/resources/speech_mono_32_48kHz.pcm.sha1 b/third_party/opus/tests/resources/speech_mono_32_48kHz.pcm.sha1
new file mode 100644
index 0000000..c3e3560
--- /dev/null
+++ b/third_party/opus/tests/resources/speech_mono_32_48kHz.pcm.sha1
@@ -0,0 +1 @@
+009a3ee778767c2402b1d2c920bc2449265f5a2c
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/common.props b/third_party/opus/win32/VS2015/common.props
deleted file mode 100644
index 03cd45b..0000000
--- a/third_party/opus/win32/VS2015/common.props
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ImportGroup Label="PropertySheets" />
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <OutDir>$(Platform)\$(Configuration)\</OutDir>
- <IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
- <CharacterSet Condition="'$(ConfigurationType)'=='Application'">Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)'=='Debug' or '$(Configuration)'=='DebugDLL' or '$(Configuration)'=='DebugDLL_fixed'">
- <LinkIncremental>true</LinkIncremental>
- <UseDebugLibraries>true</UseDebugLibraries>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)'=='Release' or '$(Configuration)'=='ReleaseDLL' or '$(Configuration)'=='ReleaseDLL_fixed'">
- <LinkIncremental>false</LinkIncremental>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <ItemDefinitionGroup>
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <CompileAsManaged>false</CompileAsManaged>
- <CompileAsWinRT>false</CompileAsWinRT>
- <AdditionalIncludeDirectories>..\..;..\..\include;..\..\silk;..\..\celt;..\..\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>HAVE_CONFIG_H;WIN32;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeTypeInfo>false</RuntimeTypeInfo>
- <OpenMPSupport>false</OpenMPSupport>
- </ClCompile>
- <Lib>
- <SubSystem>Console</SubSystem>
- </Lib>
- <Link>
- <LargeAddressAware>true</LargeAddressAware>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug' or '$(Configuration)'=='DebugDLL' or '$(Configuration)'=='DebugDLL_fixed'">
- <ClCompile>
- <ControlFlowGuard>Guard</ControlFlowGuard>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- <EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">NoExtensions</EnableEnhancedInstructionSet>
- <EnableParallelCodeGeneration>false</EnableParallelCodeGeneration>
- <FloatingPointExceptions>true</FloatingPointExceptions>
- <FunctionLevelLinking>false</FunctionLevelLinking>
- <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
- <MultiProcessorCompilation>false</MultiProcessorCompilation>
- <OmitFramePointers>false</OmitFramePointers>
- <Optimization>Disabled</Optimization>
- <RuntimeLibrary Condition="'$(Configuration)'=='Debug'">MultiThreadedDebug</RuntimeLibrary>
- <RuntimeLibrary Condition="'$(Configuration)'!='Debug'">MultiThreadedDebugDLL</RuntimeLibrary>
- <SDLCheck>true</SDLCheck>
- <StringPooling>false</StringPooling>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)'=='Release' or '$(Configuration)'=='ReleaseDLL' or '$(Configuration)'=='ReleaseDLL_fixed'">
- <ClCompile>
- <ControlFlowGuard>false</ControlFlowGuard>
- <DebugInformationFormat>None</DebugInformationFormat>
- <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
- <EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
- <ExceptionHandling>false</ExceptionHandling>
- <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
- <FloatingPointModel Condition="'$(Configuration)'=='Release'">Fast</FloatingPointModel>
- <FloatingPointModel Condition="'$(Configuration)'!='Release'">Precise</FloatingPointModel>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- <Optimization>MaxSpeed</Optimization>
- <RuntimeLibrary Condition="'$(Configuration)'=='Release'">MultiThreaded</RuntimeLibrary>
- <RuntimeLibrary Condition="'$(Configuration)'!='Release'">MultiThreadedDLL</RuntimeLibrary>
- <StructMemberAlignment>16Bytes</StructMemberAlignment>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>false</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup />
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/opus.sln b/third_party/opus/win32/VS2015/opus.sln
deleted file mode 100644
index abd7a4d..0000000
--- a/third_party/opus/win32/VS2015/opus.sln
+++ /dev/null
@@ -1,168 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus", "opus.vcxproj", "{219EC965-228A-1824-174D-96449D05F88A}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opus_demo", "opus_demo.vcxproj", "{016C739D-6389-43BF-8D88-24B2BF6F620F}"
- ProjectSection(ProjectDependencies) = postProject
- {219EC965-228A-1824-174D-96449D05F88A} = {219EC965-228A-1824-174D-96449D05F88A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_opus_api", "test_opus_api.vcxproj", "{1D257A17-D254-42E5-82D6-1C87A6EC775A}"
- ProjectSection(ProjectDependencies) = postProject
- {219EC965-228A-1824-174D-96449D05F88A} = {219EC965-228A-1824-174D-96449D05F88A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_opus_decode", "test_opus_decode.vcxproj", "{8578322A-1883-486B-B6FA-E0094B65C9F2}"
- ProjectSection(ProjectDependencies) = postProject
- {219EC965-228A-1824-174D-96449D05F88A} = {219EC965-228A-1824-174D-96449D05F88A}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_opus_encode", "test_opus_encode.vcxproj", "{84DAA768-1A38-4312-BB61-4C78BB59E5B8}"
- ProjectSection(ProjectDependencies) = postProject
- {219EC965-228A-1824-174D-96449D05F88A} = {219EC965-228A-1824-174D-96449D05F88A}
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- DebugDLL_fixed|Win32 = DebugDLL_fixed|Win32
- DebugDLL_fixed|x64 = DebugDLL_fixed|x64
- DebugDLL|Win32 = DebugDLL|Win32
- DebugDLL|x64 = DebugDLL|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- ReleaseDLL_fixed|Win32 = ReleaseDLL_fixed|Win32
- ReleaseDLL_fixed|x64 = ReleaseDLL_fixed|x64
- ReleaseDLL|Win32 = ReleaseDLL|Win32
- ReleaseDLL|x64 = ReleaseDLL|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {219EC965-228A-1824-174D-96449D05F88A}.Debug|Win32.ActiveCfg = Debug|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.Debug|Win32.Build.0 = Debug|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.Debug|x64.ActiveCfg = Debug|x64
- {219EC965-228A-1824-174D-96449D05F88A}.Debug|x64.Build.0 = Debug|x64
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL_fixed|Win32.ActiveCfg = DebugDLL_fixed|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL_fixed|Win32.Build.0 = DebugDLL_fixed|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL_fixed|x64.ActiveCfg = DebugDLL_fixed|x64
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL_fixed|x64.Build.0 = DebugDLL_fixed|x64
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
- {219EC965-228A-1824-174D-96449D05F88A}.DebugDLL|x64.Build.0 = DebugDLL|x64
- {219EC965-228A-1824-174D-96449D05F88A}.Release|Win32.ActiveCfg = Release|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.Release|Win32.Build.0 = Release|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.Release|x64.ActiveCfg = Release|x64
- {219EC965-228A-1824-174D-96449D05F88A}.Release|x64.Build.0 = Release|x64
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL_fixed|Win32.ActiveCfg = ReleaseDLL_fixed|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL_fixed|Win32.Build.0 = ReleaseDLL_fixed|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL_fixed|x64.ActiveCfg = ReleaseDLL_fixed|x64
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL_fixed|x64.Build.0 = ReleaseDLL_fixed|x64
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
- {219EC965-228A-1824-174D-96449D05F88A}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Debug|Win32.ActiveCfg = Debug|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Debug|Win32.Build.0 = Debug|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Debug|x64.ActiveCfg = Debug|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Debug|x64.Build.0 = Debug|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL_fixed|Win32.ActiveCfg = DebugDLL_fixed|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL_fixed|Win32.Build.0 = DebugDLL_fixed|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL_fixed|x64.ActiveCfg = DebugDLL_fixed|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL_fixed|x64.Build.0 = DebugDLL_fixed|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.DebugDLL|x64.Build.0 = DebugDLL|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Release|Win32.ActiveCfg = Release|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Release|Win32.Build.0 = Release|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Release|x64.ActiveCfg = Release|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.Release|x64.Build.0 = Release|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL_fixed|Win32.ActiveCfg = ReleaseDLL_fixed|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL_fixed|Win32.Build.0 = ReleaseDLL_fixed|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL_fixed|x64.ActiveCfg = ReleaseDLL_fixed|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL_fixed|x64.Build.0 = ReleaseDLL_fixed|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
- {016C739D-6389-43BF-8D88-24B2BF6F620F}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Debug|Win32.ActiveCfg = Debug|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Debug|Win32.Build.0 = Debug|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Debug|x64.ActiveCfg = Debug|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Debug|x64.Build.0 = Debug|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL_fixed|Win32.ActiveCfg = DebugDLL_fixed|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL_fixed|Win32.Build.0 = DebugDLL_fixed|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL_fixed|x64.ActiveCfg = DebugDLL_fixed|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL_fixed|x64.Build.0 = DebugDLL_fixed|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.DebugDLL|x64.Build.0 = DebugDLL|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Release|Win32.ActiveCfg = Release|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Release|Win32.Build.0 = Release|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Release|x64.ActiveCfg = Release|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.Release|x64.Build.0 = Release|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL_fixed|Win32.ActiveCfg = ReleaseDLL_fixed|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL_fixed|Win32.Build.0 = ReleaseDLL_fixed|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL_fixed|x64.ActiveCfg = ReleaseDLL_fixed|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL_fixed|x64.Build.0 = ReleaseDLL_fixed|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
- {1D257A17-D254-42E5-82D6-1C87A6EC775A}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Debug|Win32.ActiveCfg = Debug|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Debug|Win32.Build.0 = Debug|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Debug|x64.ActiveCfg = Debug|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Debug|x64.Build.0 = Debug|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL_fixed|Win32.ActiveCfg = DebugDLL_fixed|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL_fixed|Win32.Build.0 = DebugDLL_fixed|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL_fixed|x64.ActiveCfg = DebugDLL_fixed|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL_fixed|x64.Build.0 = DebugDLL_fixed|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.DebugDLL|x64.Build.0 = DebugDLL|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Release|Win32.ActiveCfg = Release|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Release|Win32.Build.0 = Release|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Release|x64.ActiveCfg = Release|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.Release|x64.Build.0 = Release|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL_fixed|Win32.ActiveCfg = ReleaseDLL_fixed|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL_fixed|Win32.Build.0 = ReleaseDLL_fixed|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL_fixed|x64.ActiveCfg = ReleaseDLL_fixed|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL_fixed|x64.Build.0 = ReleaseDLL_fixed|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
- {8578322A-1883-486B-B6FA-E0094B65C9F2}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Debug|Win32.ActiveCfg = Debug|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Debug|Win32.Build.0 = Debug|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Debug|x64.ActiveCfg = Debug|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Debug|x64.Build.0 = Debug|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL_fixed|Win32.ActiveCfg = DebugDLL_fixed|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL_fixed|Win32.Build.0 = DebugDLL_fixed|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL_fixed|x64.ActiveCfg = DebugDLL_fixed|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL_fixed|x64.Build.0 = DebugDLL_fixed|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL|x64.ActiveCfg = DebugDLL|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.DebugDLL|x64.Build.0 = DebugDLL|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Release|Win32.ActiveCfg = Release|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Release|Win32.Build.0 = Release|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Release|x64.ActiveCfg = Release|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.Release|x64.Build.0 = Release|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL_fixed|Win32.ActiveCfg = ReleaseDLL_fixed|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL_fixed|Win32.Build.0 = ReleaseDLL_fixed|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL_fixed|x64.ActiveCfg = ReleaseDLL_fixed|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL_fixed|x64.Build.0 = ReleaseDLL_fixed|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL|x64.ActiveCfg = ReleaseDLL|x64
- {84DAA768-1A38-4312-BB61-4C78BB59E5B8}.ReleaseDLL|x64.Build.0 = ReleaseDLL|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/third_party/opus/win32/VS2015/opus.vcxproj b/third_party/opus/win32/VS2015/opus.vcxproj
deleted file mode 100644
index f080011..0000000
--- a/third_party/opus/win32/VS2015/opus.vcxproj
+++ /dev/null
@@ -1,394 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="DebugDLL_fixed|Win32">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL_fixed|x64">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|Win32">
- <Configuration>DebugDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|x64">
- <Configuration>DebugDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|Win32">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|x64">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|Win32">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|x64">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <Keyword>Win32Proj</Keyword>
- <ProjectName>opus</ProjectName>
- <ProjectGuid>{219EC965-228A-1824-174D-96449D05F88A}</ProjectGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>StaticLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <ItemDefinitionGroup>
- <ClCompile>
- <AdditionalIncludeDirectories>..\..\silk\fixed;..\..\silk\float;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions Condition="'$(ConfigurationType)'=='DynamicLibrary'">DLL_EXPORT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <PreprocessorDefinitions Condition="'$(Configuration)'=='DebugDLL_fixed' or '$(Configuration)'=='ReleaseDLL_fixed'">FIXED_POINT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions Condition="'$(Platform)'=='Win32'">/arch:IA32 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Lib>
- <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
- </Lib>
- <PreBuildEvent>
- <Command>"$(ProjectDir)..\..\win32\genversion.bat" "$(ProjectDir)..\..\win32\version.h" PACKAGE_VERSION</Command>
- <Message>Generating version.h</Message>
- </PreBuildEvent>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="..\..\celt\arch.h" />
- <ClInclude Include="..\..\celt\bands.h" />
- <ClInclude Include="..\..\celt\celt.h" />
- <ClInclude Include="..\..\celt\celt_lpc.h" />
- <ClInclude Include="..\..\celt\cwrs.h" />
- <ClInclude Include="..\..\celt\ecintrin.h" />
- <ClInclude Include="..\..\celt\entcode.h" />
- <ClInclude Include="..\..\celt\entdec.h" />
- <ClInclude Include="..\..\celt\entenc.h" />
- <ClInclude Include="..\..\celt\fixed_c5x.h" />
- <ClInclude Include="..\..\celt\fixed_c6x.h" />
- <ClInclude Include="..\..\celt\fixed_debug.h" />
- <ClInclude Include="..\..\celt\fixed_generic.h" />
- <ClInclude Include="..\..\celt\float_cast.h" />
- <ClInclude Include="..\..\celt\kiss_fft.h" />
- <ClInclude Include="..\..\celt\laplace.h" />
- <ClInclude Include="..\..\celt\mathops.h" />
- <ClInclude Include="..\..\celt\mdct.h" />
- <ClInclude Include="..\..\celt\mfrngcod.h" />
- <ClInclude Include="..\..\celt\modes.h" />
- <ClInclude Include="..\..\celt\os_support.h" />
- <ClInclude Include="..\..\celt\pitch.h" />
- <ClInclude Include="..\..\celt\quant_bands.h" />
- <ClInclude Include="..\..\celt\rate.h" />
- <ClInclude Include="..\..\celt\stack_alloc.h" />
- <ClInclude Include="..\..\celt\static_modes_fixed.h" />
- <ClInclude Include="..\..\celt\static_modes_float.h" />
- <ClInclude Include="..\..\celt\vq.h" />
- <ClInclude Include="..\..\celt\x86\celt_lpc_sse.h" />
- <ClInclude Include="..\..\celt\x86\pitch_sse.h" />
- <ClInclude Include="..\..\celt\x86\vq_sse.h" />
- <ClInclude Include="..\..\celt\x86\x86cpu.h" />
- <ClInclude Include="..\..\celt\_kiss_fft_guts.h" />
- <ClInclude Include="..\..\include\opus.h" />
- <ClInclude Include="..\..\include\opus_defines.h" />
- <ClInclude Include="..\..\include\opus_types.h" />
- <ClInclude Include="..\..\include\opus_multistream.h" />
- <ClInclude Include="..\..\silk\API.h" />
- <ClInclude Include="..\..\silk\control.h" />
- <ClInclude Include="..\..\silk\debug.h" />
- <ClInclude Include="..\..\silk\define.h" />
- <ClInclude Include="..\..\silk\errors.h" />
- <ClInclude Include="..\..\silk\float\main_FLP.h" />
- <ClInclude Include="..\..\silk\float\SigProc_FLP.h" />
- <ClInclude Include="..\..\silk\float\structs_FLP.h" />
- <ClInclude Include="..\..\silk\Inlines.h" />
- <ClInclude Include="..\..\silk\MacroCount.h" />
- <ClInclude Include="..\..\silk\MacroDebug.h" />
- <ClInclude Include="..\..\silk\macros.h" />
- <ClInclude Include="..\..\silk\main.h" />
- <ClInclude Include="..\..\silk\pitch_est_defines.h" />
- <ClInclude Include="..\..\silk\PLC.h" />
- <ClInclude Include="..\..\silk\resampler_private.h" />
- <ClInclude Include="..\..\silk\resampler_rom.h" />
- <ClInclude Include="..\..\silk\resampler_structs.h" />
- <ClInclude Include="..\..\silk\structs.h" />
- <ClInclude Include="..\..\silk\tables.h" />
- <ClInclude Include="..\..\silk\tuning_parameters.h" />
- <ClInclude Include="..\..\silk\typedef.h" />
- <ClInclude Include="..\..\silk\x86\main_sse.h" />
- <ClInclude Include="..\..\win32\config.h" />
- <ClInclude Include="..\..\src\analysis.h" />
- <ClInclude Include="..\..\src\mlp.h" />
- <ClInclude Include="..\..\src\opus_private.h" />
- <ClInclude Include="..\..\src\tansig_table.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\celt\bands.c" />
- <ClCompile Include="..\..\celt\celt.c" />
- <ClCompile Include="..\..\celt\celt_decoder.c" />
- <ClCompile Include="..\..\celt\celt_encoder.c" />
- <ClCompile Include="..\..\celt\celt_lpc.c" />
- <ClCompile Include="..\..\celt\cwrs.c" />
- <ClCompile Include="..\..\celt\entcode.c" />
- <ClCompile Include="..\..\celt\entdec.c" />
- <ClCompile Include="..\..\celt\entenc.c" />
- <ClCompile Include="..\..\celt\kiss_fft.c" />
- <ClCompile Include="..\..\celt\laplace.c" />
- <ClCompile Include="..\..\celt\mathops.c" />
- <ClCompile Include="..\..\celt\mdct.c" />
- <ClCompile Include="..\..\celt\modes.c" />
- <ClCompile Include="..\..\celt\pitch.c" />
- <ClCompile Include="..\..\celt\quant_bands.c" />
- <ClCompile Include="..\..\celt\rate.c" />
- <ClCompile Include="..\..\celt\vq.c" />
- <ClCompile Include="..\..\celt\x86\celt_lpc_sse4_1.c" />
- <ClCompile Include="..\..\celt\x86\pitch_sse.c" />
- <ClCompile Include="..\..\celt\x86\pitch_sse2.c" />
- <ClCompile Include="..\..\celt\x86\pitch_sse4_1.c" />
- <ClCompile Include="..\..\celt\x86\vq_sse2.c" />
- <ClCompile Include="..\..\celt\x86\x86cpu.c" />
- <ClCompile Include="..\..\celt\x86\x86_celt_map.c" />
- <ClCompile Include="..\..\silk\A2NLSF.c" />
- <ClCompile Include="..\..\silk\ana_filt_bank_1.c" />
- <ClCompile Include="..\..\silk\biquad_alt.c" />
- <ClCompile Include="..\..\silk\bwexpander.c" />
- <ClCompile Include="..\..\silk\bwexpander_32.c" />
- <ClCompile Include="..\..\silk\check_control_input.c" />
- <ClCompile Include="..\..\silk\CNG.c" />
- <ClCompile Include="..\..\silk\code_signs.c" />
- <ClCompile Include="..\..\silk\control_audio_bandwidth.c" />
- <ClCompile Include="..\..\silk\control_codec.c" />
- <ClCompile Include="..\..\silk\control_SNR.c" />
- <ClCompile Include="..\..\silk\debug.c" />
- <ClCompile Include="..\..\silk\decoder_set_fs.c" />
- <ClCompile Include="..\..\silk\decode_core.c" />
- <ClCompile Include="..\..\silk\decode_frame.c" />
- <ClCompile Include="..\..\silk\decode_indices.c" />
- <ClCompile Include="..\..\silk\decode_parameters.c" />
- <ClCompile Include="..\..\silk\decode_pitch.c" />
- <ClCompile Include="..\..\silk\decode_pulses.c" />
- <ClCompile Include="..\..\silk\dec_API.c" />
- <ClCompile Include="..\..\silk\encode_indices.c" />
- <ClCompile Include="..\..\silk\encode_pulses.c" />
- <ClCompile Include="..\..\silk\enc_API.c" />
- <ClCompile Include="..\..\silk\gain_quant.c" />
- <ClCompile Include="..\..\silk\HP_variable_cutoff.c" />
- <ClCompile Include="..\..\silk\init_decoder.c" />
- <ClCompile Include="..\..\silk\init_encoder.c" />
- <ClCompile Include="..\..\silk\inner_prod_aligned.c" />
- <ClCompile Include="..\..\silk\interpolate.c" />
- <ClCompile Include="..\..\silk\lin2log.c" />
- <ClCompile Include="..\..\silk\log2lin.c" />
- <ClCompile Include="..\..\silk\LPC_analysis_filter.c" />
- <ClCompile Include="..\..\silk\LPC_fit.c" />
- <ClCompile Include="..\..\silk\LPC_inv_pred_gain.c" />
- <ClCompile Include="..\..\silk\LP_variable_cutoff.c" />
- <ClCompile Include="..\..\silk\NLSF2A.c" />
- <ClCompile Include="..\..\silk\NLSF_decode.c" />
- <ClCompile Include="..\..\silk\NLSF_del_dec_quant.c" />
- <ClCompile Include="..\..\silk\NLSF_encode.c" />
- <ClCompile Include="..\..\silk\NLSF_stabilize.c" />
- <ClCompile Include="..\..\silk\NLSF_unpack.c" />
- <ClCompile Include="..\..\silk\NLSF_VQ.c" />
- <ClCompile Include="..\..\silk\NLSF_VQ_weights_laroia.c" />
- <ClCompile Include="..\..\silk\NSQ.c" />
- <ClCompile Include="..\..\silk\NSQ_del_dec.c" />
- <ClCompile Include="..\..\silk\pitch_est_tables.c" />
- <ClCompile Include="..\..\silk\PLC.c" />
- <ClCompile Include="..\..\silk\process_NLSFs.c" />
- <ClCompile Include="..\..\silk\quant_LTP_gains.c" />
- <ClCompile Include="..\..\silk\resampler.c" />
- <ClCompile Include="..\..\silk\resampler_down2.c" />
- <ClCompile Include="..\..\silk\resampler_down2_3.c" />
- <ClCompile Include="..\..\silk\resampler_private_AR2.c" />
- <ClCompile Include="..\..\silk\resampler_private_down_FIR.c" />
- <ClCompile Include="..\..\silk\resampler_private_IIR_FIR.c" />
- <ClCompile Include="..\..\silk\resampler_private_up2_HQ.c" />
- <ClCompile Include="..\..\silk\resampler_rom.c" />
- <ClCompile Include="..\..\silk\shell_coder.c" />
- <ClCompile Include="..\..\silk\sigm_Q15.c" />
- <ClCompile Include="..\..\silk\sort.c" />
- <ClCompile Include="..\..\silk\stereo_decode_pred.c" />
- <ClCompile Include="..\..\silk\stereo_encode_pred.c" />
- <ClCompile Include="..\..\silk\stereo_find_predictor.c" />
- <ClCompile Include="..\..\silk\stereo_LR_to_MS.c" />
- <ClCompile Include="..\..\silk\stereo_MS_to_LR.c" />
- <ClCompile Include="..\..\silk\stereo_quant_pred.c" />
- <ClCompile Include="..\..\silk\sum_sqr_shift.c" />
- <ClCompile Include="..\..\silk\tables_gain.c" />
- <ClCompile Include="..\..\silk\tables_LTP.c" />
- <ClCompile Include="..\..\silk\tables_NLSF_CB_NB_MB.c" />
- <ClCompile Include="..\..\silk\tables_NLSF_CB_WB.c" />
- <ClCompile Include="..\..\silk\tables_other.c" />
- <ClCompile Include="..\..\silk\tables_pitch_lag.c" />
- <ClCompile Include="..\..\silk\tables_pulses_per_block.c" />
- <ClCompile Include="..\..\silk\table_LSF_cos.c" />
- <ClCompile Include="..\..\silk\VAD.c" />
- <ClCompile Include="..\..\silk\VQ_WMat_EC.c" />
- <ClCompile Include="..\..\silk\x86\NSQ_del_dec_sse4_1.c" />
- <ClCompile Include="..\..\silk\x86\NSQ_sse4_1.c" />
- <ClCompile Include="..\..\silk\x86\VAD_sse4_1.c" />
- <ClCompile Include="..\..\silk\x86\VQ_WMat_EC_sse4_1.c" />
- <ClCompile Include="..\..\silk\x86\x86_silk_map.c" />
- <ClCompile Include="..\..\src\analysis.c" />
- <ClCompile Include="..\..\src\mlp.c" />
- <ClCompile Include="..\..\src\mlp_data.c" />
- <ClCompile Include="..\..\src\opus.c" />
- <ClCompile Include="..\..\src\opus_compare.c">
- <DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_decoder.c" />
- <ClCompile Include="..\..\src\opus_encoder.c" />
- <ClCompile Include="..\..\src\opus_multistream.c" />
- <ClCompile Include="..\..\src\opus_multistream_decoder.c" />
- <ClCompile Include="..\..\src\opus_multistream_encoder.c" />
- <ClCompile Include="..\..\src\repacketizer.c" />
- </ItemGroup>
- <Choose>
- <When Condition="'$(Configuration)'=='DebugDLL_fixed' or '$(Configuration)'=='ReleaseDLL_fixed' or $(PreprocessorDefinitions.Contains('FIXED_POINT'))">
- <ItemGroup>
- <ClCompile Include="..\..\silk\fixed\*.c">
- <ExcludedFromBuild>false</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\..\silk\fixed\x86\*.c">
- <ExcludedFromBuild>false</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\..\silk\float\*.c">
- <ExcludedFromBuild>true</ExcludedFromBuild>
- </ClCompile>
- </ItemGroup>
- </When>
- <Otherwise>
- <ItemGroup>
- <ClCompile Include="..\..\silk\fixed\*.c">
- <ExcludedFromBuild>true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\..\silk\fixed\x86\*.c">
- <ExcludedFromBuild>true</ExcludedFromBuild>
- </ClCompile>
- <ClCompile Include="..\..\silk\float\*.c">
- <ExcludedFromBuild>false</ExcludedFromBuild>
- </ClCompile>
- </ItemGroup>
- </Otherwise>
- </Choose>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/third_party/opus/win32/VS2015/opus.vcxproj.filters b/third_party/opus/win32/VS2015/opus.vcxproj.filters
deleted file mode 100644
index 3c7a1ee..0000000
--- a/third_party/opus/win32/VS2015/opus.vcxproj.filters
+++ /dev/null
@@ -1,570 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\celt\arch.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\celt.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\entdec.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\entenc.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\float_cast.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\os_support.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\stack_alloc.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\opus.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\opus_defines.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\opus_types.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\include\opus_multistream.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\win32\config.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\src\analysis.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\src\mlp.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\src\opus_private.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\src\tansig_table.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\x86\x86cpu.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\_kiss_fft_guts.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\bands.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\celt_lpc.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\x86\celt_lpc_sse.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\cwrs.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\ecintrin.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\entcode.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\fixed_c5x.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\fixed_c6x.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\fixed_debug.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\fixed_generic.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\kiss_fft.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\laplace.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\mathops.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\mdct.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\mfrngcod.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\modes.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\pitch.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\x86\pitch_sse.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\quant_bands.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\rate.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\static_modes_fixed.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\static_modes_float.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\vq.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\typedef.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\API.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\control.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\debug.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\define.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\errors.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\Inlines.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\MacroCount.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\MacroDebug.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\macros.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\main.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\x86\main_sse.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\pitch_est_defines.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\PLC.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\resampler_private.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\resampler_rom.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\resampler_structs.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\structs.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\tables.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\tuning_parameters.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\float\main_FLP.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\float\SigProc_FLP.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\silk\float\structs_FLP.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\celt\x86\vq_sse.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\src\analysis.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\bands.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\celt.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\celt_decoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\celt_encoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\celt_lpc.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\celt_lpc_sse4_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\cwrs.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\entcode.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\entdec.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\entenc.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\kiss_fft.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\laplace.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\mathops.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\mdct.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\mlp.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\mlp_data.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\modes.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_compare.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_decoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_encoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_multistream.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_multistream_decoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\opus_multistream_encoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\pitch.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\pitch_sse.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\pitch_sse2.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\pitch_sse4_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\quant_bands.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\rate.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\src\repacketizer.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\vq.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\x86_celt_map.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\x86cpu.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\A2NLSF.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\ana_filt_bank_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\biquad_alt.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\bwexpander.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\bwexpander_32.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\check_control_input.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\CNG.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\code_signs.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\control_audio_bandwidth.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\control_codec.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\control_SNR.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\debug.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\dec_API.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decode_core.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decode_frame.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decode_indices.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decode_parameters.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decode_pitch.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decode_pulses.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\decoder_set_fs.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\enc_API.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\encode_indices.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\encode_pulses.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\gain_quant.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\HP_variable_cutoff.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\init_decoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\init_encoder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\inner_prod_aligned.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\interpolate.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\lin2log.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\log2lin.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\LP_variable_cutoff.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\LPC_analysis_filter.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\LPC_inv_pred_gain.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_decode.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_del_dec_quant.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_encode.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_stabilize.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_unpack.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_VQ.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF_VQ_weights_laroia.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NLSF2A.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NSQ.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\NSQ_del_dec.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\x86\NSQ_del_dec_sse4_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\x86\NSQ_sse4_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\pitch_est_tables.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\PLC.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\process_NLSFs.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\quant_LTP_gains.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_down2.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_down2_3.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_private_AR2.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_private_down_FIR.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_private_IIR_FIR.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_private_up2_HQ.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\resampler_rom.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\shell_coder.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\sigm_Q15.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\sort.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\stereo_decode_pred.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\stereo_encode_pred.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\stereo_find_predictor.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\stereo_LR_to_MS.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\stereo_MS_to_LR.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\stereo_quant_pred.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\sum_sqr_shift.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\table_LSF_cos.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_gain.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_LTP.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_NLSF_CB_NB_MB.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_NLSF_CB_WB.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_other.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_pitch_lag.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\tables_pulses_per_block.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\VAD.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\x86\VAD_sse4_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\VQ_WMat_EC.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\x86\VQ_WMat_EC_sse4_1.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\x86\x86_silk_map.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\silk\LPC_fit.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\celt\x86\vq_sse2.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project>
diff --git a/third_party/opus/win32/VS2015/opus_demo.vcxproj b/third_party/opus/win32/VS2015/opus_demo.vcxproj
deleted file mode 100644
index 9860bf9..0000000
--- a/third_party/opus/win32/VS2015/opus_demo.vcxproj
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="DebugDLL_fixed|Win32">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL_fixed|x64">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|Win32">
- <Configuration>DebugDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|x64">
- <Configuration>DebugDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|Win32">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|x64">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|Win32">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|x64">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="opus.vcxproj">
- <Project>{219ec965-228a-1824-174d-96449d05f88a}</Project>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\src\opus_demo.c" />
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{016C739D-6389-43BF-8D88-24B2BF6F620F}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>opus_demo</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <ItemDefinitionGroup />
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/opus_demo.vcxproj.filters b/third_party/opus/win32/VS2015/opus_demo.vcxproj.filters
deleted file mode 100644
index dbcc8ae..0000000
--- a/third_party/opus/win32/VS2015/opus_demo.vcxproj.filters
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\src\opus_demo.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/test_opus_api.vcxproj b/third_party/opus/win32/VS2015/test_opus_api.vcxproj
deleted file mode 100644
index c6abf88..0000000
--- a/third_party/opus/win32/VS2015/test_opus_api.vcxproj
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="DebugDLL_fixed|Win32">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL_fixed|x64">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|Win32">
- <Configuration>DebugDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|x64">
- <Configuration>DebugDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|Win32">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|x64">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|Win32">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|x64">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tests\test_opus_api.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="opus.vcxproj">
- <Project>{219ec965-228a-1824-174d-96449d05f88a}</Project>
- </ProjectReference>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{1D257A17-D254-42E5-82D6-1C87A6EC775A}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>test_opus_api</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <ItemDefinitionGroup />
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/test_opus_api.vcxproj.filters b/third_party/opus/win32/VS2015/test_opus_api.vcxproj.filters
deleted file mode 100644
index 070c8ab..0000000
--- a/third_party/opus/win32/VS2015/test_opus_api.vcxproj.filters
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tests\test_opus_api.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/test_opus_decode.vcxproj b/third_party/opus/win32/VS2015/test_opus_decode.vcxproj
deleted file mode 100644
index 9db09b8..0000000
--- a/third_party/opus/win32/VS2015/test_opus_decode.vcxproj
+++ /dev/null
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="DebugDLL_fixed|Win32">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL_fixed|x64">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|Win32">
- <Configuration>DebugDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|x64">
- <Configuration>DebugDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|Win32">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|x64">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|Win32">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|x64">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tests\test_opus_decode.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="opus.vcxproj">
- <Project>{219ec965-228a-1824-174d-96449d05f88a}</Project>
- </ProjectReference>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{8578322A-1883-486B-B6FA-E0094B65C9F2}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>test_opus_api</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <ItemDefinitionGroup />
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/test_opus_decode.vcxproj.filters b/third_party/opus/win32/VS2015/test_opus_decode.vcxproj.filters
deleted file mode 100644
index 588637e..0000000
--- a/third_party/opus/win32/VS2015/test_opus_decode.vcxproj.filters
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4a0dd677-931f-4728-afe5-b761149fc7eb}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tests\test_opus_decode.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/test_opus_encode.vcxproj b/third_party/opus/win32/VS2015/test_opus_encode.vcxproj
deleted file mode 100644
index b10eaf2..0000000
--- a/third_party/opus/win32/VS2015/test_opus_encode.vcxproj
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="DebugDLL_fixed|Win32">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL_fixed|x64">
- <Configuration>DebugDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|Win32">
- <Configuration>DebugDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="DebugDLL|x64">
- <Configuration>DebugDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|Win32">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL_fixed|x64">
- <Configuration>ReleaseDLL_fixed</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|Win32">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="ReleaseDLL|x64">
- <Configuration>ReleaseDLL</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tests\opus_encode_regressions.c" />
- <ClCompile Include="..\..\tests\test_opus_encode.c" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="opus.vcxproj">
- <Project>{219ec965-228a-1824-174d-96449d05f88a}</Project>
- </ProjectReference>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{84DAA768-1A38-4312-BB61-4C78BB59E5B8}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>test_opus_api</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL_fixed|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="common.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <ItemDefinitionGroup />
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/VS2015/test_opus_encode.vcxproj.filters b/third_party/opus/win32/VS2015/test_opus_encode.vcxproj.filters
deleted file mode 100644
index f047763..0000000
--- a/third_party/opus/win32/VS2015/test_opus_encode.vcxproj.filters
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{546c8d9a-103e-4f78-972b-b44e8d3c8aba}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\tests\test_opus_encode.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\tests\opus_encode_regressions.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project>
\ No newline at end of file
diff --git a/third_party/opus/win32/config.h b/third_party/opus/win32/config.h
deleted file mode 100644
index 3e54bcb..0000000
--- a/third_party/opus/win32/config.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/***********************************************************************
-Copyright (c) 2011, Skype Limited. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-- Redistributions of source code must retain the above copyright notice,
-this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-- Neither the name of Internet Society, IETF or IETF Trust, nor the
-names of specific contributors, may be used to endorse or promote
-products derived from this software without specific prior written
-permission.
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-***********************************************************************/
-
-#ifndef CONFIG_H
-#define CONFIG_H
-
-#define USE_ALLOCA 1
-
-/* Comment out the next line for floating-point code */
-/*#define FIXED_POINT 1 */
-
-#define OPUS_BUILD 1
-
-#if defined(_M_IX86) || defined(_M_X64)
-/* Can always compile SSE intrinsics (no special compiler flags necessary) */
-#define OPUS_X86_MAY_HAVE_SSE
-#define OPUS_X86_MAY_HAVE_SSE2
-#define OPUS_X86_MAY_HAVE_SSE4_1
-
-/* Presume SSE functions, if compiled to use SSE/SSE2/AVX (note that AMD64 implies SSE2, and AVX
- implies SSE4.1) */
-#if defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 1)) || defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE 1
-#endif
-#if defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE2 1
-#endif
-#if defined(__AVX__)
-#define OPUS_X86_PRESUME_SSE4_1 1
-#endif
-
-#if !defined(OPUS_X86_PRESUME_SSE4_1) || !defined(OPUS_X86_PRESUME_SSE2) || !defined(OPUS_X86_PRESUME_SSE)
-#define OPUS_HAVE_RTCD 1
-#endif
-
-#endif
-
-#include "version.h"
-
-#endif /* CONFIG_H */
diff --git a/third_party/opus/win32/version.h b/third_party/opus/win32/version.h
deleted file mode 100644
index d95510d..0000000
--- a/third_party/opus/win32/version.h
+++ /dev/null
@@ -1 +0,0 @@
-#define OPUS_VERSION "1.3-rc-2-gc1c247d-dirty"