Commit Graph

31 Commits

Author SHA1 Message Date
a4c2106120 This CL contains the following small changes:
1. Use of const in all variable declarations where it is possible
2. Variable names and function arguments changed from CamelCase to match code style
3. A few stale comments removed.
4. Chromium clang plugin check added (now possible thanks to kwiberg@'s work on common.h)
5. Disallow constructor macros added.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2294263002
Cr-Commit-Position: refs/heads/master@{#14120}
2016-09-08 08:25:50 +00:00
652ac89c09 Simplifications of the mixing algorithm.
Methods are named more consistently and have a more consistent
signatures. The call structure of mixing is slightly
simplified. Anonymous participants are also ramped up.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2298163002
Cr-Commit-Position: refs/heads/master@{#14110}
2016-09-07 14:42:23 +00:00
311525e715 Several lock acquisitions and one of the two lock members are removed. ENSURE_LOCKS_REQUIRED and CalledOnValidThread annotations are added.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2286343002
Cr-Commit-Position: refs/heads/master@{#14106}
2016-09-07 13:13:16 +00:00
e9cc686293 GN Templates: Move common_inherited_config to the template.
Remove common_inherited_config from the targets and add it to the
template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2311843002
Cr-Commit-Position: refs/heads/master@{#14069}
2016-09-05 13:10:23 +00:00
7a2ce0b738 GN Templates: Move common_config to the template.
Remove common_config from the targets' config and add
it to the template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2300413002
Cr-Commit-Position: refs/heads/master@{#14063}
2016-09-05 08:35:48 +00:00
c0f28be1ca Add kjellander@webrtc.org to more OWNERS for BUILD.gn files.
TBR=henrika@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2294883008
Cr-Commit-Position: refs/heads/master@{#14045}
2016-09-02 12:04:12 +00:00
38a2132b02 GN: Introduce templates.
Defines the rtc_executable, rtc_source_set, rtc_test and
rtc_static_library templates.

These templates provide no functionality yet, but will enable common
configuration to be introduced, avoiding repetition in every target

Changes summary:
- Prepend rtc_ to test, source_set, executable and static_library targets
- Change "configs -= [" to "suppressed_configs += ["
- Include webrtc/build/webrtc.gni where it wasn't included yet
- Delete import("//testing/test.gni"), since rtc_test makes it unnecessary.

BUG=webrtc:6187
TBR=henrik.lundin@webrtc.org,tommi@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2301053002
Cr-Commit-Position: refs/heads/master@{#14043}
2016-09-02 11:10:41 +00:00
5d167d6829 Removals and renamings in the new audio mixer.
Removed the OutputMixer part of the new mixer and renamed the new
mixer from NewAudioConferenceMixer to AudioMixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2249213005
Cr-Commit-Position: refs/heads/master@{#13883}
2016-08-24 09:21:00 +00:00
30be5d7cf4 Updated mixer unittests and fixed a related bug in the new mixer.
Changes to the mixer unittests:

Removed the tests related to the former 'OutputMixer', as it's going
to be removed. Removed incorrect comparison tests with the old mixer
because doing identical mixing decisions with the old mixer proved
unviable.

When the new mixer went from kMaximumAmountOfMixedAudioSources in the
last iteration to kMaximumAmountOfMixedAudioSources+1, it could hit an
RTC_NOTREACHED(); Added fix to mixer and test
AudioMixer.RampedOutSourcesShouldNotBeMarkedMixed that covers that
case.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2253153004
Cr-Commit-Position: refs/heads/master@{#13880}
2016-08-24 08:38:50 +00:00
616df1e95c Added a level indicator to new mixer.
Added a level indicator to the new mixer. The level indicator is
webrtc::voe::AudioLevel. It computes the current audio level, which is
used all the way up to peerconnection.

This is part of the project to rewrite the old conference mixer and
output mixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2230823004
Cr-Commit-Position: refs/heads/master@{#13878}
2016-08-24 08:17:20 +00:00
4ec01d9c9d Fix trivial lint errors in FileRecorder and FilePlayer
Mostly, it's about replacing mutable reference arguments with pointer
arguments, and replacing C style casts with C++ style casts.

Review-Url: https://codereview.webrtc.org/2056653002
Cr-Commit-Position: refs/heads/master@{#13849}
2016-08-22 15:43:58 +00:00
5a25d9504a FileRecorder + FilePlayer: Let Create functions return unique_ptr
Because passing ownership in raw pointers makes kittens cry.

This also means we can ditch the Destroy functions and the protected
destructors. (Well, almost. We need to keep the old CreateFilePlayer
and DestroyFilePlayer around for a little while longer because of an
external caller.)

Review-Url: https://codereview.webrtc.org/2049683003
Cr-Commit-Position: refs/heads/master@{#13797}
2016-08-17 14:31:18 +00:00
9d7eb13c40 Revert of Move FilePlayer and FileRecorder to Voice Engine (patchset #3 id:40001 of https://codereview.webrtc.org/2247033003/ )
Reason for revert:
Reverting, because it turns out that third-party code was using webrtc::FilePlayer. I'm not at all sure that this is something WebRTC ought to be exporting, but since we did export it, we have to live with it for now.

Original issue's description:
> Move FilePlayer and FileRecorder to Voice Engine
>
> Because Voice Engine was the only user.
>
> (This has been landed twice before, as
> https://codereview.webrtc.org/2037623002 and
> https://codereview.webrtc.org/2240163002. Third time's a charm!)
>
> NOPRESUBMIT=True
> TBR=kjellander@webrtc.org
>
> Committed: https://crrev.com/427ce3d86f6328dc994f84a15c28bb7bfbaa46ef
> Cr-Commit-Position: refs/heads/master@{#13777}

TBR=
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2245413002
Cr-Commit-Position: refs/heads/master@{#13779}
2016-08-16 11:08:39 +00:00
427ce3d86f Move FilePlayer and FileRecorder to Voice Engine
Because Voice Engine was the only user.

(This has been landed twice before, as
https://codereview.webrtc.org/2037623002 and
https://codereview.webrtc.org/2240163002. Third time's a charm!)

NOPRESUBMIT=True
TBR=kjellander@webrtc.org

Review-Url: https://codereview.webrtc.org/2247033003
Cr-Commit-Position: refs/heads/master@{#13777}
2016-08-16 10:34:50 +00:00
70f866c647 Added new mixer to |check_targets| in .gn and fixed include/depend errors.
Also fixed one small chromium-style error in the new mixer.

NOTRY=True

Committed: https://crrev.com/d700bef583d29ba2834ae57b3af7e8d3b8306cb9
Review-Url: https://codereview.webrtc.org/2234293002
Cr-Original-Commit-Position: refs/heads/master@{#13752}
Cr-Commit-Position: refs/heads/master@{#13772}
2016-08-16 09:15:55 +00:00
c8c71f484e Revert of Move FilePlayer and FileRecorder to Voice Engine (patchset #6 id:100001 of https://codereview.webrtc.org/2240163002/ )
Reason for revert:
Breaks downstream code, so revert again. Yay.

Original issue's description:
> Move FilePlayer and FileRecorder to Voice Engine
>
> Because Voice Engine was the only user.
>
> (This is a re-land of https://codereview.webrtc.org/2037623002, which
> had to be reverted.)
>
> NOPRESUBMIT=True
>
> Committed: https://crrev.com/dc65ea29b3270ad418050658ad962ddd33ee70c1
> Cr-Commit-Position: refs/heads/master@{#13757}

TBR=perkj@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2245153002
Cr-Commit-Position: refs/heads/master@{#13758}
2016-08-15 18:43:56 +00:00
dc65ea29b3 Move FilePlayer and FileRecorder to Voice Engine
Because Voice Engine was the only user.

(This is a re-land of https://codereview.webrtc.org/2037623002, which
had to be reverted.)

NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2240163002
Cr-Commit-Position: refs/heads/master@{#13757}
2016-08-15 17:36:38 +00:00
2ab1da7c37 Revert of Added new mixer to |check_targets| in .gn and fixed include/depend errors. (patchset #1 id:1 of https://codereview.webrtc.org/2234293002/ )
Reason for revert:
Breaks Chromium FYI builds, for example https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/9219/steps/compile/logs/stdio

Original issue's description:
> Added new mixer to |check_targets| in .gn and fixed include/depend errors.
>
> Also fixed one small chromium-style error in the new mixer.
>
> NOTRY=True
>
> Committed: https://crrev.com/d700bef583d29ba2834ae57b3af7e8d3b8306cb9
> Cr-Commit-Position: refs/heads/master@{#13752}

TBR=kjellander@webrtc.org,aleloi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2241243002
Cr-Commit-Position: refs/heads/master@{#13753}
2016-08-15 14:36:22 +00:00
d700bef583 Added new mixer to |check_targets| in .gn and fixed include/depend errors.
Also fixed one small chromium-style error in the new mixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2234293002
Cr-Commit-Position: refs/heads/master@{#13752}
2016-08-15 14:24:13 +00:00
5bcc00e538 Changed folder structure in new mixer and fixed simple lint errors.
The folder structure is now as was agreed on in the 'Slim and Modular
WebRTC' effort.  Also added some dependencies that were previously in
another part of the tree.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2238803002
Cr-Commit-Position: refs/heads/master@{#13742}
2016-08-15 10:01:37 +00:00
df9e4d9fce Added new mixer folder to CPPLINT_DIRS. Fixed one small issue.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2228503003
Cr-Commit-Position: refs/heads/master@{#13677}
2016-08-08 17:26:17 +00:00
6382a19dc4 Renamed old-style variables.
Review-Url: https://codereview.webrtc.org/2227633002
Cr-Commit-Position: refs/heads/master@{#13676}
2016-08-08 17:25:10 +00:00
4496809b28 Changed mixing api and moved resampler.
Removed resampler from NewAudioConferenceMixer and AudioMixer (which started as a copy of former OutputMixer). This is part of the mixer rewrite project. In particular,
this is one of the steps required to have a single mixing component
instead of two doing the same thing.

The next planned change (which is not part of this CL) is to plug in the
new mixer (NewAudioConferenceMixer) into AudioState and AudioDeviceModule.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2221443002
Cr-Commit-Position: refs/heads/master@{#13674}
2016-08-08 17:19:03 +00:00
f3882571b0 Rewrote UpdateToMix in the audio mixer.
The new version is much shorter than the old one, and hopefully easier
to read. This is part of the effort to rewrite the old mixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2132563002
Cr-Commit-Position: refs/heads/master@{#13570}
2016-07-29 09:12:46 +00:00
ea4c141ffa Revert of Rewrote UpdateToMix in the audio mixer. (patchset #5 id:120001 of https://codereview.webrtc.org/2132563002/ )
Reason for revert:
Multiple definitions of  webrtc::MockMixerParticipant::MockMixerParticipant() during linking of modules_unittests. Please investigate and resubmit.

Original issue's description:
> Rewrote UpdateToMix in the audio mixer.
>
> The new version is much shorter than the old one, and hopefully easier
> to read. This is part of the effort to rewrite the old mixer.
>
> Committed: https://crrev.com/2942e240f4a985752714dac18c141064c97696d4
> Cr-Commit-Position: refs/heads/master@{#13568}

TBR=ossu@webrtc.org,ivoc@webrtc.org,aleloi@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.webrtc.org/2195633002
Cr-Commit-Position: refs/heads/master@{#13569}
2016-07-29 08:36:23 +00:00
2942e240f4 Rewrote UpdateToMix in the audio mixer.
The new version is much shorter than the old one, and hopefully easier
to read. This is part of the effort to rewrite the old mixer.

Review-Url: https://codereview.webrtc.org/2132563002
Cr-Commit-Position: refs/heads/master@{#13568}
2016-07-29 08:23:54 +00:00
a0db81f83a Removed the memory pool from the mixer.
Memory frames are now expected to be owned by the mixing participants.

Review-Url: https://codereview.webrtc.org/2127763002
Cr-Commit-Position: refs/heads/master@{#13554}
2016-07-28 13:36:32 +00:00
8b2233f5a6 Removed Module inheritance and unused methods and members TimeScheduler, Process() and TimeToNextProcess() from mixer.
Review-Url: https://codereview.webrtc.org/2109333006
Cr-Commit-Position: refs/heads/master@{#13552}
2016-07-28 13:24:23 +00:00
09f45108c2 Removed callback in old AudioConferenceMixer.
OutputMixer and AudioConferenceMixer communicated via a callback. OutputMixer implemented an AudioMixerOutputReceiver interface, which defines the callback function NewMixedAudio. This has been removed and replaced by a simple function in the new mixer. The audio frame with mixed audio is now copied one time less. I have also removed one forward declaration.

Review-Url: https://codereview.webrtc.org/2111293003
Cr-Commit-Position: refs/heads/master@{#13550}
2016-07-28 10:52:23 +00:00
77ad394fa6 A simple copy of the old audio mixer to a new directory.
I have added build files and renamed the mixer so that it doesn't conflict with the old one. The header includes now point to this copy of the mixer. I have also fixed some of the more obvious cases of style guide non-conformance and run 'PRESUBMIT' on the old mixer.

This is a first step in the creation of a new mixing module that will replace AudioConferencMixer and OutputMixer.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2104363003
Cr-Commit-Position: refs/heads/master@{#13378}
2016-07-04 13:33:09 +00:00
03dd6db5cb Added empty directory with myself as owner for new mixer.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2109133003
Cr-Commit-Position: refs/heads/master@{#13345}
2016-06-30 12:03:17 +00:00