Commit Graph

42 Commits

Author SHA1 Message Date
1e3ef4b999 common_audio/signal_processing: Remove macro WEBRTC_SPL_UMUL_32_16_RSFT16
Macros should in general be avoided. WEBRTC_SPL_UMUL_32_16_RSFT16 is only used in iSAC fixed point as part of multiplying with LSB and MSB. A better approach is to have one function for that complete operation in iSAC.

This CL removes the macro and replace the operation locally.

BUG=3148, 3353
TESTED=locally on Linux and trybots
R=tina.legrand@webrtc.org, turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/16349004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6907 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-15 05:17:20 +00:00
8434dbe284 common_audio/signal_processing: Remove macro WEBRTC_SPL_SUB_SAT_W32
This macro is literally using the function WebRtcSpl_SubSatW32(), hence there is no need for a macro.

BUG=3348, 3353
TESTED=locally on Linux and trybots
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14149004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6899 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-14 07:26:28 +00:00
0a3cbb3906 common_audio/signal_processing: Removes macro WEBRTC_SPL_MUL_32_32_RSFT32
The macro is only used at four places in iSAC fixed point and the macro have been replaced at those places.
In addition, it is used in a unit test, but throws a warning treated as error (issue3674).

The macro has both MIPS and armv7 optimizations. Removing them impacts only MIPS platforms without DSP ASE. This may cause a very small increase in complexity when using iSAC fix.
The armv7 optimizations are not used anywhere, since specific ones are used inline in iSAC fix.

BUG=3348,3353,3674
TESTED=locally and trybots
R=ljubomir.papuga@gmail.com, tina.legrand@webrtc.org, turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/16299004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6871 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-12 10:54:50 +00:00
cf8f33a6d6 Removes mismatching signs in signal_processing_unittests
Negative inputs was used in WebRtcSpl_NormU32() causing warnings.

BUG=3674
TESTED=locally and trybots
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17089004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6870 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-12 10:27:21 +00:00
6ac22e6b47 Remove more dependencies on openssl, add dependency on boringssl. Continues on r6798
R=andrew@webrtc.org, fbarchard@chromium.org, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14029004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6867 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-11 21:06:30 +00:00
c0ba4392f1 common_audio: Removes macro WEBRTC_SPL_SHIFT_W16
We should avoid macros in general (see style guide). This shift macro is not a severe one, since there is a check for negativity.

BUG=3348,3353
TESTED=trybots and manually
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/15799004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6591 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-03 13:38:53 +00:00
721f970cba common_audio: Removes macro WEBRTC_SPL_LSHIFT_U16
We should avoid macros in general (see style guide) and the shift ones are particular dangerous since they assume that the user apply a non-negative shift.

Related CL: https://webrtc-codereview.appspot.com/16669004

BUG=3348,3353
TESTED=trybots and manually on linux
R=turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19719004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6444 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-16 10:30:14 +00:00
18026abd82 common_audio/signal_processing: Removes macro WEBRTC_SPL_RSHIFT_U16
This macro is only used at a few places and implies a cast to uint16_t before right shifting. All places already use uint16_t. Further, the amount of shifts applied in the macro has no sanity check for negativity, makes the macro dangerous to use.

BUG=3348,3353
TESTED=trybots and manually
R=kwiberg@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/16669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6393 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 06:53:20 +00:00
782978cfcb common_audio/signal_processing: Moves WEBRTC_SPL_UMUL_16_16_RSFT16 to iSAC fix
This macro is only used by the fixed point version of iSAC. Replacing the (five) locations in arith_routines_logist.c, where it is used, with the actual operation.

BUG=3348,3353
TESTED=trybots and manually
R=kwiberg@webrtc.org, tina.legrand@webrtc.org, turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14659004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6392 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-11 06:39:03 +00:00
aafd7a88c5 The correct fix of workaround in r6261.
The CL also includes same changes to filterbanks.c in iSAC fix and aecm_core_c.c

BUG=3370,3395,3439
TESTED=trybots
R=fdegans@chromium.org, glaznev@webrtc.org, kwiberg@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14609004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6337 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 08:53:51 +00:00
edbe886a0b common_audio/signal_processing: Removed macro WEBRTC_SPL_MUL_16_16_RSFT_WITH_FIXROUND
This macro was only used at two places in fixed point iSAC, where it has been replaced with the operation.

BUG=3348,3353
TESTED=trybots
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/15669004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6336 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-05 08:42:53 +00:00
aca5939dfc common_audio/signal_processing: Fixes arm compilation issues with gcc 4.8
In r6240 gcc was rolled from 4.6 to 4.8 changing the behavior on arm. The output of ComplexFFT differs causing both AECM and NS to perform worse. Looking at issues on gcc it says that there could be a memory shuffling/optimization despite using volatile affecting the output.
Splitting the three instructions in one call into two separate calls makes the compiler take proper actions resulting in correct outputs.

BUG=3370,3395
TESTED=trybots
R=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/21549004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6261 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-28 08:45:04 +00:00
be4ab99a53 Disabling RealFFTTest.RealAndComplexMatch and AudioProcessingTest.Formats as they currently are broken with gcc 4.8.
BUG=3370
R=bjornv@webrtc.org, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14569004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6197 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 12:42:01 +00:00
a3b5673879 common_audio/signal_processing: Removes macro WEBRTC_SPL_UMUL_RSFT16
This macro was only used on two lines in iSACfix and I replaced those with the operations the macro performed.

BUG=3348
TESTED=trybots, manual unittests
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6184 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-16 12:11:20 +00:00
1b21a57902 common_audio/signal_processing: Removed macro WEBRTC_SPL_SUB_SAT_W16
Macro was only mapping a function used in one place.

BUG=3348
TESTED=trybots, unittests
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17499004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6180 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-16 06:40:31 +00:00
d83d607271 common_audio/signal_processing: Removed macro WEBRTC_SPL_MAX_SEED_USED
* Moved the macro to randomization_functions and made it static const.
* Made WebRtc_IncreaseSeed() static, since it is not used outside this function.
* Style guide changes.

BUG=3348,3353
TESTED=trybots, common_audio_unittests, modules_unittests, modules_tests
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/21459004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6179 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-16 06:38:47 +00:00
1aae6bf735 common_audio: Removes unused macros
* WEBRTC_SPL_MUL_32_32_RSFT32BI
* WEBRTC_SPL_IS_NEG

BUG=3348
TESTED=trybots, common_audio_unittests
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/18449004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6169 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-15 07:22:53 +00:00
874920f22e Disable WebRtcSpl_ScaleAndAddVectorsWithRoundNeon due to crash.
The C (unoptimized) version of this function takes less than 1% of NetEq4 and
has been crashing since the NetEq3->4 move.

BUG=3243
R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/16399004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6003 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-28 20:09:09 +00:00
e2fc13e42f Refactoring common_audio/signal_processing: Removed two macros used by isac only.
Removed a macro for malloc() and one for free().  They are only used by the audio codec isac, where I replaced the macro with its implementation.
Further, the includes were updated with full paths and put in alphabetical order.

BUG=N/A
TESTED=trybots,module_tests,module_unittests
R=turaj@webrtc.org, turajs@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8449004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5554 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-14 23:12:34 +00:00
60730cfe3c Remove the requirement to call set_sample_rate_hz and friends.
Instead have ProcessStream transparently handle changes to the stream
audio parameters (sample rate and channels). This removes two locks
per 10 ms ProcessStream call taken by VoiceEngine (four total with the
audio level indicator.)

Also, prepare future improvements by having the splitting filter take
a length parameter. This will allow it to work at different sample
rates. Remove the useless splitting_filter wrapper.

TESTED=voe_cmd_test with audio processing enabled and switching between
codecs; unit tests.

R=aluebs@webrtc.org, bjornv@webrtc.org, turaj@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3949004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5346 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 17:45:09 +00:00
8bf755d5c5 MIPS optimizations for the functions WebRtcSpl_SqrtFloor, WebRtcSpl_CrossCorrelation, WebRtcSpl_ScaleAndAddVectorsWithRound and the inline functions from signal_processing spl_inl.h file.
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1791004

Patch from Ljubomir Papuga <lpapuga@mips.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4779 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-18 17:40:46 +00:00
a3b7406219 Remove unused unreferenced code in webrtc/
The code removed here are .c, .cc and .h files that are not referenced
from anywhere else. E.g. if git-grep showed no occurrence of the file
it's removed. This process was repeated until no more unreferenced
files were present.

BUG=
R=andrew@webrtc.org, henrike@webrtc.org, phoglund@webrtc.org, stefan@webrtc.org, turaj@webrtc.org, wu@webrtc.org, xians@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1945004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4511 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-09 08:47:51 +00:00
fc8aaf02e1 Formalized Real 16-bit FFT for APM.
It also prepares for introducing Real 16-bit FFT Neon code from Openmax to SPL. CL https://webrtc-codereview.appspot.com/1819004/ takes care of that, but this CL is a prerequisite of that one.
Tested audioproc with an offline file. Bit exact.

R=andrew@webrtc.org, rtoy@google.com

Review URL: https://webrtc-codereview.appspot.com/1830004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4390 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-24 17:38:23 +00:00
3d8647f17d Include files from webrtc/.. paths in signal_processing/.
BUG=1662
R=andrew@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1784004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4352 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 13:32:03 +00:00
eed919d95d MIPS optimizations for the following functions:
WebRtcSpl_ComplexBitReverse, WebRtcSpl_ComplexFFT, WebRtcSpl_ComplexIFFT, WebRtcSpl_DownsampleFast and WebRtcSpl_FilterARFastQ12.
Also, moved the common table used in complex_fft functions to a separate header file (webrtc/common_audio/signal_processing/include/complex_fft_tables.h).

R=andrew@webrtc.org, kma@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1126004

Patch from Ljubomir Papuga <lpapuga@mips.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4141 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-30 16:38:36 +00:00
aa30bb7ef5 Include files from webrtc/.. paths in common_audio/
BUG=1662
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1535005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4107 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 09:49:58 +00:00
8e3b594831 Remove const for plain data types in common_audio/
BUG=1644
R=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1464005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4019 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-14 09:24:49 +00:00
f9c289bafe Consolidate all third party licenses in LICENSE_THIRD_PARTY.
* Add the full license to all third party files.
* Correct some entries in LICENSE_THIRD_PARTY which were missing the full
license.
* Relicense all Chromium-licensed files under WebRTC.
* Remove third_party_mods/, which is now redundant.

R=jan.linden@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1396004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3959 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-05 18:54:10 +00:00
342353780d Consolidate common_audio into a single target.
In principle should reduce gyp processing time, but the difference was not measurable. In any case, it's a good simplification that aligns with having a single common_video target.

R=bjornv@webrtc.org, kma@webrtc.org, tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1375004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3928 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-30 23:43:26 +00:00
e4b6064f8e Replace legacy G_CONST with const.
BUG=1608

Review URL: https://webrtc-codereview.appspot.com/1310005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3814 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-10 18:06:57 +00:00
b09130763b WebRtc_Word32 -> int32_t in common_audio/
BUG=314

Review URL: https://webrtc-codereview.appspot.com/1299004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3803 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 16:40:28 +00:00
7d6f11302e Refactored inline assembly code in complex_fft.c, by combining the individual __asm lines into a single block, to avoid potential register usage problems when building with different tools.
Review URL: https://webrtc-codereview.appspot.com/1153004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3592 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-01 23:01:14 +00:00
5140e24037 MIPS optimizations for Signal Processing Library patch01
Review URL: https://webrtc-codereview.appspot.com/1028004
Patch from Ljubomir Papuga <lpapuga@mips.com>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3557 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-21 20:12:21 +00:00
ac46c6dac3 Replaced relative path to reference from <(webrtc_root).
Changed to proper include paths in AECM and NSX.
Tested on trybots.

BUG=None

Review URL: https://webrtc-codereview.appspot.com/1063014

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3450 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 21:06:16 +00:00
63e0964039 Fix webrtc compilation errors for Chrome Win64
Mostly disabling warnings in the gyp files.

BUG=1348
BUG=http://crbug.com/166496
BUG=http://crbug.com/167187

Review URL: https://webrtc-codereview.appspot.com/1063011
Patch from Justin Schuh <jschuh@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3423 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-29 06:45:22 +00:00
a3c82bf667 Remove '<(library)' in gyp files.
This will remove all usage of '<(library)' in all webrtc gyp files. 
Review URL: https://webrtc-codereview.appspot.com/1049005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3392 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-18 23:42:21 +00:00
0af0d3d3f4 Address a build issue with Android-Clang compiler:
error: the value is truncated when put into register, use a modifier to specify the size [-Werror,-Wasm-operand-widths]
  __asm __volatile ("ssat %0, #16, %1" : "=r"(out16) : "r"(value32));
Review URL: https://webrtc-codereview.appspot.com/1029006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3352 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-10 00:46:37 +00:00
55cd78cfc2 Porting ARM optimization from Android to ios.
Tested APM and iSAC in Android. Bit-exact with original versions.
Changes include removing or changing some GCC derivatives (e.g. .fnstart, .hword), instruction syntax, etc.
Review URL: https://webrtc-codereview.appspot.com/934009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3124 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-17 00:22:46 +00:00
f3adba499e Add Android include path so that header files can follow google style
BUG=1011
TEST=bot
Review URL: https://webrtc-codereview.appspot.com/930018

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3107 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-15 18:17:40 +00:00
53a8be20f1 Wraparound distortion in Opus
This CL solves the wraparound distortion in Opus.

In the Opus decoder-wrapper we are downsampling the signal from 48 kHz to 32 kHz. This is done in two steps, using the following functions from the signal processing library:
WebRtcSpl_Resample48khzTo32khz() and WebRtcSpl_VectorBitShiftW32ToW16

The latter does not have a saturation check, and the signal can suffer from wraparound. I've added saturation control to the function.

BUG=issue1089

Review URL: https://webrtc-codereview.appspot.com/967004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3103 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-15 08:34:38 +00:00
ff137edc53 Work around with issue 971 (signal_processing_unittests fails memcheck when compiled with GCC 4.6).
Review URL: https://webrtc-codereview.appspot.com/935008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3017 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-30 01:19:42 +00:00
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/915006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00