2011-07-07 08:21:25 +00:00
|
|
|
/*
|
2012-08-06 21:04:34 +00:00
|
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
2011-07-07 08:21:25 +00:00
|
|
|
*
|
|
|
|
|
* Use of this source code is governed by a BSD-style license
|
|
|
|
|
* that can be found in the LICENSE file in the root of the source
|
|
|
|
|
* tree. An additional intellectual property rights grant can be found
|
|
|
|
|
* in the file PATENTS. All contributing project authors may
|
|
|
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* codec.h
|
|
|
|
|
*
|
|
|
|
|
* This header file contains the calls to the internal encoder
|
|
|
|
|
* and decoder functions.
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2017-09-15 06:47:31 +02:00
|
|
|
#ifndef MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_CODEC_H_
|
|
|
|
|
#define MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_CODEC_H_
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2018-02-01 14:12:55 +01:00
|
|
|
#include "modules/audio_coding/codecs/isac/fix/source/structs.h"
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2012-11-14 18:44:24 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
int WebRtcIsacfix_EstimateBandwidth(BwEstimatorstr* bwest_str,
|
|
|
|
|
Bitstr_dec* streamdata,
|
Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.
This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.
This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002
The change is being landed as TBR to all the folks who reviewed the above.
BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher
Review URL: https://codereview.webrtc.org/1230503003 .
Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 14:52:23 -07:00
|
|
|
size_t packet_size,
|
2013-04-09 00:28:06 +00:00
|
|
|
uint16_t rtp_seq_number,
|
|
|
|
|
uint32_t send_ts,
|
|
|
|
|
uint32_t arr_ts);
|
2013-01-24 01:37:33 +00:00
|
|
|
|
Reland "Upconvert various types to int.", isac portion.
This reverts portions of commit cb180976dd0e9672cde4523d87b5f4857478b5e9, which
reverted commit 83ad33a8aed1fb00e422b6abd33c3e8942821c24. Specifically, the
files in webrtc/modules/audio_coding/codecs/isac/ are relanded.
The original commit message is below:
Upconvert various types to int.
Per comments from HL/kwiberg on https://webrtc-codereview.appspot.com/42569004 , when there is existing usage of mixed types (int16_t, int, etc.), we'd prefer to standardize on larger types like int and phase out use of int16_t.
Specifically, "Using int16 just because we're sure all reasonable values will fit in 16 bits isn't usually meaningful in C."
This converts some existing uses of int16_t (and, in a few cases, other types such as uint16_t) to int (or, in a few places, int32_t). Other locations will be converted to size_t in a separate change.
BUG=none
TBR=kwiberg
Review URL: https://codereview.webrtc.org/1179093002
Cr-Commit-Position: refs/heads/master@{#9422}
2015-06-11 18:19:24 -07:00
|
|
|
int WebRtcIsacfix_DecodeImpl(int16_t* signal_out16,
|
|
|
|
|
IsacFixDecoderInstance* ISACdec_obj,
|
Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.
This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.
This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002
The change is being landed as TBR to all the folks who reviewed the above.
BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher
Review URL: https://codereview.webrtc.org/1230503003 .
Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 14:52:23 -07:00
|
|
|
size_t* current_framesamples);
|
2013-01-24 01:37:33 +00:00
|
|
|
|
Reformat existing code. There should be no functional effects.
This includes changes like:
* Attempt to break lines at better positions
* Use "override" in more places, don't use "virtual" with it
* Use {} where the body is more than one line
* Make declaration and definition arg names match
* Eliminate unused code
* EXPECT_EQ(expected, actual) (but use (actual, expected) for e.g. _GT)
* Correct #include order
* Use anonymous namespaces in preference to "static" for file-scoping
* Eliminate unnecessary casts
* Update reference code in comments of ARM assembly sources to match actual current C code
* Fix indenting to be more style-guide compliant
* Use arraysize() in more places
* Use bool instead of int for "boolean" values (0/1)
* Shorten and simplify code
* Spaces around operators
* 80 column limit
* Use const more consistently
* Space goes after '*' in type name, not before
* Remove unnecessary return values
* Use "(var == const)", not "(const == var)"
* Spelling
* Prefer true, typed constants to "enum hack" constants
* Avoid "virtual" on non-overridden functions
* ASSERT(x == y) -> ASSERT_EQ(y, x)
BUG=none
R=andrew@webrtc.org, asapersson@webrtc.org, henrika@webrtc.org, juberti@webrtc.org, kjellander@webrtc.org, kwiberg@webrtc.org
Review URL: https://codereview.webrtc.org/1172163004
Cr-Commit-Position: refs/heads/master@{#9420}
2015-06-11 14:31:38 -07:00
|
|
|
void WebRtcIsacfix_DecodePlcImpl(int16_t* decoded,
|
|
|
|
|
IsacFixDecoderInstance* ISACdec_obj,
|
Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.
This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.
This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002
The change is being landed as TBR to all the folks who reviewed the above.
BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher
Review URL: https://codereview.webrtc.org/1230503003 .
Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 14:52:23 -07:00
|
|
|
size_t* current_framesample );
|
2013-01-24 01:37:33 +00:00
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
int WebRtcIsacfix_EncodeImpl(int16_t* in,
|
2014-12-17 15:23:29 +00:00
|
|
|
IsacFixEncoderInstance* ISACenc_obj,
|
2013-01-24 01:37:33 +00:00
|
|
|
BwEstimatorstr* bw_estimatordata,
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t CodingMode);
|
2013-01-24 01:37:33 +00:00
|
|
|
|
2014-12-17 15:23:29 +00:00
|
|
|
int WebRtcIsacfix_EncodeStoredData(IsacFixEncoderInstance* ISACenc_obj,
|
2013-01-24 01:37:33 +00:00
|
|
|
int BWnumber,
|
|
|
|
|
float scale);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2012-08-16 15:43:57 +00:00
|
|
|
/* initialization functions */
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
void WebRtcIsacfix_InitMaskingEnc(MaskFiltstr_enc* maskdata);
|
|
|
|
|
void WebRtcIsacfix_InitMaskingDec(MaskFiltstr_dec* maskdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
void WebRtcIsacfix_InitPreFilterbank(PreFiltBankstr* prefiltdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
void WebRtcIsacfix_InitPostFilterbank(PostFiltBankstr* postfiltdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
void WebRtcIsacfix_InitPitchFilter(PitchFiltstr* pitchfiltdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
void WebRtcIsacfix_InitPitchAnalysis(PitchAnalysisStruct* State);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-01-24 01:37:33 +00:00
|
|
|
void WebRtcIsacfix_InitPlc(PLCstr* State);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
|
2012-08-16 15:43:57 +00:00
|
|
|
/* transform functions */
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
void WebRtcIsacfix_InitTransform();
|
|
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
typedef void (*Time2Spec)(int16_t* inre1Q9,
|
|
|
|
|
int16_t* inre2Q9,
|
|
|
|
|
int16_t* outre,
|
|
|
|
|
int16_t* outim);
|
|
|
|
|
typedef void (*Spec2Time)(int16_t* inreQ7,
|
|
|
|
|
int16_t* inimQ7,
|
|
|
|
|
int32_t* outre1Q16,
|
|
|
|
|
int32_t* outre2Q16);
|
2013-01-24 01:37:33 +00:00
|
|
|
|
|
|
|
|
extern Time2Spec WebRtcIsacfix_Time2Spec;
|
2012-12-12 23:00:52 +00:00
|
|
|
extern Spec2Time WebRtcIsacfix_Spec2Time;
|
|
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
void WebRtcIsacfix_Time2SpecC(int16_t* inre1Q9,
|
|
|
|
|
int16_t* inre2Q9,
|
|
|
|
|
int16_t* outre,
|
|
|
|
|
int16_t* outim);
|
|
|
|
|
void WebRtcIsacfix_Spec2TimeC(int16_t* inreQ7,
|
|
|
|
|
int16_t* inimQ7,
|
|
|
|
|
int32_t* outre1Q16,
|
|
|
|
|
int32_t* outre2Q16);
|
2012-12-12 23:00:52 +00:00
|
|
|
|
2016-05-17 10:56:40 -07:00
|
|
|
#if defined(WEBRTC_HAS_NEON)
|
2013-04-09 00:28:06 +00:00
|
|
|
void WebRtcIsacfix_Time2SpecNeon(int16_t* inre1Q9,
|
|
|
|
|
int16_t* inre2Q9,
|
|
|
|
|
int16_t* outre,
|
|
|
|
|
int16_t* outim);
|
|
|
|
|
void WebRtcIsacfix_Spec2TimeNeon(int16_t* inreQ7,
|
|
|
|
|
int16_t* inimQ7,
|
|
|
|
|
int32_t* outre1Q16,
|
|
|
|
|
int32_t* outre2Q16);
|
2012-12-12 23:00:52 +00:00
|
|
|
#endif
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2014-07-21 16:43:13 +00:00
|
|
|
#if defined(MIPS32_LE)
|
|
|
|
|
void WebRtcIsacfix_Time2SpecMIPS(int16_t* inre1Q9,
|
|
|
|
|
int16_t* inre2Q9,
|
|
|
|
|
int16_t* outre,
|
|
|
|
|
int16_t* outim);
|
|
|
|
|
void WebRtcIsacfix_Spec2TimeMIPS(int16_t* inreQ7,
|
|
|
|
|
int16_t* inimQ7,
|
|
|
|
|
int32_t* outre1Q16,
|
|
|
|
|
int32_t* outre2Q16);
|
|
|
|
|
#endif
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2012-08-16 15:43:57 +00:00
|
|
|
/* filterbank functions */
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
void WebRtcIsacfix_SplitAndFilter1(int16_t* in,
|
|
|
|
|
int16_t* LP16,
|
|
|
|
|
int16_t* HP16,
|
2013-01-24 01:37:33 +00:00
|
|
|
PreFiltBankstr* prefiltdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
void WebRtcIsacfix_FilterAndCombine1(int16_t* tempin_ch1,
|
|
|
|
|
int16_t* tempin_ch2,
|
|
|
|
|
int16_t* out16,
|
2013-01-24 01:37:33 +00:00
|
|
|
PostFiltBankstr* postfiltdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2011-08-30 20:30:17 +00:00
|
|
|
#ifdef WEBRTC_ISAC_FIX_NB_CALLS_ENABLED
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
void WebRtcIsacfix_SplitAndFilter2(int16_t* in,
|
|
|
|
|
int16_t* LP16,
|
|
|
|
|
int16_t* HP16,
|
2013-01-24 01:37:33 +00:00
|
|
|
PreFiltBankstr* prefiltdata);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
void WebRtcIsacfix_FilterAndCombine2(int16_t* tempin_ch1,
|
|
|
|
|
int16_t* tempin_ch2,
|
|
|
|
|
int16_t* out16,
|
2013-01-24 01:37:33 +00:00
|
|
|
PostFiltBankstr* postfiltdata,
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t len);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
2012-08-16 15:43:57 +00:00
|
|
|
/* normalized lattice filters */
|
2011-07-07 08:21:25 +00:00
|
|
|
|
Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.
This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.
This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002
The change is being landed as TBR to all the folks who reviewed the above.
BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher
Review URL: https://codereview.webrtc.org/1230503003 .
Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 14:52:23 -07:00
|
|
|
void WebRtcIsacfix_NormLatticeFilterMa(size_t orderCoef,
|
2013-04-09 00:28:06 +00:00
|
|
|
int32_t* stateGQ15,
|
|
|
|
|
int16_t* lat_inQ0,
|
|
|
|
|
int16_t* filt_coefQ15,
|
|
|
|
|
int32_t* gain_lo_hiQ17,
|
|
|
|
|
int16_t lo_hi,
|
|
|
|
|
int16_t* lat_outQ9);
|
|
|
|
|
|
Update a ton of audio code to use size_t more correctly and in general reduce
use of int16_t/uint16_t.
This is the upshot of a recommendation by henrik.lundin and kwiberg on an original small change ( https://webrtc-codereview.appspot.com/42569004/#ps1 ) to stop using int16_t just because values could fit in it, and is similar in nature to a previous "mass change to use size_t more" ( https://webrtc-codereview.appspot.com/23129004/ ) which also needed to be split up for review but to land all at once, since, like adding "const", such changes tend to cause a lot of transitive effects.
This was be reviewed and approved in pieces:
https://codereview.webrtc.org/1224093003
https://codereview.webrtc.org/1224123002
https://codereview.webrtc.org/1224163002
https://codereview.webrtc.org/1225133003
https://codereview.webrtc.org/1225173002
https://codereview.webrtc.org/1227163003
https://codereview.webrtc.org/1227203003
https://codereview.webrtc.org/1227213002
https://codereview.webrtc.org/1227893002
https://codereview.webrtc.org/1228793004
https://codereview.webrtc.org/1228803003
https://codereview.webrtc.org/1228823002
https://codereview.webrtc.org/1228823003
https://codereview.webrtc.org/1228843002
https://codereview.webrtc.org/1230693002
https://codereview.webrtc.org/1231713002
The change is being landed as TBR to all the folks who reviewed the above.
BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, pbos@webrtc.org
TBR=aluebs, andrew, asapersson, henrika, hlundin, jan.skoglund, kwiberg, minyue, pbos, pthatcher
Review URL: https://codereview.webrtc.org/1230503003 .
Cr-Commit-Position: refs/heads/master@{#9768}
2015-08-24 14:52:23 -07:00
|
|
|
void WebRtcIsacfix_NormLatticeFilterAr(size_t orderCoef,
|
2013-04-09 00:28:06 +00:00
|
|
|
int16_t* stateGQ0,
|
|
|
|
|
int32_t* lat_inQ25,
|
|
|
|
|
int16_t* filt_coefQ15,
|
|
|
|
|
int32_t* gain_lo_hiQ17,
|
|
|
|
|
int16_t lo_hi,
|
|
|
|
|
int16_t* lat_outQ0);
|
2011-07-07 08:21:25 +00:00
|
|
|
|
2012-08-16 15:43:57 +00:00
|
|
|
/* TODO(kma): Remove the following functions into individual header files. */
|
|
|
|
|
|
|
|
|
|
/* Internal functions in both C and ARM Neon versions */
|
|
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
int WebRtcIsacfix_AutocorrC(int32_t* __restrict r,
|
|
|
|
|
const int16_t* __restrict x,
|
|
|
|
|
int16_t N,
|
|
|
|
|
int16_t order,
|
|
|
|
|
int16_t* __restrict scale);
|
2011-12-14 18:59:43 +00:00
|
|
|
|
|
|
|
|
void WebRtcIsacfix_FilterMaLoopC(int16_t input0,
|
|
|
|
|
int16_t input1,
|
|
|
|
|
int32_t input2,
|
|
|
|
|
int32_t* ptr0,
|
|
|
|
|
int32_t* ptr1,
|
|
|
|
|
int32_t* ptr2);
|
|
|
|
|
|
2016-05-17 10:56:40 -07:00
|
|
|
#if defined(WEBRTC_HAS_NEON)
|
2013-04-09 00:28:06 +00:00
|
|
|
int WebRtcIsacfix_AutocorrNeon(int32_t* __restrict r,
|
|
|
|
|
const int16_t* __restrict x,
|
|
|
|
|
int16_t N,
|
|
|
|
|
int16_t order,
|
|
|
|
|
int16_t* __restrict scale);
|
2011-12-14 18:59:43 +00:00
|
|
|
|
|
|
|
|
void WebRtcIsacfix_FilterMaLoopNeon(int16_t input0,
|
|
|
|
|
int16_t input1,
|
2014-06-10 18:13:15 +00:00
|
|
|
int32_t input2,
|
|
|
|
|
int32_t* ptr0,
|
|
|
|
|
int32_t* ptr1,
|
|
|
|
|
int32_t* ptr2);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined(MIPS32_LE)
|
|
|
|
|
int WebRtcIsacfix_AutocorrMIPS(int32_t* __restrict r,
|
|
|
|
|
const int16_t* __restrict x,
|
|
|
|
|
int16_t N,
|
|
|
|
|
int16_t order,
|
|
|
|
|
int16_t* __restrict scale);
|
|
|
|
|
|
|
|
|
|
void WebRtcIsacfix_FilterMaLoopMIPS(int16_t input0,
|
|
|
|
|
int16_t input1,
|
2011-12-14 18:59:43 +00:00
|
|
|
int32_t input2,
|
|
|
|
|
int32_t* ptr0,
|
|
|
|
|
int32_t* ptr1,
|
|
|
|
|
int32_t* ptr2);
|
|
|
|
|
#endif
|
|
|
|
|
|
2012-08-16 15:43:57 +00:00
|
|
|
/* Function pointers associated with the above functions. */
|
2011-12-14 18:59:43 +00:00
|
|
|
|
2013-04-09 00:28:06 +00:00
|
|
|
typedef int (*AutocorrFix)(int32_t* __restrict r,
|
|
|
|
|
const int16_t* __restrict x,
|
|
|
|
|
int16_t N,
|
|
|
|
|
int16_t order,
|
|
|
|
|
int16_t* __restrict scale);
|
2011-12-14 18:59:43 +00:00
|
|
|
extern AutocorrFix WebRtcIsacfix_AutocorrFix;
|
|
|
|
|
|
|
|
|
|
typedef void (*FilterMaLoopFix)(int16_t input0,
|
|
|
|
|
int16_t input1,
|
|
|
|
|
int32_t input2,
|
|
|
|
|
int32_t* ptr0,
|
|
|
|
|
int32_t* ptr1,
|
|
|
|
|
int32_t* ptr2);
|
|
|
|
|
extern FilterMaLoopFix WebRtcIsacfix_FilterMaLoopFix;
|
|
|
|
|
|
2012-11-14 18:44:24 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
} // extern "C"
|
|
|
|
|
#endif
|
|
|
|
|
|
2017-09-15 06:47:31 +02:00
|
|
|
#endif /* MODULES_AUDIO_CODING_CODECS_ISAC_FIX_SOURCE_CODEC_H_ */
|