f45c8ca88b
Reland r8248 "Introduce ACMGenericCodecWrapper"
...
This effectively reverts r8249.
This new class inherits from ACMGenericCodec. The purpose is to wrap
AudioEncoder objects into an ACMGenericCodec interface. This is a
temporary construction that will be used during the ACM redesign work.
BUG=4228
COAUTHOR=kwiberg@webrtc.org
TBR=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/38919004
Cr-Commit-Position: refs/heads/master@{#8255}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8255 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-05 18:30:16 +00:00
4455f6243a
WebRtcIsacfix_Time2SpecNeon and _Spec2TimeNeon: Fix stack alignment
...
The ABI
(http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042e/IHI0042E_aapcs.pdf )
says to 8-byte-align stack frames. That means we have to push an even
number of registers on function entry if we want to be able to make
subroutine calls without adjusting the stack first.
BUG=4177
R=bjornv@webrtc.org , henrik.lundin@webrtc.org , zhongwei.yao@arm.com
Review URL: https://webrtc-codereview.appspot.com/33149004
Cr-Commit-Position: refs/heads/master@{#8214}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8214 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-30 11:58:15 +00:00
bdebccf384
Fix a number of things in AudioEncoderDecoderIsac*
...
- Add max_bit_rate and max_payload_size_bytes to config structs.
- Fix support for 48 kHz sample rate.
- Fix iSAC-RED.
- Add method UpdateDecoderSampleRate().
- Update locking structure with a separate lock for local member
variables used by the encoder methods.
BUG=3926
COAUTHOR:kwiberg@webrtc.org
R=minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/41659004
Cr-Commit-Position: refs/heads/master@{#8204}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8204 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-29 14:11:09 +00:00
6c3855258d
Add WebRtcIsacfix_AllpassFilter2FixDec16Neon()'s intrinsics version.
...
This intrinsics version gives bit-exact result as the current C
code. And the performance is 14% better than current assembly
neon version, 3.4 times faster than current C version. The test runs
under Cortex-a53 aarch32 mode, other cpu should give similar performance
result.
Change-Id: Icce5eaf2e17790ce44513d52b53b9f600cc16f96
BUG=4002
R=andrew@webrtc.org , jridges@masque.com
Review URL: https://webrtc-codereview.appspot.com/36689004
Patch from Zhongwei Yao <zhongwei.yao@arm.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8070 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-15 02:56:06 +00:00
86e1e487e7
Move system_wrappers.gyp files to the proper directory.
...
Build targets should not refer to non-subpaths as was happening before when
source/system_wrappers.gyp refers to ../interface/ files.
R=kjellander@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/37609004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8057 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 09:30:52 +00:00
2a26734f04
Partial revert of r7396
...
This change reverts a small part of what was done in r7396. It seems
like that change uncovered another issue with NEON.
BUG=4177,chrome-os-partner:31534
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/33849004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8043 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 20:52:21 +00:00
f3fd8e7cdf
Add NEON intrinsics version for transform_neon
...
WebRtcIsacfix_Time2SpecNeon and WebRtcIsacfix_Spec2TimeNeon are added.
TransformTest in modules_unittests is passed on ARM32/ARM64 platform.
Initially reviewed here:
https://webrtc-codereview.appspot.com/36449004/
BUG=4002
R=andrew@webrtc.org , jridges@masque.com
Change-Id: I0920ff66a0a0f529707fd7e6619f91e271a47019
Review URL: https://webrtc-codereview.appspot.com/31309004
Patch from Yang Zhang <yang.zhang@arm.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8030 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-09 18:29:37 +00:00
84d84471f5
Minor fixes regarding accumulator usage on MIPS platforms.
...
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/33729004
Patch from Ljubomir Papuga <lpapuga@mips.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7979 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-29 17:08:44 +00:00
1090a6eccf
Remove obsolete target_arch == armv7.
...
Also, use arm_version >= 7 so things will continue to work when building
for ARMv8 and higher targets.
BUG=3906
R=kjellander@webrtc.org , tkchin@webrtc.org , zhongwei.yao@arm.com
Review URL: https://webrtc-codereview.appspot.com/38379004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7957 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-18 21:36:18 +00:00
eed7a22bbf
Make an AudioEncoder subclass for iSAC redundant encoding
...
Adding unit test, too.
BUG=3926
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/36559005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7946 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-18 09:52:36 +00:00
eb544460e4
Rename _t struct types in audio_coding.
...
_t names are reserved in POSIX.
R=henrik.lundin@webrtc.org
BUG=162
Review URL: https://webrtc-codereview.appspot.com/34509004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7933 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-17 15:23:29 +00:00
88bdec8c3a
AudioEncoder subclass for iSACfix
...
This patch refactors AudioEncoderDecoderIsac so that it can share
almost all code with the very similar AudioEncoderDecoderIsacFix.
BUG=3926
R=henrik.lundin@webrtc.org , kjellander@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/29259004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7912 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-16 12:49:37 +00:00
b413a30097
Add WebRtcIsacfix_FilterMaLoopNeon's intrinsics version.
...
This intrinsics version gives bit-exact result as the current assembly
neon code. And the performance is 38% better than current assembly
neon version, 5.92 times faster than current C version. The test runs
under Cortex-a53 aarch32 mode, other cpu should give similar performance
result.
BUG=4002
R=andrew@webrtc.org , jridges@masque.com
Change-Id: I257e33ef6d634a519fd71adc4f52b06dd655bd9d
Review URL: https://webrtc-codereview.appspot.com/32749004
Patch from Zhongwei Yao <zhongwei.yao@arm.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7891 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-15 07:23:49 +00:00
3a52458237
add WebRtcIsacfix_AutocorrNeon's intrinsics version
...
The modification only uses the unique part of the
WebRtcIsacfix_AutocorrC function. Pass FiltersTest.AutocorrFixTest test
on both ARMv7 and ARM64, and the single function performance is similar
with original assembly version on different platforms. If not
specified, the code is compiled by GCC 4.6. The result is the "X
version / C version" ratio, and the less is better.
| run 100k times | cortex-a7 | cortex-a15 |
| use C as the base on each | (1.2Ghz) | (1.7Ghz) |
| CPU target | | |
|----------------------------+-----------+------------|
| Neon asm | 24% | 23% |
| Neon intrinsics (GCC 4.6) | 33% | 32% |
| Neon intrinsics (GCC 4.8) | 27% | 27% |
BUG=3850
R=andrew@webrtc.org , jridges@masque.com
Change-Id: Id6cd0671502fadbebd10b1f5493f5b16c988286f
Review URL: https://webrtc-codereview.appspot.com/27999004
Patch from Zhongwei Yao <zhongwei.yao@arm.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7802 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-03 21:58:18 +00:00
1153322cf8
Build fix for MIPS Android Webview build.
...
Excluding optimizations to support MIPS32R6 platform for Android Webview build (see also https://code.google.com/p/webrtc/source/detail?r=7580 ).
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/32459004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7729 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-21 16:28:32 +00:00
508c91683c
Build fix for MIPS32R6.
...
Exclude MIPS optimizations for MIPS32R6 build since some of the instructions
are not supported. This is temporary fix, until the MIPS32R6 code is added.
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25989004
Patch from Ljubomir Papuga <lpapuga@mips.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7580 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 16:26:17 +00:00
a296725d0e
audio_coding/codecs/isac/fix: Replaced macro WEBRTC_SPL_RSHIFT_W32 with >>"
...
BUG=3348,3353
TESTED=locally on linux and trybots
R=henrik.lundin@webrtc.org , kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23119004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7544 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-28 13:05:43 +00:00
67ca26e087
common_audio: Removed trivial macro WEBRTC_SPL_UMUL_16_16
...
The macro made a cast to uint16_t before a plain multiplication. At the few places where it was used the variables were already uint16_t.
Affected components:
* isac/fix
BUG=3348,3353
TESTED=locally on linux and trybots
R=henrik.lundin@webrtc.org , kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/29869004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7543 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-28 13:03:10 +00:00
0552356fda
isacfix: Refactor big-endian reading and writing
...
Make subroutines for encoding and decoding arrays of 16-bit big-endian
integers, and in the process fix a bug: When decoding an odd number of
bytes from be16, the least significant byte of the last int16 in the
array was properly taken to be zero instead of actually being read
(since it's outside the array). However, when encoding an odd number
of bytes, the least significant byte of the last int16 in the array
was written to the output as-is instead of being taken to be zero;
thus, we encoded one byte more than we should. This was probably not
harmful, and the value was dropped at decoding anyway; nevertheless,
writing a constant zero is the safe thing to do, and this patch does
so.
R=aluebs@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/28569004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7527 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-27 11:25:37 +00:00
396a5e0001
WebRtcIsac_Decode et al.: Type encoded data as uint8[], not uint16[]
...
This patch changes WebRtcIsac_Decode, WebRtcIsac_DecodeRcu, and
WebRtcIsacfix_Decode so that they read the encoded data from a uint8
array instead of a uint16 array.
BUG=909
R=aluebs@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25739004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7431 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 11:23:24 +00:00
3f7f899a15
WebRtcIsac_UpdateBwEstimate et al.: Type byte streams as uint8, not uint16
...
This patch changes the signature of WebRtcIsac_UpdateBwEstimate,
WebRtcIsacfix_UpdateBwEstimate, and WebRtcIsacfix_UpdateBwEstimate1 so
that they expect the encoded data to be uint8 arrays, not uint16,
which is more natural. The implementations of the functions are left
unchanged for now.
BUG=909
R=aluebs@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/25729004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7430 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 11:07:06 +00:00
1172988c79
Some WebRtcIsac_* and WebRtcIsacfix_* functions: type encoded stream as uint8[]
...
The affected functions are
WebRtcIsacfix_ReadFrameLen
WebRtcIsacfix_GetNewBitStream
WebRtcIsacfix_ReadBwIndex
and
WebRtcIsac_ReadFrameLen
WebRtcIsac_GetNewBitStream
WebRtcIsac_ReadBwIndex
WebRtcIsac_GetRedPayload
BUG=909
R=aluebs@webrtc.org , henrik.lundin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22979004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7429 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 10:53:42 +00:00
3ea35fdb1b
common_audio: Removed macro WEBRTC_SPL_LSHIFT_W16
...
The macro was a trivial << operation and where used has been replaced by <<. Affected components are
* ilbc
* isacfix
BUG=3348,3353
TESTED=locally on linux and trybots
R=henrik.lundin@webrtc.org , kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22919005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7404 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 08:47:02 +00:00
f71785cd3b
audio_coding: Replaced macro WEBRTC_SPL_RSHIFT_W16 with >>
...
Replaced trivial shift macro with >>. The actual implementation of the macro is simply >>.
Affected codecs:
* ilbc
* isac/fix
BUG=3348,3353
TESTED=locally on linux and trybots
R=henrik.lundin@webrtc.org , kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23889004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7396 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-08 15:36:30 +00:00
532ed43e85
Prevent reading outside iSAC bitstream, if the stream is corrupted.
...
BUG=chrome_373312(#24 )
R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/20089004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7379 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 00:21:02 +00:00
7c15510f38
common_audio refactoring: Removed macro WEBRTC_SPL_LSHIFT_U32
...
The macro is a trivial shift operator including a cast before shift. There is no guard against negative shifts. Replaced with << at place and added casts when necessary.
Affects both fixed and float point versions of iSAC
BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/27369004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7320 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-29 09:40:38 +00:00
7ee24a7906
WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
...
We have to fix both at once, since there's a macro that calls one of
them or the other.
BUG=909
R=andrew@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , minyue@webrtc.org
Committed: https://code.google.com/p/webrtc/source/detail?r=7266
Review URL: https://webrtc-codereview.appspot.com/19229004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7285 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 10:31:02 +00:00
a3c4d4dd2c
Revert 7266 "WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type en..."
...
This was causing apparently legitimate failures on the following bots:
http://chromegw/i/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/2599
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28KK%20Nexus5%29%28dbg%29/builds/2023
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28JB%20Nexus7.2%29%28dbg%29/builds/1825
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28KK%20Nexus5%29/builds/2013
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28JB%20Nexus7.2%29/builds/1795
> WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
>
> We have to fix both at once, since there's a macro that calls one of
> them or the other.
>
> BUG=909
> R=andrew@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , minyue@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/19229004
TBR=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/30519004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7267 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 01:32:57 +00:00
8c5740b485
WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
...
We have to fix both at once, since there's a macro that calls one of
them or the other.
BUG=909
R=andrew@webrtc.org , bjornv@webrtc.org , henrik.lundin@webrtc.org , minyue@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19229004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7266 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 23:04:14 +00:00
262e676a08
Reland rev 7041 with BUILD.gn files.
...
Original description:
Audio codecs to include webrtc/typedefs.h
Will easy merge of webrtc/typedefs.h and webrtc/base/basictypes.h
CL Generated with:
$ git grep -l \"typedefs.h\" | xargs sed -i "s/typedefs.h/webrtc\/typedefs.h/g"
BUG=3777
R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22569004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7061 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 13:28:48 +00:00
3c0aae17f0
Change gflags and gmock includes to be full paths.
...
This will fix PRESUBMIT warnings developers will get due to
r7014 and r7020.
Also some minor style cleanup in:
webrtc/modules/audio_coding/main/test/RTPFile.cc
webrtc/modules/audio_coding/neteq/test/RTPjitter.cc
BUG=
R=henrik.lundin@webrtc.org , niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/23429004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 09:55:40 +00:00
1b8b4c4959
Revert 7041 " Audio codecs to include webrtc/typedefs.h"
...
Breaks gn build, see e.g. http://chromegw.corp.google.com/i/chromium.webrtc.fyi/builders/Linux%20GN/builds/1248/steps/compile/logs/stdio
R=turaj@webrtc.org
TBR=andresp@webrtc.org
BUG=N/A
Review URL: https://webrtc-codereview.appspot.com/19219004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7046 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 19:42:16 +00:00
9730d3aae9
Audio codecs to include webrtc/typedefs.h
...
Will easy merge of webrtc/typedefs.h and webrtc/base/basictypes.h
CL Generated with:
$ git grep -l \"typedefs.h\" | xargs sed -i "s/typedefs.h/webrtc\/typedefs.h/g"
BUG=3777
R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14329004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7041 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 14:37:18 +00:00
af7fdfcde8
Add LTO support for Android Chromium.
...
This is to add support for a Link-Time Optimizations experiment in Android Chromium. As it is disabled by default, it won't change anything for most configurations.
BUG=chromium:407544
R=andrew@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21299004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7009 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-29 17:41:13 +00:00
df9fef6638
common_audio: Removed macro WEBRTC_SPL_DIV
...
The macro has no built-in divide by zero check. The only thing that is done is casting to int32_t.
In addition a bug was discovered where it was supposed to do a division with rounding, but instead did a division with truncation + addition by 2. This is corrected in this CL.
BUG=3348,3353
TESTED=locally on Linux
R=kwiberg@webrtc.org , tina.legrand@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19129004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6998 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-28 12:57:32 +00:00
4f71e22bf9
Refactoring common_audio/signal_processing: Remove macro WEBRTC_SPL_UDIV
...
This macro is a direct use of the division operator without checking for division by zero. Hence, it is dangerous to use.
This CL replaces the macro with '/' at place.
BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org , tina.legrand@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14169004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6976 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 10:25:10 +00:00
047a46f8b4
Remove Android.mk build files.
...
These files are generally not maintained and break, some contain files
that don't exist anymore and do not build anymore. If we need to add
some of these back we should really set up a bot for them.
R=andrew@webrtc.org , glaznev@webrtc.org , henrike@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/15249004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6974 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-26 08:48:51 +00:00
926707b167
Refactoring common_audio: Replace trivial multiplication macro
...
This multiplication macro literally use the '*' operator, so there is no need for it.
BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org , tina.legrand@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22109004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6964 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 11:42:42 +00:00
6e71d17bc9
Refactoring common_audio/signal_processing: Replaces trivial macros
...
The macros WEBRTC_SPL_ADD_SAT_W16 and WEBRTC_SPL_ADD_SAT_W32 make direct use of the corresponding functions WebRtcSpl_AddSatW16() and WebRtcSpl_AddSatW32().
This CL replaces these macros in the code.
BUG=3348,3353
TESTED=locally on linux and trybots
R=kwiberg@webrtc.org , tina.legrand@webrtc.org , turaj@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21199004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6960 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-25 07:44:52 +00:00
742bac20b2
Remove __inline from WebRtcIsacfix_Log2Q8.
...
This function is used externally and needs to always be emitted, also
there's no point in explicitly marking this as inline.
R=tina.legrand@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/13279004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6926 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-19 06:54:12 +00:00
f86b262588
MIPS optimizations for ISAC (patch #3 )
...
Implemented functions:
- WebRtcIsacfix_MatrixProduct1
- WebRtcIsacfix_MatrixProduct2
The optimizations are bit-exact to the C code.
R=andrew@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/18019004
Patch from Ljubomir Papuga <lpapuga@mips.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6919 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-18 17:32:19 +00:00
34a865a038
Roll chromium_revision 288251:289723
...
Mainly to pick up the libvpx.gyp change in r288724
to unblock https://webrtc-codereview.appspot.com/16229005/
Overview of changes in Chrome DEPS:
$ svn diff http://src.chromium.org/chrome/trunk/src/DEPS -r 288251:289723
which can be compared with the output of:
$ svn cat http://webrtc.googlecode.com/svn/trunk/DEPS | grep chromium_deps | sed 's/^ *//' | sort | uniq
In a WebRTC checkout, that sums up to the following relevant changes:
* src/buildtools 59b932:567f0a
* testing/gtest 643:692
* testing/gmock 410:485
* third_party/boringssl/src 533cbe:c3d796
* third_party/libvpx 287125:289332
* third_party/libyuv 1035:1038
* third_party/nss 287121:289430
* third_party/opus/src 256783:289085
* tools/gyp 1959:1964
BUG=2863, chromium:339647
TEST=Local testing as trybots currently cannot handle DEPS changes properly due to http://crbug.com/385594
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22119004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6913 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-16 18:49:55 +00:00
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
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
ceafa8cce9
MIPS optimizations for ISAC (patch #2 )
...
Implemented functions:
- WebRtcIsacfix_CalculateResidualEnergy
- WebRtcIsacfix_Spec2Time
- WebRtcIsacfix_Time2Spec
- WebRtcIsacfix_HighpassFilterFixDec32
- WebRtcIsacfix_PCorr2Q32
Gain achieved: aprox. further 5% on top of patch#1 on ISAC encoding path.
The optimizations are bit-exact to the C code, with the excception of the
MIPS DSPr2 variant of the WebRtcIsacfix_Time2Spec function (the accuracy of
the WebRtcIsacfix_Time2Spec MIPS DSPr2 variant is same or better than C
variant). Code verification and improvement achieved have been determined
using the iSACFixtest application.
R=andrew@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19749004
Patch from Ljubomir Papuga <lpapuga@mips.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6749 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-21 16:43:13 +00:00
8de8c9155e
Maintain constantness of the input to iSAC-fix decoder, and prevent heap-buffer overflow.
...
To save memory in iSAC-fix, decoder operated directly on the recieved bitstream. However, this breaks constantness of input when decoder performed in-place big to little Endian conversion. Furthermore, for bit-streams with odd lengths, this meant writing outside the memory. That is because the last byte will be shifted to the Most Significat Byte which might be outside the allocated memory.
If we care about memory, the solution is to do a big-to-little Endian conversion everytime we read a Word16 from the bitstream.
BUG=845,chrome:379458
R=henrik.lundin@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/15829004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6494 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-19 15:47:09 +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
919914d71b
MIPS optimizations for ISAC (patch #1 )
...
Implemented functions:
- WebRtcIsacfix_AutocorrMIPS
- WebRtcIsacfix_FilterArLoop
- WebRtcIsacfix_FilterMaLoopMIPS
- WebRtcIsacfix_AllpassFilter2FixDec16MIPS (only MIPS DSP)
- WebRtcIsacfix_PitchFilterCore (only MIPS DSPR2)
Gain achieved: from aprox. 15% (MIPS32) up to aprox. 40% (MIPS DSPR2)
R=andrew@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/17559005
Patch from Ljubomir Papuga <lpapuga@mips.com >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6387 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-10 18:13:15 +00:00