1470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com/* 2715509890ca462c70c6d20d04b084b3d068249f7kma@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 4470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * Use of this source code is governed by a BSD-style license 5470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * that can be found in the LICENSE file in the root of the source 6470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * tree. An additional intellectual property rights grant can be found 7470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * in the file PATENTS. All contributing project authors may 8470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * be found in the AUTHORS file in the root of the source tree. 9470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com */ 10470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 11470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com/* 12470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * codec.h 13470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 14470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * This header file contains the calls to the internal encoder 15470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * and decoder functions. 16470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com * 17470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com */ 18470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 19470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_CODEC_H_ 20470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_CODEC_H_ 21470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 22470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#include "structs.h" 23470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 241786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.org#ifdef __cplusplus 251786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.orgextern "C" { 261786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.org#endif 27470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 28478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgint WebRtcIsacfix_EstimateBandwidth(BwEstimatorstr* bwest_str, 29478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org Bitstr_dec* streamdata, 30dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t packet_size, 310946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org uint16_t rtp_seq_number, 320946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org uint32_t send_ts, 330946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org uint32_t arr_ts); 34478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org 35aba07ef6d92bf1ded7ad1af49b54a8e6652dfcbbPeter Kastingint WebRtcIsacfix_DecodeImpl(int16_t* signal_out16, 36aba07ef6d92bf1ded7ad1af49b54a8e6652dfcbbPeter Kasting IsacFixDecoderInstance* ISACdec_obj, 37dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t* current_framesamples); 38478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org 39728d9037c016c01295177fa700fc7927f0bb80bbPeter Kastingvoid WebRtcIsacfix_DecodePlcImpl(int16_t* decoded, 40728d9037c016c01295177fa700fc7927f0bb80bbPeter Kasting IsacFixDecoderInstance* ISACdec_obj, 41dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kasting size_t* current_framesample ); 42478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org 430946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgint WebRtcIsacfix_EncodeImpl(int16_t* in, 44eb544460e47140d494dddf1217a698a1dcf4dee0pbos@webrtc.org IsacFixEncoderInstance* ISACenc_obj, 45478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org BwEstimatorstr* bw_estimatordata, 460946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t CodingMode); 47478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org 48eb544460e47140d494dddf1217a698a1dcf4dee0pbos@webrtc.orgint WebRtcIsacfix_EncodeStoredData(IsacFixEncoderInstance* ISACenc_obj, 49478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org int BWnumber, 50478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org float scale); 51470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 52a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* initialization functions */ 53470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 54478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitMaskingEnc(MaskFiltstr_enc* maskdata); 55478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitMaskingDec(MaskFiltstr_dec* maskdata); 56470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 57478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitPreFilterbank(PreFiltBankstr* prefiltdata); 58470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 59478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitPostFilterbank(PostFiltBankstr* postfiltdata); 60470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 61478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitPitchFilter(PitchFiltstr* pitchfiltdata); 62470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 63478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitPitchAnalysis(PitchAnalysisStruct* State); 64470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 65478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgvoid WebRtcIsacfix_InitPlc(PLCstr* State); 66470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 67470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 68a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* transform functions */ 69470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 70470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.comvoid WebRtcIsacfix_InitTransform(); 71470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 720946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgtypedef void (*Time2Spec)(int16_t* inre1Q9, 730946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* inre2Q9, 740946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* outre, 750946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* outim); 760946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgtypedef void (*Spec2Time)(int16_t* inreQ7, 770946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* inimQ7, 780946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* outre1Q16, 790946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* outre2Q16); 80478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org 81478291157282e87c261cc1f7351dc53c60184365kma@webrtc.orgextern Time2Spec WebRtcIsacfix_Time2Spec; 82fa5b6bf4f43032ed6db4544c84b42849bdfa3223kma@webrtc.orgextern Spec2Time WebRtcIsacfix_Spec2Time; 83fa5b6bf4f43032ed6db4544c84b42849bdfa3223kma@webrtc.org 840946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_Time2SpecC(int16_t* inre1Q9, 850946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* inre2Q9, 860946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* outre, 870946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* outim); 880946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_Spec2TimeC(int16_t* inreQ7, 890946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* inimQ7, 900946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* outre1Q16, 910946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* outre2Q16); 92fa5b6bf4f43032ed6db4544c84b42849bdfa3223kma@webrtc.org 93cb7f8ce2df7564546936d3041a96ccc86a90f988Andrew MacDonald#if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 940946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_Time2SpecNeon(int16_t* inre1Q9, 950946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* inre2Q9, 960946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* outre, 970946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* outim); 980946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_Spec2TimeNeon(int16_t* inreQ7, 990946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* inimQ7, 1000946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* outre1Q16, 1010946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* outre2Q16); 102fa5b6bf4f43032ed6db4544c84b42849bdfa3223kma@webrtc.org#endif 103470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 104ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org#if defined(MIPS32_LE) 105ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.orgvoid WebRtcIsacfix_Time2SpecMIPS(int16_t* inre1Q9, 106ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org int16_t* inre2Q9, 107ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org int16_t* outre, 108ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org int16_t* outim); 109ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.orgvoid WebRtcIsacfix_Spec2TimeMIPS(int16_t* inreQ7, 110ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org int16_t* inimQ7, 111ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org int32_t* outre1Q16, 112ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org int32_t* outre2Q16); 113ceafa8cce9554b0777aa3cbdf70236e1fbabb414andrew@webrtc.org#endif 114470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 115a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* filterbank functions */ 116470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 1170946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_SplitAndFilter1(int16_t* in, 1180946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* LP16, 1190946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* HP16, 120478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org PreFiltBankstr* prefiltdata); 121470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 1220946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_FilterAndCombine1(int16_t* tempin_ch1, 1230946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* tempin_ch2, 1240946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* out16, 125478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org PostFiltBankstr* postfiltdata); 126470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 1277796c02b4280139ea6e082b5012dd07f627267c1turajs@google.com#ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED 128470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 1290946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_SplitAndFilter2(int16_t* in, 1300946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* LP16, 1310946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* HP16, 132478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org PreFiltBankstr* prefiltdata); 133470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 1340946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgvoid WebRtcIsacfix_FilterAndCombine2(int16_t* tempin_ch1, 1350946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* tempin_ch2, 1360946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* out16, 137478291157282e87c261cc1f7351dc53c60184365kma@webrtc.org PostFiltBankstr* postfiltdata, 1380946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t len); 139470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 140470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#endif 141470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 142a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* normalized lattice filters */ 143470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 144dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kastingvoid WebRtcIsacfix_NormLatticeFilterMa(size_t orderCoef, 1450946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* stateGQ15, 1460946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* lat_inQ0, 1470946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* filt_coefQ15, 1480946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* gain_lo_hiQ17, 1490946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t lo_hi, 1500946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* lat_outQ9); 1510946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org 152dce40cf804019a9898b6ab8d8262466b697c56e0Peter Kastingvoid WebRtcIsacfix_NormLatticeFilterAr(size_t orderCoef, 1530946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* stateGQ0, 1540946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* lat_inQ25, 1550946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* filt_coefQ15, 1560946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int32_t* gain_lo_hiQ17, 1570946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t lo_hi, 1580946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* lat_outQ0); 159470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com 160a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* TODO(kma): Remove the following functions into individual header files. */ 161a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org 162a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* Internal functions in both C and ARM Neon versions */ 163a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org 1640946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgint WebRtcIsacfix_AutocorrC(int32_t* __restrict r, 1650946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org const int16_t* __restrict x, 1660946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t N, 1670946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t order, 1680946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* __restrict scale); 169f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 170f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.orgvoid WebRtcIsacfix_FilterMaLoopC(int16_t input0, 171f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int16_t input1, 172f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t input2, 173f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr0, 174f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr1, 175f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr2); 176f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 177cb7f8ce2df7564546936d3041a96ccc86a90f988Andrew MacDonald#if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 1780946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgint WebRtcIsacfix_AutocorrNeon(int32_t* __restrict r, 1790946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org const int16_t* __restrict x, 1800946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t N, 1810946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t order, 1820946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* __restrict scale); 183f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 184f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.orgvoid WebRtcIsacfix_FilterMaLoopNeon(int16_t input0, 185f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int16_t input1, 186919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int32_t input2, 187919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int32_t* ptr0, 188919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int32_t* ptr1, 189919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int32_t* ptr2); 190919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org#endif 191919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org 192919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org#if defined(MIPS32_LE) 193919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.orgint WebRtcIsacfix_AutocorrMIPS(int32_t* __restrict r, 194919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org const int16_t* __restrict x, 195919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int16_t N, 196919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int16_t order, 197919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int16_t* __restrict scale); 198919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org 199919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.orgvoid WebRtcIsacfix_FilterMaLoopMIPS(int16_t input0, 200919914d71becdf4ef3a322d0af0d997c7f458e7candrew@webrtc.org int16_t input1, 201f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t input2, 202f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr0, 203f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr1, 204f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr2); 205f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org#endif 206f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 207a15ea4965ef07f6aa074339f206383028e3b8898kma@webrtc.org/* Function pointers associated with the above functions. */ 208f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 2090946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.orgtypedef int (*AutocorrFix)(int32_t* __restrict r, 2100946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org const int16_t* __restrict x, 2110946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t N, 2120946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t order, 2130946a56023d821e0deca04029bb016ae1f23aa82pbos@webrtc.org int16_t* __restrict scale); 214f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.orgextern AutocorrFix WebRtcIsacfix_AutocorrFix; 215f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 216f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.orgtypedef void (*FilterMaLoopFix)(int16_t input0, 217f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int16_t input1, 218f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t input2, 219f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr0, 220f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr1, 221f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org int32_t* ptr2); 222f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.orgextern FilterMaLoopFix WebRtcIsacfix_FilterMaLoopFix; 223f0a964dc0a287469c68ca4fd195f95aaf24be45fkma@webrtc.org 2241786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.org#ifdef __cplusplus 2251786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.org} // extern "C" 2261786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.org#endif 2271786436eb27822ec00980c8fe2c5ecdfd789dac5kma@webrtc.org 228470e71d3649f6cac4688e83819640b012b5d38bbniklase@google.com#endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_CODEC_H_ */ 229