10535 Commits

Author SHA1 Message Date
kjellander
4e0ef346b7 Add default implementations of metrics and field trial to 'webrtc' target.
Having this, the produced libwebrtc.a library becomes complete and is
more useful to most downstream users. More advanced use cases that needs to
wire up their own field trial and metrics implementations will need to
create their own target.

BUG=webrtc:7372
NOTRY=True
CC=agouaillard@gmail.com

Review-Url: https://codereview.webrtc.org/2840553002
Cr-Commit-Position: refs/heads/master@{#17860}
2017-04-25 09:26:32 +00:00
mbonadei
9087d49b83 Enabling 'gn check' on webrtc/video.
I disabled the check on "video_tests" because it pulls
"//webrtc/media/rtc_unittest_main" as a dependency and it defines
the _main (that is already defined by "//webrtc/test:test_main").

I will file a bug to solve this in another CL.

BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2832063003
Cr-Commit-Position: refs/heads/master@{#17859}
2017-04-25 07:35:35 +00:00
nisse
30cba07bd1 Delete unused class ComThread.
BUG=None

Review-Url: https://codereview.webrtc.org/2835893003
Cr-Commit-Position: refs/heads/master@{#17857}
2017-04-25 07:09:15 +00:00
zstein
56162b9f67 Move ready to send logic from BaseChannel to RtpTransport.
BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/2812243005
Cr-Commit-Position: refs/heads/master@{#17853}
2017-04-24 23:54:35 +00:00
mbonadei
b80ef8c46e Revert of Enabling 'gn check' on //webrtc/test. (patchset #3 id:90001 of https://codereview.webrtc.org/2815103005/ )
Reason for revert:
Breaks Chromium because in Chromium we import WebRTC with rtc_include_tests=false (https://bugs.chromium.org/p/chromium/issues/detail?id=713179#c6).

Chromium uses webrtc/test/fuzzers and this CL adds test dependencies to neteq_rtc_fuzzer.

Original issue's description:
> Reland of Enabling 'gn check' on //webrtc/test. (patchset #1 id:1 of https://codereview.webrtc.org/2817003002/ )
>
> Reason for revert:
> The original CL was breaking a downstream buildbot: https://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%28Libfuzzer%29/builds/5429
>
> This CL fixes some dependencies in: webrtc/test/fuzzers/BUILD.gn
> (PS #2 and PS #3).
>
> BUG=webrtc:6828
>
> Original issue's description:
> > Revert of Enabling 'gn check' on //webrtc/test. (patchset #10 id:180001 of https://codereview.webrtc.org/2796363003/ )
> >
> > Reason for revert:
> > It is breaking a downstream bot.
> >
> > Original issue's description:
> > > Enabling 'gn check' on //webrtc/test.
> > >
> > > BUG=webrtc:6828
> > > NOTRY=True
> > >
> > > Review-Url: https://codereview.webrtc.org/2796363003
> > > Cr-Commit-Position: refs/heads/master@{#17689}
> > > Committed: b41445858e
> >
> > TBR=kjellander@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:6828
> >
> > Review-Url: https://codereview.webrtc.org/2817003002
> > Cr-Commit-Position: refs/heads/master@{#17690}
> > Committed: 8a24f47bad
>
> Review-Url: https://codereview.webrtc.org/2815103005
> Cr-Commit-Position: refs/heads/master@{#17758}
> Committed: 6f27633f47

TBR=kjellander@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2842533002
Cr-Commit-Position: refs/heads/master@{#17851}
2017-04-24 20:05:47 +00:00
mbonadei
11ed366c48 Revert of Enable GN check for webrtc/base (patchset #13 id:240001 of https://codereview.webrtc.org/2717083002/ )
Reason for revert:
Breaks Chromium because in Chromium we import WebRTC with rtc_include_tests=false (https://bugs.chromium.org/p/chromium/issues/detail?id=713179#c6).

Chromium uses webrtc/test/fuzzers and this CL adds test dependencies to neteq_rtc_fuzzer.

Original issue's description:
> Enable GN check for webrtc/base
>
> It's not possible to enable it for the rtc_base_approved
> target but since a larger refactoring is ongoing for webrtc/base
> this CL doesn't attempt to fix that.
>
> Changes made:
> * Move webrtc/system_wrappers/include/stringize_macros.h into
>   webrtc/base:rtc_base_approved_unittests (and corresponding
>   unit test to rtc_base_approved_unittests).
> * Move md5digest.* from rtc_base_approved to rtc_base_test_utils target.
> * Move webrtc/system_wrappers/include/stringize_macros.h (+test) into
>   webrtc/base.
> * Remove unused use include of webrtc/base/fileutils.h in
>   webrtc/base/pathutils.cc
>
> BUG=webrtc:6828, webrtc:3806, webrtc:7480
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2717083002
> Cr-Commit-Position: refs/heads/master@{#17766}
> Committed: ed754e71ae

TBR=perkj@webrtc.org,tommi@webrtc.org,nisse@webrtc.org,kjellander@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6828, webrtc:3806, webrtc:7480
NOTRY=True

Review-Url: https://codereview.webrtc.org/2838683002
Cr-Commit-Position: refs/heads/master@{#17849}
2017-04-24 19:26:27 +00:00
zhihuang
44d305a806 Remove the expat and jsoncpp dependencies to reduce binary size.
The dependency on third_party/expat/ is removed.

The dependency on third_party/jsoncpp is removed from
libjingle_peerconnection while peerconnection_client still
depends on it.

BUG=webrtc:7516

Review-Url: https://codereview.webrtc.org/2832283002
Cr-Commit-Position: refs/heads/master@{#17848}
2017-04-24 19:05:06 +00:00
zijiehe
9d1ea5cc22 Clear DesktopFrame in DxgiFrame to avoid legacy image
Once the buffer returned by Windows is not newly allocated, it may contain
legacy images from previous capturing attempts. This usually is not a problem,
as implementations other than ScreenCapturerWinDirectx paint each pixel on the
frame. But due to the one capturer per monitor design of
ScreenCapturerWinDirectx, part of the frame may not be covered by any
DxgiOutputDuplicator, and cause the legacy image to be shown.
So a very simple fix is to clear the DesktopFrame in DxgiFrame.

BUG=708766

Review-Url: https://codereview.webrtc.org/2827983007
Cr-Commit-Position: refs/heads/master@{#17847}
2017-04-24 18:50:05 +00:00
kjellander
d8868637ee Revert of Removing test deps in webrtc/test/fuzzers (patchset #1 id:1 of https://codereview.webrtc.org/2840523003/ )
Reason for revert:
Breaks libfuzzer bot - you forgot to run that one :P

https://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%28Libfuzzer%29/builds/5571

Original issue's description:
> Removing test deps in webrtc/test/fuzzers
>
> Targets in webrtc/test/fuzzers are used in chromium which includes WebRTC
> with rtc_include_tests=false.
>
> We enabled 'gn check' on the webrtc/test directory and we have detected
> that some dependencies were not tracked. These dependencies are on test
> targets so we cannot add them in the dep list because this causes a
> breakage in chromium.
>
> BUG=webrtc:7515
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2840523003
> Cr-Commit-Position: refs/heads/master@{#17844}
> Committed: 14b86d3864

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

Review-Url: https://codereview.webrtc.org/2835263002
Cr-Commit-Position: refs/heads/master@{#17846}
2017-04-24 18:31:17 +00:00
henrik.lundin
246ef3ea0e Change from WebRtcRTPHeader to RTPHeader in NetEq tests and tools
With this CL, all tests and tools under the neteq/ folder are
converted to use RTPHeader instead of WebRtcRTPHeader. WebRtcRTPHeader
has an RTPHeader as a member. None of the other member in
WebRtcRTPHeader where used.

TBR=kjellander@webrtc.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_rel_ng,linux_chromium_compile_dbg_ng
BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2809153002
Cr-Commit-Position: refs/heads/master@{#17845}
2017-04-24 16:14:32 +00:00
mbonadei
14b86d3864 Removing test deps in webrtc/test/fuzzers
Targets in webrtc/test/fuzzers are used in chromium which includes WebRTC
with rtc_include_tests=false.

We enabled 'gn check' on the webrtc/test directory and we have detected
that some dependencies were not tracked. These dependencies are on test
targets so we cannot add them in the dep list because this causes a
breakage in chromium.

BUG=webrtc:7515
NOTRY=True

Review-Url: https://codereview.webrtc.org/2840523003
Cr-Commit-Position: refs/heads/master@{#17844}
2017-04-24 15:44:14 +00:00
Henrik Lundin
70c09bde41 Reland of Change NetEq::InsertPacket to take an RTPHeader (patchset #1 id:1 of https://codereview.webrtc.org/2812933002/ )
Reason for revert:
Downstream roadblock should be cleared by now. Relanding original patch.

Original issue's description:
> Revert of Change NetEq::InsertPacket to take an RTPHeader (patchset #2 id:20001 of https://codereview.webrtc.org/2807273004/ )
>
> Reason for revert:
> Broke downstream dependencies.
>
> Original issue's description:
> > Change NetEq::InsertPacket to take an RTPHeader
> >
> > It used to take a WebRtcRTPHeader as input, which has an RTPHeader as
> > a member. None of the other member in WebRtcRTPHeader where used in
> > NetEq.
> >
> > This CL adapts the production code; tests and tools will be converted
> > in a follow-up CL.
> >
> > BUG=webrtc:7467
> >
> > Review-Url: https://codereview.webrtc.org/2807273004
> > Cr-Commit-Position: refs/heads/master@{#17652}
> > Committed: 4d027576a6
>
> TBR=ivoc@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7467
>
> Review-Url: https://codereview.webrtc.org/2812933002
> Cr-Commit-Position: refs/heads/master@{#17657}
> Committed: 10d095d4f7

R=ivoc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2835093002 .
Cr-Commit-Position: refs/heads/master@{#17843}
2017-04-24 13:56:57 +00:00
nisse
cae45d0469 Move RtpTransportControllerSend to a new file.
Also move RtpTransportControllerSendInterface to its own header file.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2808043002
Cr-Commit-Position: refs/heads/master@{#17840}
2017-04-24 12:53:20 +00:00
ilnik
a244ec659d Add content type extension to capabilities
BUG=webrtc:7420

Review-Url: https://codereview.webrtc.org/2817553004
Cr-Commit-Position: refs/heads/master@{#17839}
2017-04-24 12:12:35 +00:00
oprypin
30cda5ef98 Espresso test for loopback video quality testing
Update the AppRTCMobileTestStubbedVideoIO test to run on
phones without Internet connection. This is done by bringing up
a local instance of AppRTC on the Linux machine connected to
the Android device.

Running this test will need the webrtc.DEPS solution to be configured
for the checkout, since that will pull down the precompiled AppRTC
package that is needed.

Continued from http://crrev.com/2780493002#ps20001 (by kjellander@)
Continued from http://crrev.com/2741743002#ps180001 (by mandermo@)

BUG=webrtc:7185

Review-Url: https://codereview.webrtc.org/2825313002
Cr-Commit-Position: refs/heads/master@{#17838}
2017-04-24 11:15:13 +00:00
kthelgason
c097710cce Reland of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #1 id:1 of https://codereview.webrtc.org/2827223003/ )
Reason for revert:
Relanding after fixing ARC issue.

Original issue's description:
> Revert of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #3 id:40001 of https://codereview.webrtc.org/2781713004/ )
>
> Reason for revert:
> Breaks mac build
>
> Original issue's description:
> > GN: Enable ARC for Mac and iOS in rtc_* templates
> >
> > Remove all uses of retain/release and NSAutoreleasePool.
> >
> > This makes transformation to Bazel easier.
> >
> > This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/
> >
> > BUG=webrtc:6412
> >
> > Review-Url: https://codereview.webrtc.org/2781713004
> > Cr-Commit-Position: refs/heads/master@{#17780}
> > Committed: 6bda02b51d
>
> TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6412
>
> Review-Url: https://codereview.webrtc.org/2827223003
> Cr-Commit-Position: refs/heads/master@{#17784}
> Committed: 7c8786ae8f

TBR=kjellander@webrtc.org,magjed@webrtc.org,stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6412

Review-Url: https://codereview.webrtc.org/2834273002
Cr-Commit-Position: refs/heads/master@{#17836}
2017-04-24 07:57:16 +00:00
soren
0f109beb38 Fixing check for when overlap-add is not 1 ms
BUG=chromium:710812

Review-Url: https://codereview.webrtc.org/2814363002
Cr-Commit-Position: refs/heads/master@{#17835}
2017-04-24 07:22:05 +00:00
henrik.lundin
06863c9ce5 Add TimestampUnwrapper and generalize the code
BUG=webrtc:7467
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.chromium.mac:mac_chromium_rel_ng,ios-device;master.tryserver.chromium.win:win_chromium_rel_ng;master.tryserver.chromium.android:android_compile_dbg,linux_android_rel_ng

Review-Url: https://codereview.webrtc.org/2813593003
Cr-Commit-Position: refs/heads/master@{#17833}
2017-04-24 06:54:13 +00:00
deadbeef
0687829794 Fixing SignalSentPacket for TCP connections.
The signal was only being hooked up for incoming connections, not
outgoing connections.

As a result, the bandwidth estimator didn't know when packets were sent
and couldn't calculate delays.

BUG=webrtc:7509

Review-Url: https://codereview.webrtc.org/2834083002
Cr-Commit-Position: refs/heads/master@{#17817}
2017-04-21 21:22:23 +00:00
jtteh
f84c1d6644 Don't call unconfigureWebRTCSession if configureWebRTCSession fails.
Otherwise, the activeCount will become negative.

BUG=webrtc:7471

Review-Url: https://codereview.webrtc.org/2822233002
Cr-Commit-Position: refs/heads/master@{#17816}
2017-04-21 20:56:39 +00:00
kjellander
8a11663219 Enable GN check for webrtc/{p2p,system_wrappers}
Introduce new small header-only targets in system_wrappers:
:cpu_features_api
:field_trial_api
:metrics_api
to untangle and optimize dependencies but still satisfy GN check.

In webrtc/p2p, previously uncovered header "base/fakecandidatepair.h"
is added to :p2p_test_utils target.

Refactor system_wrappers so 'rtc_p2p' can depend on only
system_wrappers:field_trial_api instead of all of system_wrappers
(which led to a breakage in Chromium that called for the revert of
https://codereview.webrtc.org/2735583002).

BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2739863002
Cr-Commit-Position: refs/heads/master@{#17812}
2017-04-21 12:17:08 +00:00
deadbeef
7914b8cb41 Negotiate the same SRTP crypto suites for every DTLS association formed.
Before this CL, we would negotiate:
- No crypto suites for data m= sections.
- A full set for audio m= sections.
- The full set, minus SRTP_AES128_CM_SHA1_32 for video m= sections.

However, this doesn't make sense with BUNDLE, since any DTLS
association could end up being used for any type of media. If
video is "bundled on" the audio transport (which is typical), it
will actually end up using SRTP_AES128_CM_SHA1_32.

So, this CL moves the responsibility of deciding SRTP crypto suites out
of BaseChannel and into DtlsTransport. The only two possibilities are
now "normal set" or "normal set + GCM", if enabled by the PC factory
options.

This fixes an issue (see linked bug) that was occurring when audio/video
were "bundled onto" the data transport. Since the data transport
wasn't negotiating any SRTP crypto suites, none were available to use
for audio/video, so the application would get black video/no audio.

This CL doesn't affect the SDES SRTP crypto suite negotiation;
it only affects the negotiation in the DLTS handshake, through
the use_srtp extension.

BUG=chromium:711243

Review-Url: https://codereview.webrtc.org/2815513012
Cr-Commit-Position: refs/heads/master@{#17810}
2017-04-21 10:23:33 +00:00
deadbeef
30952b460f Add "ice-option:trickle" to generated offers/answers.
BUG=webrtc:7443

Review-Url: https://codereview.webrtc.org/2808913003
Cr-Commit-Position: refs/heads/master@{#17809}
2017-04-21 09:41:29 +00:00
asapersson
d0de295119 Only increment scale counter and adaptation stats (and store last_adaptation_request_) if sink_wants_ is updated.
BUG=webrtc:7492

Review-Url: https://codereview.webrtc.org/2800403002
Cr-Commit-Position: refs/heads/master@{#17808}
2017-04-21 08:47:31 +00:00
magjed
b04646f38b Android: Prepare moving EglBase10/EglBase14 from to API to src
BUG=webrtc:7172

Review-Url: https://codereview.webrtc.org/2826063002
Cr-Commit-Position: refs/heads/master@{#17807}
2017-04-21 08:34:12 +00:00
mbonadei
1e060c6b0c Enabling 'gn check' on webrtc/sdk
BUG=webrtc:7499

Review-Url: https://codereview.webrtc.org/2818433003
Cr-Commit-Position: refs/heads/master@{#17805}
2017-04-21 07:02:02 +00:00
deadbeef
3bc15103ae Fix RtpReceiver.GetParameters when SSRCs aren't signaled.
When SSRCs aren't signaled, an SSRC of 0 is used internally to mean
"the default receive stream". But this wasn't working with the
implementation of GetRtpReceiveParameters in the audio/video
engines. This was breaking RtpReceiver.GetParameters in this situation,
as well as the new getStats implementation (which relies on
GetParameters).

The new implementation will fail if *no* default receive stream is
configured (meaning no default sink is set), and otherwise will return
a default RtpEncodingParameters (later it will be filled with relevant
SDP parameters as they're implemented).

BUG=webrtc:6971

Review-Url: https://codereview.webrtc.org/2806173002
Cr-Commit-Position: refs/heads/master@{#17803}
2017-04-21 02:25:07 +00:00
steweg
a1fa491334 Fix invalid output buffer usage
This patch fixes the internal AudioCoder output buffer setting to be set
prior it will be used within callback from ACM

BUG=webrtc:7462

Review-Url: https://codereview.webrtc.org/2806933002
Cr-Commit-Position: refs/heads/master@{#17800}
2017-04-20 22:19:10 +00:00
zijiehe
d41af462fb This change fixes a crash issue in WindowCapturerWin. The issue and fix are both
obvious, WindowCapturerWin should not return Result::SUCCESS with an empty
frame.
This issue was original introduced into the code base in change
https://codereview.webrtc.org/1988783003/.

I am also considering whether we should move the
previous_size_ = frame->size();
window_size_map_[window_] = previous_size_;
into the true branch. But since this change needs to be merged into M58 and M59,
I would prefer to keep it as small as possible.

BUG=712615

Review-Url: https://codereview.webrtc.org/2835553002
Cr-Commit-Position: refs/heads/master@{#17799}
2017-04-20 21:53:36 +00:00
deadbeef
d07061c9f3 Add comments about PeerConnection::Close and PeerConnectionObserver.
Documenting that the observer can safely be destroyed after Close has
been called, because it ensures no more callbacks will be invoked. Just
like in JavaScript land, where no more events will be fired after
"close" is called.

This is already covered by unit tests.

BUG=webrtc:7491
NOTRY=True
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/2834543005
Cr-Commit-Position: refs/heads/master@{#17798}
2017-04-20 20:19:00 +00:00
kwiberg
492c09fe59 Don't make a top-level namespace called "voetest"
We shouldn't pollute the global namespace.

BUG=webrtc:7484

Review-Url: https://codereview.webrtc.org/2813373002
Cr-Commit-Position: refs/heads/master@{#17797}
2017-04-20 20:17:52 +00:00
zijiehe
cf5753df77 Merge ScreenCapturerWinDirectx::frames_ and contexts_
The key change of this CL is to merge ScreenCapturerWinDirectx::frames_ and
contexts_ into a new DxgiFrame class. So consumers of DxgiDuplicateController
does not need to maintain two objects. DxgiDuplicateController::Duplicate*()
functions are also updated to accept DxgiFrame parameter instead of
SharedDesktopFrame + Context. The advantages of this change are,

1. Once the screen resolution changes or an existing monitor has been removed,
DxgiFrame can automatically reset the frame without needing to return a capture
failure.
2. Remove public APIs of DxgiDuplicatorController. Some public APIs are not
needed anymore, i.e. consumers of DxgiDuplicatorController do not need to take
care about these internal states anymore. It also helps to remove several lock
acquiements.
3. Reduce the complexity of ScreenCapturerWinDirectx.

But the disadvantage is, instead of a boolean value,
DxgiDuplicateController::Duplicate*() now return an enumeration. Clients need to
use the enumeration to decide whether the error can be recovered or not.

This change also removes a duplicating logic in ScreenCapturerWinDirectx. i.e.
ResolutionChangeDetector, DxgiDuplicateController now takes care of the screen
resolution changes.

I have verified the scenarios with and without SharedMemoryFactory, also the
Desktop capture API example. So far no regression is detected.

BUG=704205

Review-Url: https://codereview.webrtc.org/2788863006
Cr-Commit-Position: refs/heads/master@{#17795}
2017-04-20 19:06:04 +00:00
michaelt
8490f8af21 Remove GetFeedbackInterval in sender side BWE.
And changed the minimum increase rate in |aimd_rate_control| to prevent the system from overusing on short twcc report send interval.

BUG=webrtc:6514

Review-Url: https://codereview.webrtc.org/2407143002
Cr-Commit-Position: refs/heads/master@{#17794}
2017-04-20 17:10:10 +00:00
danilchap
c1b693c7a8 Remove rtcp::TransportFeedback::GetStatusVector/GetReceiveDeltas
in favor of GetPacketStatusCount/GetReceivedPackets

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2822153002
Cr-Commit-Position: refs/heads/master@{#17792}
2017-04-20 15:23:41 +00:00
henrika
714e5cd6c6 Adds AudioDeviceTest.MeasureLoopbackLatency unittest.
Follow-up CL on https://codereview.webrtc.org/2788883002/ where I add a new
test which has to be enabled manually (will not run by default on bots).

Measures loopback latency and reports the min, max and average values for
a full duplex audio session.
The latency is measured like so:
- Insert impulses periodically on the output side.
- Detect the impulses on the input side.
- Measure the time difference between the transmit time and receive time.
- Store time differences in a vector and calculate min, max and average.
This test needs the '--gtest_also_run_disabled_tests' flag to run and also
some sort of audio feedback loop. E.g. a headset where the mic is placed
close to the speaker to ensure highest possible echo. It is also recommended
to run the test at highest possible output volume.

How to run:

./out/Debug/modules_unittests --gtest_filter=AudioDeviceMeasureLoopbackLatency --gtest_also_run_disabled_tests

Example output (on Linux machine):

[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from AudioDeviceTest
[ RUN      ] AudioDeviceTest.DISABLED_MeasureLoopbackLatency
[..........]
[..........] [min, max, avg]=[59, 67, 64] ms
[       OK ] AudioDeviceTest.DISABLED_MeasureLoopbackLatency (10034 ms)
[----------] 1 test from AudioDeviceTest (10034 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (10036 ms total)
[  PASSED  ] 1 test.

BUG=webrtc:7273

Review-Url: https://codereview.webrtc.org/2826073002
Cr-Commit-Position: refs/heads/master@{#17791}
2017-04-20 15:03:11 +00:00
michaelt
2fe9ac3763 Add network tester client [android] to be able to test mobile networks in terms of packet size and sending rates.
BUG=webrtc:7426

Review-Url: https://codereview.webrtc.org/2787863002
Cr-Commit-Position: refs/heads/master@{#17789}
2017-04-20 13:56:27 +00:00
michaelt
fcea39d7ce Add packet logger and server
BUG=webrtc:7426

Review-Url: https://codereview.webrtc.org/2790513002
Cr-Commit-Position: refs/heads/master@{#17788}
2017-04-20 12:39:30 +00:00
mandermo
76ec9d7364 Removed duplicated annotation in webrtc/examples/androidtests/AndroidManifest.xml
BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2679143002
Cr-Commit-Position: refs/heads/master@{#17787}
2017-04-20 12:31:32 +00:00
asapersson
b99baf8280 Only record received key frame histogram stats if a certain number of frames (kMinRequiredSamples) have been received from OnCompleteFrame callback.
BUG=none

Review-Url: https://codereview.webrtc.org/2832643003
Cr-Commit-Position: refs/heads/master@{#17786}
2017-04-20 11:05:43 +00:00
philipel
146a48b0fa Check if the order of frames becomes ambiguous if we were to insert the incoming frame, and if so, clear the FrameBuffer.
BUG=chromium:679306

Review-Url: https://codereview.webrtc.org/2830723002
Cr-Commit-Position: refs/heads/master@{#17785}
2017-04-20 11:04:38 +00:00
kthelgason
7c8786ae8f Revert of GN: Enable ARC for Mac and iOS in rtc_* templates (patchset #3 id:40001 of https://codereview.webrtc.org/2781713004/ )
Reason for revert:
Breaks mac build

Original issue's description:
> GN: Enable ARC for Mac and iOS in rtc_* templates
>
> Remove all uses of retain/release and NSAutoreleasePool.
>
> This makes transformation to Bazel easier.
>
> This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/
>
> BUG=webrtc:6412
>
> Review-Url: https://codereview.webrtc.org/2781713004
> Cr-Commit-Position: refs/heads/master@{#17780}
> Committed: 6bda02b51d

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

Review-Url: https://codereview.webrtc.org/2827223003
Cr-Commit-Position: refs/heads/master@{#17784}
2017-04-20 10:54:22 +00:00
stefan
ff42162125 Use multimap to handle packets logged at the same time in the event log analyzer.
BUG=None

Review-Url: https://codereview.webrtc.org/2832773002
Cr-Commit-Position: refs/heads/master@{#17782}
2017-04-20 10:24:01 +00:00
nisse
b9c2f7ceeb Reland of Delete class ScopedPtrCollection. Replaced with vector of unique_ptr. (patchset #1 id:1 of https://codereview.webrtc.org/2812553002/ )
Reason for revert:
Downstream project updated.

Original issue's description:
> Revert of Delete class ScopedPtrCollection. Replaced with vector of unique_ptr. (patchset #1 id:1 of https://codereview.webrtc.org/2808463002/ )
>
> Reason for revert:
> Deleting scopedptrcollection.h broke an internal project.
>
> Original issue's description:
> > Delete class ScopedPtrCollection. Replaced with vector of unique_ptr.
> >
> > BUG=None
> >
> > Review-Url: https://codereview.webrtc.org/2808463002
> > Cr-Commit-Position: refs/heads/master@{#17605}
> > Committed: 188596f20f
>
> TBR=pthatcher@webrtc.org,kwiberg@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2812553002
> Cr-Commit-Position: refs/heads/master@{#17607}
> Committed: 2042c16be0

TBR=pthatcher@webrtc.org,kwiberg@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=None

Review-Url: https://codereview.webrtc.org/2814693002
Cr-Commit-Position: refs/heads/master@{#17781}
2017-04-20 09:23:08 +00:00
kthelgason
6bda02b51d GN: Enable ARC for Mac and iOS in rtc_* templates
Remove all uses of retain/release and NSAutoreleasePool.

This makes transformation to Bazel easier.

This CL subsumes https://codereview.webrtc.org/2778163002 and depends on https://codereview.webrtc.org/2784483002/

BUG=webrtc:6412

Review-Url: https://codereview.webrtc.org/2781713004
Cr-Commit-Position: refs/heads/master@{#17780}
2017-04-20 08:38:01 +00:00
deadbeef
897d08ef1b Fixing bug that results in incorrect ICE role with ICE lite endpoints.
There's some code that resets the ICE role on an ICE restart (behavior
that's specified in ICE, but removed from ICEbis). And it wasn't taking
into account that the remote endpoint may be an ICE lite endpoint, in
which case the WebRTC endpoint's role should always be "controlling".

BUG=chromium:710760

Review-Url: https://codereview.webrtc.org/2812173003
Cr-Commit-Position: refs/heads/master@{#17779}
2017-04-20 07:57:25 +00:00
asapersson
fc5e81c979 Replace first_packet_sent_ms_ in Call.
Instead of using the time on the first callback to Call::OnSentPacket, use the time when the first packet is sent from the pacer (to make sure this packet corresponds to an audio/video RTP packet).

BUG=webrtc:6244

Review-Url: https://codereview.webrtc.org/2825333002
Cr-Commit-Position: refs/heads/master@{#17777}
2017-04-20 06:28:53 +00:00
hillma
c2a18c2aae Fixed tools/py_event_log_analyzer/pb_parse.py
BUG=webrtc:7289
NOTRY=True

Review-Url: https://codereview.webrtc.org/2727913004
Cr-Commit-Position: refs/heads/master@{#17776}
2017-04-20 05:59:17 +00:00
qiangchen
067121ab3f Bug Fix: WebRTC Receiver Timestamp Jump Detection
RTCVideoEncoder does not propagate RTP timestamps properly for encoded video frames, and as such whenever switching between simulcast layers there's a large timestamp gap that causes the incoming stream to freeze (timestamps look like they're either too far ahead or too far behind the previous frame).

Ideally RTCVideoEncoder would propagate these timestamps, but even so, when there's a large timestamp gap it would seem reasonable that the receiver resets quickly and consider this to be a new stream.

This CL detects the large jump for timestamps, if that happens, we reset the time extrapolator, which is the class for convertion from RTP timestamp to clock time.

BUG=chromium:705679

Review-Url: https://codereview.webrtc.org/2776813002
Cr-Commit-Position: refs/heads/master@{#17770}
2017-04-19 16:57:37 +00:00
terelius
6737045af1 Move BWE period calculation from ProbingIntervalEstimator to AimdRateControl.
Remove the ProbingIntervalEstimator and MockAimdRateControl.

BUG=webrtc:7441

Review-Url: https://codereview.webrtc.org/2789233005
Cr-Commit-Position: refs/heads/master@{#17769}
2017-04-19 16:15:04 +00:00
peah
e52a203a56 Echo canceller 3 improvements for setups with headsets.
This CL improves the echo cancellation performance on setups where
headsets are used (systems with such low echo path gain
that no correlation between the render and capture signals
can be found) in 4 ways:
1) The echo path gain for systems with headsets is assumed to be
nonzero.
2) The stationary component of the render power is not included
in nonlinear echo power estimate.
3) The behavior after echo path gain changes is made less cautious.
4) The detection of systems with headsets is made more rapid.

BUG=chromium:712651, webrtc:6018

Review-Url: https://codereview.webrtc.org/2823903003
Cr-Commit-Position: refs/heads/master@{#17768}
2017-04-19 16:03:40 +00:00