4296 Commits

Author SHA1 Message Date
Danil Chapovalov
530b3f5d06 Merge RtcpReceiver::Handle<Packet>Item functions into Handle<Packet>
As a preparation to replace parsing implementation.

BUG=webrtc:5260
R=philipel@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14240}
2016-09-15 16:41:12 +00:00
Danil Chapovalov
91511f13e1 Split RtcpReceiver::HandleSenderReceiverReport into two functions
as a preparation to replace parsing implementation

BUG=webrtc:5260
R=philipel@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14237}
2016-09-15 14:24:42 +00:00
maxmorin
ec62374ccd Reland of Add arraysize to rtc_base_approved. Remove dependency of audio_device on rtc_base. (patchset #1 id:1 of https://codereview.webrtc.org/2340253003/ )
Reason for revert:
Fix: let audio_device depend on rtc_base on IOS.

Original issue's description:
> Revert of Add arraysize to rtc_base_approved. Remove dependency of audio_device on rtc_base. (patchset #1 id:1 of https://codereview.webrtc.org/2346763002/ )
>
> Reason for revert:
> Breaks iOS
>
> Original issue's description:
> > Add arraysize to rtc_base_approved. Remove dependency of audio_device on rtc_base.
> >
> > BUG=webrtc:3806
> > NOTRY=True
> >
> > Committed: https://crrev.com/100c9d02669910bce06099b3cc1eaad60fd661dd
> > Cr-Commit-Position: refs/heads/master@{#14223}
>
> TBR=kjellander@webrtc.org,henrika@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:3806
>
> Committed: https://crrev.com/89fb9201b70616a1c33e277f38bf9367112536e8
> Cr-Commit-Position: refs/heads/master@{#14224}

TBR=kjellander@webrtc.org,henrika@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOTRY=true
BUG=webrtc:3806

Review-Url: https://codereview.webrtc.org/2340233003
Cr-Commit-Position: refs/heads/master@{#14233}
2016-09-15 12:11:59 +00:00
stefan
0a6e0dc471 Disable all screen-capturer tests
ScreenCapturerTest.CaptureUpdatedRegion* tests are flaky and are running in the
wrong executable.

BUG=webrtc:6366, chromium:647067
NOTRY=True

Review-Url: https://codereview.webrtc.org/2342823002
Cr-Commit-Position: refs/heads/master@{#14232}
2016-09-15 12:04:41 +00:00
kjellander
17f008bf33 GYP: Remove targets inside include_tests==1 that are converted to GN.
Remove a large number of targets that are no longer built, to reduce maintenance.
Only targets that have a GN version were removed.

BUG=webrtc:6323
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2340773003
Cr-Commit-Position: refs/heads/master@{#14231}
2016-09-15 11:57:39 +00:00
philipel
d268d6ffbe Stash non layer-sync frames if we have not yet received an earlier frame for this layer.
In VP8 the assumption is that a non layer-sync frame depends on all previous
frames on temporal layers less or equal to this frames temporal layer.

BUG=webrtc:5514
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14229}
2016-09-15 11:43:30 +00:00
Kári Tristan Helgason
5a20ed36e6 Fix undefined reference to log2 on android
R=nisse@webrtc.org
TBR=sakal@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14225}
2016-09-15 08:56:30 +00:00
maxmorin
89fb9201b7 Revert of Add arraysize to rtc_base_approved. Remove dependency of audio_device on rtc_base. (patchset #1 id:1 of https://codereview.webrtc.org/2346763002/ )
Reason for revert:
Breaks iOS

Original issue's description:
> Add arraysize to rtc_base_approved. Remove dependency of audio_device on rtc_base.
>
> BUG=webrtc:3806
> NOTRY=True
>
> Committed: https://crrev.com/100c9d02669910bce06099b3cc1eaad60fd661dd
> Cr-Commit-Position: refs/heads/master@{#14223}

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

Review-Url: https://codereview.webrtc.org/2340253003
Cr-Commit-Position: refs/heads/master@{#14224}
2016-09-15 08:45:33 +00:00
maxmorin
100c9d0266 Add arraysize to rtc_base_approved. Remove dependency of audio_device on rtc_base.
BUG=webrtc:3806
NOTRY=True

Review-Url: https://codereview.webrtc.org/2346763002
Cr-Commit-Position: refs/heads/master@{#14223}
2016-09-15 08:40:42 +00:00
kjellander
705ecc5dda GN: Change group deps to public_deps.
During GN vs GYP auditing it was discovered that some
GN targets that had public_configs were not exposing them
to dependents where the dependent depended on a group, which
in turn included that target as a dependency. Instead of
changing those public_configs to all_dependent_configs
(which would be a change from GYP), it's better to just change
those group targets to use public_deps instead.

BUG=webrtc:6323
NOTRY=True
TESTED=Generated GYP and GN project files on Mac and ran the
tools/gyp_flag_compare.py script before and after this patch was
applied. The file in question used for inspection was the
webrtc/api/webrtcsessiondescriptionfactory.cc
which is a part of the libjingle_peerconnection target.

Review-Url: https://codereview.webrtc.org/2344623002
Cr-Commit-Position: refs/heads/master@{#14222}
2016-09-15 07:53:34 +00:00
henrik.lundin
c26f77f5a6 Remove a couple of unnecessary dependencies on gflags
BUG=webrtc:5447, chromium:645069
NOTRY=True

Review-Url: https://codereview.webrtc.org/2335683002
Cr-Commit-Position: refs/heads/master@{#14221}
2016-09-15 07:05:00 +00:00
kjellander
f807a521fa iSAC: Remove unnecessary WEBRTC_LINUX define
Similar to https://codereview.webrtc.org/1539883002
but for GN. This was discovered during GN vs GYP auditing.

NOTRY=True
BUG=webrtc:6323

Review-Url: https://codereview.webrtc.org/2344633002
Cr-Commit-Position: refs/heads/master@{#14220}
2016-09-15 06:15:55 +00:00
zijiehe
8295c9326d [WebRTC] Add TwoCapturers test and TwoMagnifierCapturers test
This change is to add more test cases for ScreenCapturer implementation.

BUG=

Review-Url: https://codereview.webrtc.org/2320763003
Cr-Commit-Position: refs/heads/master@{#14218}
2016-09-14 17:22:01 +00:00
minyue
2e164c6b53 Adding ChannelController to audio network adaptor.
BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2319873002
Cr-Commit-Position: refs/heads/master@{#14216}
2016-09-14 13:47:39 +00:00
kwiberg
9e2be5f292 webrtc/modules/audio_processing: Use RTC_DCHECK() instead of assert()
Review-Url: https://codereview.webrtc.org/2320053003
Cr-Commit-Position: refs/heads/master@{#14211}
2016-09-14 12:23:29 +00:00
ehmaldonado
3a7f35b1c4 GN: Declare resources for targets.
Declare resources for GN targets so that they can be isolated

NOTRY=True
BUG=chromium:497757

Review-Url: https://codereview.webrtc.org/2340753002
Cr-Commit-Position: refs/heads/master@{#14210}
2016-09-14 12:10:06 +00:00
gaetano.carlucci
52a5703721 Enable BWE logging to command line when rtc_enable_bwe_test_logging is set to true
This patch enables bwe related variable logging to the command line.
This is useful to test congestion control algorithm over real networks.

NOTRY=true

Review-Url: https://codereview.webrtc.org/2296253002
Cr-Commit-Position: refs/heads/master@{#14209}
2016-09-14 12:04:43 +00:00
kthelgason
194f40a2e7 Refactor QualityScaler and MovingAverage
The MovingAverage class was very specific to the QualityScaler. This
commit generalizes the MovingAverage class to be useful in other
situations as well, and adapts the QualityScaler to use the new
MovingAverage.

BUG=webrtc:6304

Review-Url: https://codereview.webrtc.org/2310853002
Cr-Commit-Position: refs/heads/master@{#14207}
2016-09-14 09:15:02 +00:00
maxmorin
f8a4ecc4a1 Remove dependency of audio_device on metrics_default.
BUG=webrtc:6349
NOTRY=True

Review-Url: https://codereview.webrtc.org/2338813002
Cr-Commit-Position: refs/heads/master@{#14205}
2016-09-14 07:20:26 +00:00
danilchap
17366bc090 Remove handling unused rtcp packets.
App, ExtendedJitterReport and VoipMetric in ExtenedReports are not
used when received (no callbacks, no state change), so removed.

BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2320703003
Cr-Commit-Position: refs/heads/master@{#14204}
2016-09-14 06:54:55 +00:00
peah
d29e3ea4b2 Added build flag around the Intelligibility enhancer performance test code
BUG=chromium:641931

Review-Url: https://codereview.webrtc.org/2294093004
Cr-Commit-Position: refs/heads/master@{#14202}
2016-09-14 04:42:43 +00:00
minyue
caa9cb2cea Adding basic implementation of AudioNetworkAdaptor.
The basic implementation of AudioNetworkAdaptor include the introduction of
  1. Controller
  2. ControllerManager

ControllerManager is to hold all needed controllers. It also orders them according to their significance in dealing with current network condition.

Controller provides an interface MakeDecision, which has to be implemented by specific controllers. AudioNetworkAdaptorImpl calls MakeDecision of the controllers in the order decided by ControllerManager to collect EncoderRuntimeConfig.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2306083002
Cr-Commit-Position: refs/heads/master@{#14201}
2016-09-13 20:34:22 +00:00
danilchap
dd12892ede Reland of Make rtcp parsing implementation private in RtcpReceiver (patchset #1 id:1 of https://codereview.webrtc.org/2332673003/ )
Reason for revert:
Fuzzer changed not use functions moved to private.

Original issue's description:
> Revert of Make rtcp parsing implementation private in RtcpReceiver (patchset #1 id:1 of https://codereview.webrtc.org/2320603002/ )
>
> Reason for revert:
> Breaks fuzzer compilation.
>
> Original issue's description:
> > Make rtcp parsing implementation private in RtcpReceiver:
> > Function just for Parse and for Callbacks moved to private section.
> > All handles moved from protected to private section.
> >
> > BUG=webrtc:5260
> > R=sprang@webrtc.org
> >
> > Committed: https://crrev.com/faf708e238c7b43a732fbebf79ac9298b4b95a95
> > Cr-Commit-Position: refs/heads/master@{#14181}
>
> TBR=sprang@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5260
>
> Committed: https://crrev.com/180e4525ca7c9a23602cdf37a8756df7d23e7143
> Cr-Commit-Position: refs/heads/master@{#14182}

TBR=sprang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2336213002
Cr-Commit-Position: refs/heads/master@{#14200}
2016-09-13 19:23:33 +00:00
kwiberg
d59d3bb117 Replace a DCHECK with static_assert
This requires marking a bunch of compile-time constants "constexpr"
instead of just "const".

Review-Url: https://codereview.webrtc.org/2335483003
Cr-Commit-Position: refs/heads/master@{#14199}
2016-09-13 14:49:41 +00:00
brandtr
6631e8a21b Minor fixes in FEC and RtpSender{,Video}
- Rename GetNumberOfFecPackets -> NumFecPackets and
  PacketOverhead -> MaxPacketOverhead in ForwardErrorCorrection.
- Rename FECPacketOverhead -> FecPacketOverhead in ProducerFec.
- Move ownership of ForwardErrorCorrection from RTPSenderVideo
  to ProducerFec.
- Make MaxPacketOverhead a member function of ForwardErrorCorrection.
  This will allow for changing it, based on FEC header types, later on.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2275443002
Cr-Commit-Position: refs/heads/master@{#14194}
2016-09-13 10:23:34 +00:00
peah
88ac853e14 The current scheme for setting parameters and specifying the
behavior of the audio processing module is quite complex and hard to
implement in a threadsafe and efficient manner. Therefore a new
scheme for setting the parameters in the audio processing module is
introduced in this CL.

The idea is to roll this scheme out gradually and as a first functionality
in the audio processing module where this is applied the level controller
was chosen. This CL includes the replacement of the Config-based
level controller scheme with the new scheme.

TBR=henrik.lundin@webrtc.org, solenberg@webrtc.org,
BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/2338493002
Cr-Commit-Position: refs/heads/master@{#14190}
2016-09-12 23:47:32 +00:00
Irfan Sheriff
b2540bb99f Probing: Add support for exponential startup probing
Adds support for exponentially probing the bandwidth at start-up to allow
ramp-up to real capacity of the network.

BUG=webrtc:6332
R=philipel@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14189}
2016-09-12 19:29:05 +00:00
peah
a421ddd60e The buffering of the farend signal is refactored in this CL.
The former buffering scheme was overly complicated and
complex as.
-It buffered twice as many data points as needed.
-It used the ring_buffer C functionality directly inside the
 delay adjustment functionality which makes that
functionality very hard to read.

In order to overcome these problems this CL does
-Change the buffering to buffer only the amount of samples
 needed.
-Wrap the ring_buffer C functionality in a wrapper class
 with methods that are more descriptive in what they do
 to affect the AEC delay.

Additional notes:
-Some minor other name changes/code changes were also
 introduced.
-The ringbuffer C functionality should be removed, but now
 is not the time to do it as the rest of the code is very
 adapted to the wrapping behavior of the ringbuffer. It is
 better to simplify the surrounding code before doing that.

The changes have been tested to be bitexact.

This CL is chained to the CL https://codereview.webrtc.org/2321483002/
and will be followed by another CL.

BUG=webrtc:5298, webrtc:6018

Review-Url: https://codereview.webrtc.org/2319693003
Cr-Commit-Position: refs/heads/master@{#14188}
2016-09-12 18:27:20 +00:00
Erik Språng
78ce619a0c Extract simulcast rate allocation outside of video encoder.
This is a first step to refactor this code.
I'm deprecating https://codereview.webrtc.org/1913073002 and
implementing this in smaller more isolated steps.

BUG=webrtc:5206
R=asapersson@webrtc.org, kjellander@webrtc.org, noahric@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#14186}
2016-09-12 14:04:56 +00:00
peah
8e56521143 The output signal of the AEC needs to be buffered as the
internal block size of the AEC differ from the frame
size in the AEC output.

Before this CL, this buffering was done using ringbuffers
as well as secondary internal AEC buffers that were stored
on the state. The internal buffers were redundant, and the
ringbuffers were so short that the benefit of using
ringbuffers were lost.

This CL addresses the above issues by replacing the
ringbuffers by linear buffers. This has the main advantage
of cleaner code but it should significantly less
computational complex.

Furthermore, as the complexity of the function where the
conversion to external and internal AEC frame sizes is done
increased significantly with the changes in this CL, the
CL also include refactoring the near-end buffer handling
to increase readability and reduce code repetition.

After the changes in this CL it is very clear that the
former buffering of the output was incorrectly done for
the first frames. This CL corrects that but in doing that
it breaks the bitexactness with the former code.
The bitexactness is, however, only broken for the first
1000 samples and it has been verified that for a test suite
the CL maintains bitexactness in the AEC output
after the first 1000 samples.

This CL is chained to the CL https://codereview.webrtc.org/2311833002/ and will be
followed by more CLs that refactor the other buffers
inside the AEC.

BUG=webrtc:5298, webrtc:6018

Review-Url: https://codereview.webrtc.org/2321483002
Cr-Commit-Position: refs/heads/master@{#14184}
2016-09-12 11:49:50 +00:00
Danil Chapovalov
a64a2fbf6d Fix oversized rtp extension parsing.
When size of individual one-byte extension span beyound extension block

BUG=chromium:645201
R=brandtr@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14183}
2016-09-12 09:41:44 +00:00
danilchap
180e4525ca Revert of Make rtcp parsing implementation private in RtcpReceiver (patchset #1 id:1 of https://codereview.webrtc.org/2320603002/ )
Reason for revert:
Breaks fuzzer compilation.

Original issue's description:
> Make rtcp parsing implementation private in RtcpReceiver:
> Function just for Parse and for Callbacks moved to private section.
> All handles moved from protected to private section.
>
> BUG=webrtc:5260
> R=sprang@webrtc.org
>
> Committed: https://crrev.com/faf708e238c7b43a732fbebf79ac9298b4b95a95
> Cr-Commit-Position: refs/heads/master@{#14181}

TBR=sprang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5260

Review-Url: https://codereview.webrtc.org/2332673003
Cr-Commit-Position: refs/heads/master@{#14182}
2016-09-12 08:40:44 +00:00
Danil Chapovalov
faf708e238 Make rtcp parsing implementation private in RtcpReceiver:
Function just for Parse and for Callbacks moved to private section.
All handles moved from protected to private section.

BUG=webrtc:5260
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14181}
2016-09-12 08:31:23 +00:00
kjellander
10f606d8de Revert of Introduced new scheme for controlling the functionality inside the audio processing module (patchset #12 id:260001 of https://codereview.webrtc.org/2292863002/ )
Reason for revert:
Interface change in the mock breaks downstream code.

Original issue's description:
> The current scheme for setting parameters and specifying the behavior
> of the audio processing module is quite complex and hard to implement
> in a threadsafe and efficient manner. Therefore a new scheme for setting
> the parameters in the audio processing module is introduced in this CL.
>
> The idea is to roll this scheme out gradually and as a first functionality
> in the audio processing module where this is applied the level controller
> was chosen. This CL includes the replacement of the Config-based
> level controller scheme with the new scheme.
>
> BUG=webrtc:5298
>
> Committed: https://crrev.com/c8bbe3fe9aad9e9a1189a42dcaa8f5d6c261ecc8
> Cr-Commit-Position: refs/heads/master@{#14171}

TBR=solenberg@webrtc.org,henrik.lundin@webrtc.org,peah@webrtc.org
BUG=webrtc:5298
NOTRY=True

Review-Url: https://codereview.webrtc.org/2334583002
Cr-Commit-Position: refs/heads/master@{#14177}
2016-09-12 06:04:37 +00:00
peah
2ace3f9406 The audio processing module (APM) relies on two for
functionalities  doing sample-rate conversions:
-The implicit resampling done in the AudioBuffer CopyTo,
 CopyFrom, InterleaveTo and DeinterleaveFrom methods.
-The multi-band splitting scheme.

The selection of rates in these have been difficult and
complicated, partly due to that the APM API which allows
for activating the APM submodules without notifying
the APM.

This CL adds functionality that for each capture frame
polls all submodules for whether they are active or not
and compares this against a cached result.
Furthermore, new functionality is added that based on the
results of the comparison do a reinitialization of the APM.

This has several advantages
-The code deciding on whether to analysis and synthesis is
 needed for the bandsplitting can be much simplified and
 centralized.
-The selection of the processing rate can be done such as
 to avoid the implicit resampling that was in some cases
 unnecessarily done.
-The optimization for whether an output copy is needed
 that was done to improve performance due to the implicit
 resampling is no longer needed, which simplifies the
 code and makes it less error-prone in the sense that
 is no longer neccessary to keep track of whether any
 module has changed the signal.

Finally, it should be noted that the polling of the state
for all the submodules was done previously as well, but in
a less obvious and distributed manner.

BUG=webrtc:6181, webrtc:6220, webrtc:5298, webrtc:6296, webrtc:6298, webrtc:6297

Review-Url: https://codereview.webrtc.org/2304123002
Cr-Commit-Position: refs/heads/master@{#14175}
2016-09-10 11:42:36 +00:00
asapersson
1d02d3e5e6 Remove RTC_LOGGED_* macro.
BUG=

Review-Url: https://codereview.webrtc.org/2326843003
Cr-Commit-Position: refs/heads/master@{#14174}
2016-09-10 05:40:34 +00:00
peah
c8bbe3fe9a The current scheme for setting parameters and specifying the behavior
of the audio processing module is quite complex and hard to implement
in a threadsafe and efficient manner. Therefore a new scheme for setting
the parameters in the audio processing module is introduced in this CL.

The idea is to roll this scheme out gradually and as a first functionality
in the audio processing module where this is applied the level controller
was chosen. This CL includes the replacement of the Config-based
level controller scheme with the new scheme.

BUG=webrtc:5298

Review-Url: https://codereview.webrtc.org/2292863002
Cr-Commit-Position: refs/heads/master@{#14171}
2016-09-09 21:17:07 +00:00
noahric
fac0ff022b Change SimulcastEncoderAdapter to allow a 0 for SetRates.
0 means "pause", so forcing it to the min bitrate means we'll never
allow pausing for internal source encoders.

BUG=

Review-Url: https://codereview.webrtc.org/2304603002
Cr-Commit-Position: refs/heads/master@{#14168}
2016-09-09 17:27:20 +00:00
Henrik Kjellander
a41c13e6a2 OWNERS: Make everyone able to change *.gn,*.gni files.
Project-wide change to make it possible for all team members
to do changes to GN files.

NOTRY=True
R=kwiberg@webrtc.org
TBR=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14163}
2016-09-09 12:51:48 +00:00
kwiberg
2b1b7a83ad iSAC fix: Ignore overflow in signed left shift
A left shift by 10 was assumed to never overflow, since "[s]imulation
of the 25 files shows that maximum value in the vector gain_lo_hiQ17[]
is 441344, which means that it is log2((2^31)/441344) = 12.2 shifting
bits from saturation." However, a fuzzer test succeeded in provoking
an overflow, which we ignore in this CL on the theory that only
"abnormal" inputs cause overflow.

Also had to replace a "foo << 1" with "foo * (1 << 1)" in
WEBRTC_SPL_MUL_16_32_RSFT15 because foo could be negative; this
problem showed up as soon as I'd asked UBSan to ignore the overflow
discussed above.

BUG=chromium:615819

Review-Url: https://codereview.webrtc.org/2314413002
Cr-Commit-Position: refs/heads/master@{#14162}
2016-09-09 12:51:38 +00:00
henrika
f06f35a161 Adds logging of native audio levels and UMA stats to track issues.
This changes added a simple measurement of levels "close to the audio hardware"
both for playout and for recording. These levels are logged once each 10 seconds.

It also adds WebRTC.Audio.RecordedOnlyZeros UMA stat and it is updated at
destuction. It will report true iff all reported recording leves are zero.

BUG=NONE
R=peah@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14160}
2016-09-09 12:23:24 +00:00
henrika
073378e79a Avoids crash at device switch on iOS by ensuring that audio parameters can be updated on the fly driven by e.g. switching audio device.
R=henrikg@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14158}
2016-09-09 11:15:49 +00:00
philipel
463d3011ce Added ClearTo(seq_num) to RtpFrameReferenceFinder.
In order to be able to clear out any potentially stashed old frames from
the RtpFrameReferenceFinder we can now clear frames that contain packets
older than |seq_num|.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2304723004
Cr-Commit-Position: refs/heads/master@{#14156}
2016-09-09 10:32:51 +00:00
kthelgason
d5472246a5 Reland of move all reference to carbon api (patchset #1 id:1 of https://codereview.webrtc.org/2317343003/ )
Reason for revert:
Build issues have now _really_ been fixed

Original issue's description:
> Revert of move all reference to carbon api (patchset #2 id:300001 of https://codereview.webrtc.org/2321493002/ )
>
> Reason for revert:
> Still breaks Chromium mac compile:
> [4542/22193] CXX obj/third_party/webrtc/base/rtc_base/unixfilesystem.o
> FAILED: obj/third_party/webrtc/base/rtc_base/unixfilesystem.o
> /b/c/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/webrtc/base/rtc_base/unixfilesystem.o.d -DLOGGING=1 -DV8_DEPRECATION_WARNINGS -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DDCHECK_ALWAYS_ON=1 -DNO_TCMALLOC -DUSE_EXTERNAL_POPUP_MENU=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=280106-1 -DCR_XCODE_VERSION=0511 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DENABLE_EXTERNAL_AUTH -DHAVE_OPENSSL_SSL_H -DHAVE_SCTP -DHAVE_SRTP -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DSRTP_RELATIVE_PATH -DSSL_USE_OPENSSL -DUSE_WEBRTC_DEV_BRANCH -DSSL_USE_OPENSSL -DHAVE_OPENSSL_SSL_H -DFEATURE_ENABLE_SSL -DLOGGING=1 -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DNO_MAIN_THREAD_WRAPPING -I../../third_party/webrtc_overrides -I../../third_party/boringssl/src/include -I../.. -Igen -I../../third_party/jsoncpp/overrides/include -I../../third_party/jsoncpp/source/include -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party/boringssl/src/include -Wno-uninitialized -fno-strict-aliasing -fstack-protector -fcolor-diagnostics -arch x86_64 -O2 -g1 -isysroot /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -mmacosx-version-min=10.7 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -Werror -Wall -Wno-unused-variable -Wpartial-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -fno-threadsafe-statics -fvisibility-inlines-hidden -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -c ../../third_party/webrtc/base/unixfilesystem.cc -o obj/third_party/webrtc/base/rtc_base/unixfilesystem.o
> ../../third_party/webrtc/base/unixfilesystem.cc:375:11: error: variable has incomplete type 'FSRef'
>     FSRef fr;
>           ^
> /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:467:8: note: forward declaration of 'FSRef'
> struct FSRef;
>        ^
> ../../third_party/webrtc/base/unixfilesystem.cc:376:27: error: use of undeclared identifier 'kUserDomain'
>     if (0 != FSFindFolder(kUserDomain, kApplicationSupportFolderType,
>                           ^
> ../../third_party/webrtc/base/unixfilesystem.cc:376:40: error: use of undeclared identifier 'kApplicationSupportFolderType'
>     if (0 != FSFindFolder(kUserDomain, kApplicationSupportFolderType,
>                                        ^
> ../../third_party/webrtc/base/unixfilesystem.cc:377:27: error: use of undeclared identifier 'kCreateFolder'; did you mean 'CreateFolder'?
>                           kCreateFolder, &fr))
>                           ^~~~~~~~~~~~~
>                           CreateFolder
> ../../third_party/webrtc/base/unixfilesystem.cc:92:22: note: 'CreateFolder' declared here
> bool UnixFilesystem::CreateFolder(const Pathname &path, mode_t mode) {
>
> Original issue's description:
> > Reland of move all reference to carbon api (patchset #1 id:1 of https://codereview.webrtc.org/2316563002/ )
> >
> > Reason for revert:
> > Chromium build issues have been resolved.
> >
> > Original issue's description:
> > > Revert of Remove all reference to carbon api (patchset #2 id:20001 of https://codereview.webrtc.org/2299633002/ )
> > >
> > > Reason for revert:
> > > Breaks chromium build
> > >
> > > Original issue's description:
> > > > Remove all reference to carbon api
> > > >
> > > > BUG=webrtc:6282
> > > >
> > > > Committed: https://crrev.com/dbd8b6bec4143c940b2f2ca8cd85c25d17327964
> > > > Cr-Commit-Position: refs/heads/master@{#14080}
> > >
> > > TBR=magjed@webrtc.org,mflodman@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:6282
> > >
> > > Committed: https://crrev.com/b096aa7fd375a980daab3a986596548ca5de2a1c
> > > Cr-Commit-Position: refs/heads/master@{#14081}
> >
> > TBR=magjed@webrtc.org,mflodman@webrtc.org
> > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > BUG=webrtc:6282
> >
> > Committed: https://crrev.com/a90879b64fd8db57c0274169311d6b51dd59f1a0
> > Cr-Commit-Position: refs/heads/master@{#14125}
>
> TBR=mflodman@webrtc.org,kthelgason@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6282
>
> Committed: https://crrev.com/4e0581f543b026cbc31c3b24cf65c7f51dcd6124
> Cr-Commit-Position: refs/heads/master@{#14133}

TBR=mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6282

Review-Url: https://codereview.webrtc.org/2327573002
Cr-Commit-Position: refs/heads/master@{#14155}
2016-09-09 10:19:54 +00:00
peah
906f403088 This CL refactors the buffering of the incoming near-end signal inside
the AEC. This solves the following issues:
-Even though the buffering was previously done using ringbuffers, those
  were inefficiently used which caused a lot of hidden memcopys.
-The ringbuffers wasted a lot of space in the AEC state as they were too
  long.
-The lowest and two upper bands were decoupled in the buffering, which
  required extra code to handle.
-On top of the ringbuffers there was a second linear buffer that was
  stored in the state which caused even more data to be stored on the
  state.
-The incoming nearend frames were passed to the functions in the form
  of buffers on the state, which made the code harder to read as it was
  not immediately clear where the nearend signal was used, and when it
  was modified.

The CL addresses this by replacing all the buffers by two linear buffers:
-One buffer before the AEC processing for producing nearend
  blocks of size 64 that can be processed by the AEC.
-One inside the AEC processing that buffers the current
  nearend block until the next block is processed.

The changes have been tested to be bitexact.
This CL will be followed by several other CLs, that refactor the other
buffers in the AEC.

BUG=webrtc:5298, webrtc:6018

Review-Url: https://codereview.webrtc.org/2311833002
Cr-Commit-Position: refs/heads/master@{#14141}
2016-09-08 16:49:50 +00:00
henrika
0f8ea0da53 Avoids crash in WebRtcAudioTrack.initPlayout (part II)
I had reversed a condition in https://codereview.webrtc.org/2315363004/ and we always failed. Fixing that here.

TBR=magjed

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

Cr-Commit-Position: refs/heads/master@{#14136}
2016-09-08 14:11:47 +00:00
magjed
4e0581f543 Revert of move all reference to carbon api (patchset #2 id:300001 of https://codereview.webrtc.org/2321493002/ )
Reason for revert:
Still breaks Chromium mac compile:
[4542/22193] CXX obj/third_party/webrtc/base/rtc_base/unixfilesystem.o
FAILED: obj/third_party/webrtc/base/rtc_base/unixfilesystem.o
/b/c/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/webrtc/base/rtc_base/unixfilesystem.o.d -DLOGGING=1 -DV8_DEPRECATION_WARNINGS -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DDCHECK_ALWAYS_ON=1 -DNO_TCMALLOC -DUSE_EXTERNAL_POPUP_MENU=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DUSE_PROPRIETARY_CODECS -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=280106-1 -DCR_XCODE_VERSION=0511 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DENABLE_EXTERNAL_AUTH -DHAVE_OPENSSL_SSL_H -DHAVE_SCTP -DHAVE_SRTP -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DSRTP_RELATIVE_PATH -DSSL_USE_OPENSSL -DUSE_WEBRTC_DEV_BRANCH -DSSL_USE_OPENSSL -DHAVE_OPENSSL_SSL_H -DFEATURE_ENABLE_SSL -DLOGGING=1 -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_MAC -DNO_MAIN_THREAD_WRAPPING -I../../third_party/webrtc_overrides -I../../third_party/boringssl/src/include -I../.. -Igen -I../../third_party/jsoncpp/overrides/include -I../../third_party/jsoncpp/source/include -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party/boringssl/src/include -Wno-uninitialized -fno-strict-aliasing -fstack-protector -fcolor-diagnostics -arch x86_64 -O2 -g1 -isysroot /Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -mmacosx-version-min=10.7 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -Werror -Wall -Wno-unused-variable -Wpartial-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -fno-threadsafe-statics -fvisibility-inlines-hidden -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -c ../../third_party/webrtc/base/unixfilesystem.cc -o obj/third_party/webrtc/base/rtc_base/unixfilesystem.o
../../third_party/webrtc/base/unixfilesystem.cc:375:11: error: variable has incomplete type 'FSRef'
    FSRef fr;
          ^
/Applications/Xcode5.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:467:8: note: forward declaration of 'FSRef'
struct FSRef;
       ^
../../third_party/webrtc/base/unixfilesystem.cc:376:27: error: use of undeclared identifier 'kUserDomain'
    if (0 != FSFindFolder(kUserDomain, kApplicationSupportFolderType,
                          ^
../../third_party/webrtc/base/unixfilesystem.cc:376:40: error: use of undeclared identifier 'kApplicationSupportFolderType'
    if (0 != FSFindFolder(kUserDomain, kApplicationSupportFolderType,
                                       ^
../../third_party/webrtc/base/unixfilesystem.cc:377:27: error: use of undeclared identifier 'kCreateFolder'; did you mean 'CreateFolder'?
                          kCreateFolder, &fr))
                          ^~~~~~~~~~~~~
                          CreateFolder
../../third_party/webrtc/base/unixfilesystem.cc:92:22: note: 'CreateFolder' declared here
bool UnixFilesystem::CreateFolder(const Pathname &path, mode_t mode) {

Original issue's description:
> Reland of move all reference to carbon api (patchset #1 id:1 of https://codereview.webrtc.org/2316563002/ )
>
> Reason for revert:
> Chromium build issues have been resolved.
>
> Original issue's description:
> > Revert of Remove all reference to carbon api (patchset #2 id:20001 of https://codereview.webrtc.org/2299633002/ )
> >
> > Reason for revert:
> > Breaks chromium build
> >
> > Original issue's description:
> > > Remove all reference to carbon api
> > >
> > > BUG=webrtc:6282
> > >
> > > Committed: https://crrev.com/dbd8b6bec4143c940b2f2ca8cd85c25d17327964
> > > Cr-Commit-Position: refs/heads/master@{#14080}
> >
> > TBR=magjed@webrtc.org,mflodman@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:6282
> >
> > Committed: https://crrev.com/b096aa7fd375a980daab3a986596548ca5de2a1c
> > Cr-Commit-Position: refs/heads/master@{#14081}
>
> TBR=magjed@webrtc.org,mflodman@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:6282
>
> Committed: https://crrev.com/a90879b64fd8db57c0274169311d6b51dd59f1a0
> Cr-Commit-Position: refs/heads/master@{#14125}

TBR=mflodman@webrtc.org,kthelgason@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6282

Review-Url: https://codereview.webrtc.org/2317343003
Cr-Commit-Position: refs/heads/master@{#14133}
2016-09-08 12:35:00 +00:00
henrik.lundin
22c8d5a3e0 Revert of Setting up an RTP input fuzzer for NetEq (patchset #2 id:20001 of https://codereview.webrtc.org/2315633002/ )
Reason for revert:
Broke all Chromium libFuzzer builds
https://bugs.chromium.org/p/chromium/issues/detail?id=645069

Original issue's description:
> Setting up an RTP input fuzzer for NetEq
>
> This CL introduces a new fuzzer target neteq_rtp_fuzzer that
> manipulates the RTP header fields before inserting the packets into
> NetEq. A few helper classes are also introduced.
>
> BUG=webrtc:5447
> NOTRY=True
>
> Committed: https://crrev.com/2d273f1e97cd5030ed1686f27ce1118291b66395
> Cr-Commit-Position: refs/heads/master@{#14103}

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

Review-Url: https://codereview.webrtc.org/2328483002
Cr-Commit-Position: refs/heads/master@{#14131}
2016-09-08 12:00:41 +00:00
ossu
17e3fa1fb4 Removed sync packet support from NetEq.
I could not find a single place it was used, outside of the unittests
for the sync packet support itself.

Review-Url: https://codereview.webrtc.org/2309303002
Cr-Commit-Position: refs/heads/master@{#14130}
2016-09-08 11:53:00 +00:00
henrika
2c993ce505 Avoids crash in WebRtcAudioTrack.initPlayout
BUG=NONE
R=magjed@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#14129}
2016-09-08 11:36:41 +00:00