Commit Graph

565 Commits

Author SHA1 Message Date
b14f00113e Some minor (bitexact) AEC echo suppressor refactoring
-Moved filter reset from the echo suppression
 into the echo subtraction code where it belongs
 (the echo subtractor should own its filter reset).
-Moved the selection between using the microphone sinal and
 the echo subtractor output down to the lowest level in the
 EchoSuppression function. This makes sense as that selection
 was very hidden in an unrelated sub-sub-function call and
 as the selection is critical for what the AEC outputs.

The changes have been tested for bitexactness.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1499573003

Cr-Commit-Position: refs/heads/master@{#10956}
2015-12-09 19:07:27 +00:00
afeb43897a Moved code into the lowest level of EchoSuppression
to simplify future refactoring and development.

In more detail:
1) Moved the updating of eBuf from the EchoSubtraction method
   to the EchoSuppression method as it is only used in the latter.
2) Moved the computation of efw and dfw from the SubbandCoherence method
   as those are actually the analysis filterbank computation that is not
   directly related to the coherence.
3) As a consequence of 2) 3 functions needed to be replaced by the
   generic function pointer scheme used in WebRTCAec as they have
   optimized versions for SSE2 and NEON (which before were local to each
   of the aec_core*.c files.

Motivation:
Apart from making sense from a logical point of view, the changes will
a) Allow eBuf stored in half the size on the state.
b) Allow simpler switching between using the the microphone signal
   and echo subtractor output in the echo suppressor.
c) Allow further refactoring that move all the changes to eBuf to one method
   (currently those are happening in at least 4 different methods.

Drawbacks:
i) dfw is moved to EchoSuppression which increases the stack usage for that
 method. This will, however, be improved once further refactoring can be done.

The changes have been tested for bitexactness on Linux using a quite extensive dataset.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1494563002

Cr-Commit-Position: refs/heads/master@{#10954}
2015-12-09 16:50:29 +00:00
5e465c33ca Make NoiseSuppression not a processing component (bit exact).
BUG=webrtc:5298

patch from issue 1490333004 at patchset 1 (http://crrev.com/1490333004#ps1)

Review URL: https://codereview.webrtc.org/1507683006

Cr-Commit-Position: refs/heads/master@{#10944}
2015-12-08 21:22:35 +00:00
70f9903e57 Make HighPassFilter not a ProcessingComponent anymore (bit exact).
BUG=webrtc:5298

Review URL: https://codereview.webrtc.org/1490333004

Cr-Commit-Position: refs/heads/master@{#10939}
2015-12-08 19:07:38 +00:00
631e134551 Rewrote the thread synchronization parts of the test for the locking in APM in response to a locking problem when running in a single-threaded manner.
To try to resolve the problem I replaced the custom synchronization with rtc::Event which made the code cleaner, faster, and less error prone.

However, in the end the source of the test locks was that during TearDown one of the threads was stuck in a waiting loop.

I added a fix for the TearDown issue but still decided to keep the rtc:Event - based code change metioned above as that gave a more clean code.

BUG=

Review URL: https://codereview.webrtc.org/1490113004

Cr-Commit-Position: refs/heads/master@{#10880}
2015-12-03 09:15:37 +00:00
de0fc58784 Adding two more debug macros for logging scalar values to file.
The two added macros simplifies the logging code when a value which is not stored in a variable should be logged.

BUG=

Review URL: https://codereview.webrtc.org/1488613002

Cr-Commit-Position: refs/heads/master@{#10870}
2015-12-02 16:20:56 +00:00
df3efa8c07 Introduced the new locking scheme
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1424663003

Cr-Commit-Position: refs/heads/master@{#10836}
2015-11-28 20:35:18 +00:00
7e43138c08 -Removed the state as an input to the FilterAdaptation function.
-Renamed the TimeToFrequency and FrequencyToTime functions.
-Moved the windowing from the TimeToFrequency function.
-Simplified the EchoSubtraction function.

Note that the aec state is still an input to the EchoSubtraction function, and it currently needs to be that in order to support the output of the debug file. The longer-term goal is, however, to order the state into substates. This will simplify the parameter lists to the EchoCancellation function as well as replace the aec state as a parameter

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1456123003

Cr-Commit-Position: refs/heads/master@{#10830}
2015-11-27 23:24:32 +00:00
81b9bfe685 Added a threadchecking scheme to APM that checks that the APM API calls are called from the correct threads. The actual threadcheckers were, however, removed and will be reintroduced in another upcoming CL.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1422013002

Cr-Commit-Position: refs/heads/master@{#10817}
2015-11-27 10:47:36 +00:00
8c38e8b9b9 Clean up PlatformThread.
* Move PlatformThread to rtc::.
* Remove ::CreateThread factory method.
* Make non-scoped_ptr from a lot of invocations.
* Make Start/Stop void.
* Remove rtc::Thread priorities, which were unused and would collide.
* Add ::IsRunning() to PlatformThread.

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1476453002 .

Cr-Commit-Position: refs/heads/master@{#10812}
2015-11-26 16:45:57 +00:00
96cb5309ed Removed api call that will break the upcoming thread checking scheme
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1472173003

Cr-Commit-Position: refs/heads/master@{#10799}
2015-11-26 10:21:55 +00:00
6e004a44e8 Revert of Created a test that reports the statistics for the duration of APM stream processing API calls. (patchset #15 id:280001 of https://codereview.webrtc.org/1436553004/ )
Reason for revert:
This breaks the Win32 Release [large tests] bot (webrtc_perf_tests times out after 1h23m): https://build.chromium.org/p/client.webrtc/builders/Win32%20Release%20%5Blarge%20tests%5D

The Mac64 Release [large tests] bot's runtime also increased with +20 minutes.

These bot configs are not a part of the default trybot set, so please run them manually or add this to the CL description:
CQ_EXTRA_TRYBOTS=tryserver.webrtc:win_baremetal,mac_baremetal,linux_baremetal

Original issue's description:
> A unittest that reports the statistics for the duration of an APM stream processing API call.
>
> BUG=webrtc:5099
>
> Committed: https://crrev.com/880896ab0976bbf86a6753d0c900c70e51f421cb
> Cr-Commit-Position: refs/heads/master@{#10786}

TBR=henrik.lundin@webrtc.org,solenberg@webrtc.org,peah@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1473733004

Cr-Commit-Position: refs/heads/master@{#10791}
2015-11-25 20:27:46 +00:00
54eb5e2e9a Removed the aec state as an input parameter to the FilterFar function.
BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1454983006

Cr-Commit-Position: refs/heads/master@{#10787}
2015-11-25 15:43:20 +00:00
880896ab09 A unittest that reports the statistics for the duration of an APM stream processing API call.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1436553004

Cr-Commit-Position: refs/heads/master@{#10786}
2015-11-25 10:07:57 +00:00
d860523112 First part of the preparatory work before the actual work for solving the ducking problem starts.
This works aims to:
-More clearly separate the functionalities in the AEC.
-Make the inputs and outputs to functions more clear (currently the state struct is often passed as a parameter to the functions and the functions use members of the state both as inputs and outputs, which reduces the readability of the code and makes it difficult to change/refactor.

What is done in this CL:
-Most of what belongs to the echo subtraction functionality has been moved to a separate function.
-The NonLinearProcessing function has been renamed to EchoSuppressor which I think is more appropriate.
-Part of the code was replaced by a call to the TimeToFrequency function (which was also suggested by an existing todo).
-For consistency, a function FrequencyToTime doing the opposite of TimeToFrequency was added and part of the code was moved to that.
-The ScaleErrorSignal function was changed to no longer have the state as an input parameter. This entailed also changing the corresponding assembly optimized files accordingly.

Testing:
-The changes have been tested for bitexactness on Linux using a fairly extensive test.
-All the unittests pass on linux.

BUG=webrtc:5201

Review URL: https://codereview.webrtc.org/1455163006

Cr-Commit-Position: refs/heads/master@{#10764}
2015-11-24 07:05:49 +00:00
12411ef40e Move ThreadWrapper to ProcessThread in base.
Also removes all virtual methods. Permits using a thread from
rtc_base_approved (namely event tracing).

BUG=webrtc:5158
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1469013002

Cr-Commit-Position: refs/heads/master@{#10760}
2015-11-23 22:48:01 +00:00
b0ad43baa0 Add aecdump support to audioproc_f
Originally landed here: https://codereview.webrtc.org/1409943002/
The transient suppression fix landed here: https://codereview.webrtc.org/1411423010/

TBR=mflodman

Review URL: https://codereview.webrtc.org/1432843002

Cr-Commit-Position: refs/heads/master@{#10722}
2015-11-20 08:11:58 +00:00
2446e5a2de Fixed the render queue item size preallocation and verification, moved constant declarations, removed redundant queue allocation
BUG=

Review URL: https://codereview.webrtc.org/1454683002

Cr-Commit-Position: refs/heads/master@{#10689}
2015-11-18 14:11:18 +00:00
f70568c04b So long and thanks for all the code reviews!
- Remove myself from OWNERS.
- Add myself to AUTHORS (I signed a CLA).
- Add minyue to audio_conference_mixer which would otherwise be empty.
- Add missing comma in WATCHLISTS.

Review URL: https://codereview.webrtc.org/1458763002

Cr-Commit-Position: refs/heads/master@{#10686}
2015-11-18 11:07:45 +00:00
192164eebc Preparational work before introducing the locks in order to harmonize the code:
-Moved the initialize function
-Moved api_format into the shared state

BUG=

Review URL: https://codereview.webrtc.org/1413093002

Cr-Commit-Position: refs/heads/master@{#10668}
2015-11-17 10:16:51 +00:00
4d291f7d5e Applied the render queueing to the agc.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1416583003

Cr-Commit-Position: refs/heads/master@{#10667}
2015-11-17 07:52:32 +00:00
fa6228e221 Introduced the render sample queue for the aec and aecm.
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1410833002

Cr-Commit-Position: refs/heads/master@{#10662}
2015-11-17 00:27:50 +00:00
9b72af94cd Remove webrtc/modules/audio_processing/{aec,aecm,ns}/include
BUG=webrtc:5095
TESTED=git cl try -c --bot=android_compile_rel --bot=linux_compile_rel --bot=win_compile_rel --bot=mac_compile_rel --bot=ios_rel --bot=linux_gn_rel --bot=win_x64_gn_rel --bot=mac_x64_gn_rel --bot=android_gn_rel -m tryserver.webrtc
R=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1440523002 .

Cr-Commit-Position: refs/heads/master@{#10608}
2015-11-11 19:16:28 +00:00
be57983f4b Rename Maybe to Optional
And add examples of good and bad usage to the documentation.

R=aluebs@webrtc.org, henrik.lundin@webrtc.org, pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1432553007 .

Cr-Commit-Position: refs/heads/master@{#10588}
2015-11-10 21:34:32 +00:00
c12be3984f -Removed the indirect error message reporting in aec and aecm.
-Made the component error messages generic to be an unspecified error message.

BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1404743003

Cr-Commit-Position: refs/heads/master@{#10570}
2015-11-10 07:53:53 +00:00
c1cd2bbd79 Turned off progress report for finished processing when the progress report is explicitly deactivated
BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1407723002

Cr-Commit-Position: refs/heads/master@{#10566}
2015-11-09 18:38:12 +00:00
1f1912d1f0 Added unittest of the locking functionality in the audio processing module
The test is currently disabled as it takes too long to run in a coffe-cup manner

BUG=webrtc:5099

Review URL: https://codereview.webrtc.org/1394803002

Cr-Commit-Position: refs/heads/master@{#10560}
2015-11-09 11:13:25 +00:00
b7a5c16d2c Revert of Add aecdump support to audioproc_f. (patchset #8 id:200001 of https://codereview.webrtc.org/1409943002/ )
This is the second revert. The first attempt in https://codereview.webrtc.org/1423693008/
was missing a subtle curly brace caused by a merge conflict.
I'm going to let this one go through the CQ.

Reason for revert:
This breaks iOS GYP generation as described on http://www.webrtc.org/native-code/ios
I'm going to drive getting the build_with_libjingle=1 setting removed from the bots to match the official instructions.

See https://code.google.com/p/webrtc/issues/detail?id=4653 for more context, as this is exactly what that issue tries to solve.

Original issue's description:
> Add aecdump support to audioproc_f.
>
> Add a new interface to abstract away file operations. This CL temporarily
> removes support for dumping the output of reverse streams. It will be easy to
> restore in the new framework, although we may decide to only allow it with
> the aecdump format.
>
> We also now require the user to specify the output format, rather than
> defaulting to the input format.
>
> TEST=Bit-exact output to the previous audioproc_f version using an input wav
> file, and to the legacy audioproc using an aecdump file.
>
> Committed: https://crrev.com/bdafe31b86e9819b0adb9041f87e6194b7422b08
> Cr-Commit-Position: refs/heads/master@{#10460}

TBR=aluebs@webrtc.org,peah@webrtc.org,andrew@webrtc.org
BUG=

Review URL: https://codereview.webrtc.org/1412963007

Cr-Commit-Position: refs/heads/master@{#10532}
2015-11-05 20:33:25 +00:00
86b40506b3 Reland of Add aecdump support to audioproc_f. (patchset #2 id:250001 of https://codereview.webrtc.org/1423693008/ )
Reason for revert:
Oh dear, this broke compilation.
I guess more was built on top of this CL before I reverted it.

Reverting now for futher investigation (and re-land using CQ)

Original issue's description:
> Revert of Add aecdump support to audioproc_f. (patchset #8 id:200001 of https://codereview.webrtc.org/1409943002/ )
>
> Reason for revert:
> This breaks iOS GYP generation as described on http://www.webrtc.org/native-code/ios
> I'm going to drive getting the build_with_libjingle=1 setting removed from the bots to match the official instructions.
>
> See https://code.google.com/p/webrtc/issues/detail?id=4653 for more context, as this is exactly what that issue tries to solve.
>
> Original issue's description:
> > Add aecdump support to audioproc_f.
> >
> > Add a new interface to abstract away file operations. This CL temporarily
> > removes support for dumping the output of reverse streams. It will be easy to
> > restore in the new framework, although we may decide to only allow it with
> > the aecdump format.
> >
> > We also now require the user to specify the output format, rather than
> > defaulting to the input format.
> >
> > TEST=Bit-exact output to the previous audioproc_f version using an input wav
> > file, and to the legacy audioproc using an aecdump file.
> >
> > Committed: https://crrev.com/bdafe31b86e9819b0adb9041f87e6194b7422b08
> > Cr-Commit-Position: refs/heads/master@{#10460}
>
> TBR=aluebs@webrtc.org,peah@webrtc.org,andrew@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/d279941bb54bfdc6e7324bf36cac76581474b96d
> Cr-Commit-Position: refs/heads/master@{#10523}

TBR=aluebs@webrtc.org,peah@webrtc.org,andrew@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1419953010

Cr-Commit-Position: refs/heads/master@{#10524}
2015-11-05 14:23:10 +00:00
d279941bb5 Revert of Add aecdump support to audioproc_f. (patchset #8 id:200001 of https://codereview.webrtc.org/1409943002/ )
Reason for revert:
This breaks iOS GYP generation as described on http://www.webrtc.org/native-code/ios
I'm going to drive getting the build_with_libjingle=1 setting removed from the bots to match the official instructions.

See https://code.google.com/p/webrtc/issues/detail?id=4653 for more context, as this is exactly what that issue tries to solve.

Original issue's description:
> Add aecdump support to audioproc_f.
>
> Add a new interface to abstract away file operations. This CL temporarily
> removes support for dumping the output of reverse streams. It will be easy to
> restore in the new framework, although we may decide to only allow it with
> the aecdump format.
>
> We also now require the user to specify the output format, rather than
> defaulting to the input format.
>
> TEST=Bit-exact output to the previous audioproc_f version using an input wav
> file, and to the legacy audioproc using an aecdump file.
>
> Committed: https://crrev.com/bdafe31b86e9819b0adb9041f87e6194b7422b08
> Cr-Commit-Position: refs/heads/master@{#10460}

TBR=aluebs@webrtc.org,peah@webrtc.org,andrew@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1423693008

Cr-Commit-Position: refs/heads/master@{#10523}
2015-11-05 14:09:08 +00:00
f97bfed6c7 Revert of Move audioproc_test_utils into enable_protobuf condition. (patchset #1 id:1 of https://codereview.webrtc.org/1419533010/ )
Reason for revert:
I'm going to revert this and https://codereview.webrtc.org/1409943002 to get things back in a good state.

Original issue's description:
> Move audioproc_test_utils into enable_protobuf condition.
>
> From https://codereview.webrtc.org/1409943002 this target doesn't
> pass GYP on iOS unless build_with_libjingle==1.
> Our bots currently build with that, but we want to remove that GYP_DEFINES
> from the bots since http://www.webrtc.org/native-code/ios doesn't
> say it's needed.
>
> R=aluebs@webrtc.org
>
> Committed: https://crrev.com/e2a89251d9a75c2439daddd80f732ab505d0e1b9
> Cr-Commit-Position: refs/heads/master@{#10510}

TBR=andrew@webrtc.org,aluebs@webrtc.org,kjellander@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1428063007

Cr-Commit-Position: refs/heads/master@{#10521}
2015-11-05 14:02:20 +00:00
cd19faffa8 Attempt to isolate a bug by adding a new CHECK
Review URL: https://codereview.webrtc.org/1426953005

Cr-Commit-Position: refs/heads/master@{#10520}
2015-11-05 13:11:26 +00:00
e2a89251d9 Move audioproc_test_utils into enable_protobuf condition.
From https://codereview.webrtc.org/1409943002 this target doesn't
pass GYP on iOS unless build_with_libjingle==1.
Our bots currently build with that, but we want to remove that GYP_DEFINES
from the bots since http://www.webrtc.org/native-code/ios doesn't
say it's needed.

R=aluebs@webrtc.org

Review URL: https://codereview.webrtc.org/1419533010 .

Cr-Commit-Position: refs/heads/master@{#10510}
2015-11-04 18:56:58 +00:00
275d255e21 Adding debug dump test.
This test is to verify that the debug dump can perfectly reproduce APM states if the recording is made from the first input sample.

BUG=

Review URL: https://codereview.webrtc.org/1393353003

Cr-Commit-Position: refs/heads/master@{#10506}
2015-11-04 14:24:02 +00:00
ff761fba82 modules: more interface -> include renames
This changes the following module directories:
* webrtc/modules/audio_conference_mixer/interface
* webrtc/modules/interface
* webrtc/modules/media_file/interface
* webrtc/modules/rtp_rtcp/interface
* webrtc/modules/utility/interface

To avoid breaking downstream, I followed this recipe:
1. Copy the interface dir to a new sibling directory: include
2. Update the header guards in the include directory to match the style guide.
3. Update the header guards in the interface directory to match the ones in include. This is required to avoid getting redefinitions in the not-yet-updated downstream code.
4. Add a pragma warning in the header files in the interface dir. Example:
#pragma message("WARNING: webrtc/modules/interface is DEPRECATED; "
                "use webrtc/modules/include")
5. Search for all source references to webrtc/modules/interface and update them to webrtc/modules/include (*.c*,*.h,*.mm,*.S)
6. Update all GYP+GN files. This required manual inspection since many subdirectories of webrtc/modules referenced the interface dir using ../interface etc(*.gyp*,*.gn*)

BUG=5095
TESTED=Passing compile-trybots with --clobber flag:
git cl try --clobber --bot=win_compile_rel --bot=linux_compile_rel --bot=android_compile_rel --bot=mac_compile_rel --bot=ios_rel -m tryserver.webrtc

R=stefan@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1417683006 .

Cr-Commit-Position: refs/heads/master@{#10500}
2015-11-04 07:32:04 +00:00
f1104f6d66 Remove TODO referring to issue1981, which I just marked WontFix.
TBR=aluebs@webrtc.org
BUG=webrtc:1981

Review URL: https://codereview.webrtc.org/1409253008 .

Cr-Commit-Position: refs/heads/master@{#10488}
2015-11-03 01:46:41 +00:00
8e1809fcd7 Fix TransientSuppression in audioproc_float
Review URL: https://codereview.webrtc.org/1411423010

Cr-Commit-Position: refs/heads/master@{#10466}
2015-10-30 22:29:23 +00:00
102c6a61bc Replace rtc:🦗:Settable with rtc::Maybe
The former is very similar to the latter, but less general (mostly in
naming).

This CL, which is the first to use Maybe at scale, also removes the implicit conversion from T to Maybe<T>, since it was agreed that the increased verbosity increased legibility.

Review URL: https://codereview.webrtc.org/1430433004

Cr-Commit-Position: refs/heads/master@{#10461}
2015-10-30 09:47:44 +00:00
bdafe31b86 Add aecdump support to audioproc_f.
Add a new interface to abstract away file operations. This CL temporarily
removes support for dumping the output of reverse streams. It will be easy to
restore in the new framework, although we may decide to only allow it with
the aecdump format.

We also now require the user to specify the output format, rather than
defaulting to the input format.

TEST=Bit-exact output to the previous audioproc_f version using an input wav
file, and to the legacy audioproc using an aecdump file.

Review URL: https://codereview.webrtc.org/1409943002

Cr-Commit-Position: refs/heads/master@{#10460}
2015-10-30 06:43:00 +00:00
cb3f9bd9c0 Make the nonlinear beamformer steerable
Depends on this CL: https://codereview.webrtc.org/1395453004/

R=andrew@webrtc.org

Review URL: https://codereview.webrtc.org/1394103003 .

Cr-Commit-Position: refs/heads/master@{#10458}
2015-10-30 01:21:40 +00:00
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1413333002 .

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
1897f77806 Make the high frequency correction range depend on the target angle
Depends on this CL: https://codereview.webrtc.org/1388033002/

Review URL: https://codereview.webrtc.org/1395453004

Cr-Commit-Position: refs/heads/master@{#10331}
2015-10-20 02:49:34 +00:00
4a66e4a4d8 Make the separation between target and interferer scenario depend on microphone spacing in NonlinearBeamformer
Depends on this CL: https://codereview.webrtc.org/1378973003/

Review URL: https://codereview.webrtc.org/1388033002

Cr-Commit-Position: refs/heads/master@{#10330}
2015-10-20 01:02:43 +00:00
45daf7b26f Implement new version of the NonlinearBeamformer
Sounds better according to a MUSHRA listening test.
The computational complexity is unaffected.
An empirically estimated gain was added to compensate for the attenuation introduced by the algorithm.
There are some TODOs, which I will address in follow up CLs.

It was tested in Hangouts without headphones and highest volume, to make sure it doesn't affect the AEC.

Review URL: https://codereview.webrtc.org/1378973003

Cr-Commit-Position: refs/heads/master@{#10308}
2015-10-17 00:04:14 +00:00
13b96ba90f Adding APM configuration in AEC dump.
The AEC dump was not self-contented enough in the sense that APM configuration is missing, and therefore, given an AEC dump, it is sometimes not clear how to reproduce problems.

This CL tries to address the problem.

Note that this cannot guarantee a perfect reproduction in all cases. Dumping from the middle of a call makes the initial states unknown and thus may make the result non-reproducible.

BUG=
TEST= 1. new dump in Chromium and unpack
      2. unpack old dump

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

Review URL: https://codereview.webrtc.org/1348903004 .

Cr-Commit-Position: refs/heads/master@{#10155}
2015-10-02 22:39:27 +00:00
5aaa9b4fe4 Removed unused API functions in AudioProcessing and AudioProcessingModule
BUG=

Review URL: https://codereview.webrtc.org/1379123002

Cr-Commit-Position: refs/heads/master@{#10138}
2015-10-02 06:58:21 +00:00
98ab3a46d6 Don't link with audio codecs that we don't use
We used to link with all audio codecs unconditionally (except Opus);
this patch makes gyp and gn only link to the ones that are used.

This unfortunately fails to have a measurable impact on Chromium
binary size, at least on x86_64 Linux; it turns out that iLBC and iSAC
fix were already being excluded from Chromium by some other means,
likely just the linker omitting compilation units with no incoming
references.

(This was previously landed as revisions 10046 and 10060, and got
reverted because it broke several of the Chromium FYI bots.)

BUG=webrtc:4557

Review URL: https://codereview.webrtc.org/1368843003

Cr-Commit-Position: refs/heads/master@{#10127}
2015-10-01 04:54:29 +00:00
d094c04baf Remove AgcManager.
It was not used anywhere.

R=andrew@webrtc.org

Review URL: https://codereview.webrtc.org/1299143003 .

Cr-Commit-Position: refs/heads/master@{#10113}
2015-09-29 22:45:23 +00:00
cdfe20bfc1 Fix the maximum native sample rate in AudioProcessing
BUG=webrtc:4983
R=andrew@webrtc.org, henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1338833002 .

Cr-Commit-Position: refs/heads/master@{#10037}
2015-09-23 19:49:21 +00:00
91d6edef35 Add RTC_ prefix to (D)CHECKs and related macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.

BUG=chromium:468375
NOTRY=true

Review URL: https://codereview.webrtc.org/1335923002

Cr-Commit-Position: refs/heads/master@{#9964}
2015-09-17 07:24:51 +00:00