11283 Commits

Author SHA1 Message Date
brandtr
cb8f045d9f Fix receiving FlexFEC in video_loopback.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2965503006
Cr-Commit-Position: refs/heads/master@{#18847}
2017-06-30 09:34:20 +00:00
brandtr
5f8b04d53a Higher logging severity for RED packets in UlpfecReceiverImpl.
As requested by holmer@ in https://codereview.webrtc.org/2918333002.

BUG=webrtc:5654
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2965533003
Cr-Commit-Position: refs/heads/master@{#18846}
2017-06-30 08:52:24 +00:00
ossu
1129df26b0 Always ResetSenderCongestionControlObjects before RegisterEtc...
BUG=webrtc:7896

Review-Url: https://codereview.webrtc.org/2966503002
Cr-Commit-Position: refs/heads/master@{#18844}
2017-06-30 08:38:56 +00:00
kjellander
88af8b4b62 Fix -Wcomment warning in webrtcsdp.cc
BUG=b/63151298
TBR=deadbeef@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2969623002
Cr-Commit-Position: refs/heads/master@{#18843}
2017-06-30 06:19:31 +00:00
jbauch
5869f50f7a Support encrypted RTP extensions (RFC 6904)
Can be enabled by setting "enable_encrypted_rtp_header_extensions" in
"crypto_options" of "PeerConnectionFactoryInterface::Options" and will
only be used if both peers support it.

BUG=webrtc:3411

Review-Url: https://codereview.webrtc.org/2761143002
Cr-Commit-Position: refs/heads/master@{#18842}
2017-06-29 19:31:36 +00:00
VladimirTechMan
26afe214ad Properly export the symbols of video frame-buffer classes for link-time
Linking external ObjC / Swift apps fails when the app code is using any
of the new frame-buffer classes RTCI420Buffer, RTCMutableI420Buffer, or
RTCCVPixelBuffer. To fix, we need to add the appropriate attribute to
the classes (e.g. using the RTC_EXPORT macro).

BUG=None

Review-Url: https://codereview.webrtc.org/2961293002
Cr-Commit-Position: refs/heads/master@{#18840}
2017-06-29 16:11:10 +00:00
bdodson
06b47c520d Listen for Wifi-Direct networks and include them in the network list
BUG=webrtc:7708
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2951803003
Cr-Commit-Position: refs/heads/master@{#18839}
2017-06-29 15:57:01 +00:00
peah
a9cc40b7d2 Allow an external audio processing module to be used in WebRTC
[This CL is a rebase of an original CL by solenberg@:
https://codereview.webrtc.org/2948763002/ which in turn was a
rebase of an original CL by peah@:
https://chromium-review.googlesource.com/c/527032/]

Allow an external audio processing module to be used in WebRTC

This CL adds support for optionally using an externally created audio
processing module in a peerconnection. The ownership is shared
between the peerconnection and the external creator of the module.

As part of this the internal ownership of the audio processing module
is moved from VoiceEngine to WebRtcVoiceEngine.

BUG=webrtc:7775

Review-Url: https://codereview.webrtc.org/2961723004
Cr-Commit-Position: refs/heads/master@{#18837}
2017-06-29 15:32:09 +00:00
sprang
3dbfac3515 Fix two simple type mismatches thay may cause compilation issues on win.
BUG=None

Review-Url: https://codereview.webrtc.org/2955193002
Cr-Commit-Position: refs/heads/master@{#18836}
2017-06-29 14:42:18 +00:00
Magnus Jedvert
f1e34832b8 Revert "VideoFrameBuffer: Remove deprecated functions"
This reverts commit 428c9e218538278e6b0db42d1b734431bb432e1a.

Reason for revert: Breaks Chromium WebRTC FYI on Mac Builder. http://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/25788

Original change's description:
> VideoFrameBuffer: Remove deprecated functions
> 
> Bug: webrtc:7632
> Change-Id: I06f97bacd51f94d1f90b5286cc39e06a1697bb9b
> Reviewed-on: https://chromium-review.googlesource.com/535479
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18832}

TBR=magjed@webrtc.org,nisse@webrtc.org

Change-Id: I2e6617420746bba3e4637019d3bce03be12a4643
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632
Reviewed-on: https://chromium-review.googlesource.com/555550
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18834}
2017-06-29 13:39:35 +00:00
nisse
bc8feda1db Delete SignalThread class.
Rewrite AsyncResolver to use PlatformThread directly, not
SignalThread, and update includes of peerconnection client to not
depend on signalthread.h.

BUG=webrtc:6424,webrtc:7723

Review-Url: https://codereview.webrtc.org/2915253002
Cr-Commit-Position: refs/heads/master@{#18833}
2017-06-29 13:21:20 +00:00
Magnus Jedvert
428c9e2185 VideoFrameBuffer: Remove deprecated functions
Bug: webrtc:7632
Change-Id: I06f97bacd51f94d1f90b5286cc39e06a1697bb9b
Reviewed-on: https://chromium-review.googlesource.com/535479
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18832}
2017-06-29 12:50:13 +00:00
deadbeef
57ca81aff0 Actually use virtual network in OrtcFactory unit test.
I intended to do this originally, but just forgot to pass the thread
with the virtual socket server into OrtcFactory::Create...

BUG=None
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/2967453002
Cr-Commit-Position: refs/heads/master@{#18831}
2017-06-29 12:34:45 +00:00
asapersson
8a90f87518 Add SetCodecSettings method for configuring VideoCodec settings.
Remove video codec settings from CodecParams (and rename to ProcessParams).

Removes intermediate step of configuring video settings via CodecParams.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2956243002
Cr-Commit-Position: refs/heads/master@{#18830}
2017-06-29 12:13:27 +00:00
Magnus Jedvert
17432ec3b7 Add magjed@ as owner of webrtc/api/video/
magjed has written most of the code in this folder.

NOTRY=TRUE

Bug: None
Change-Id: I786261d4407f38de612f5fae12b9abde4594bac2
Reviewed-on: https://chromium-review.googlesource.com/550095
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18829}
2017-06-29 12:06:33 +00:00
brandtr
d726a3f487 Reland of Only compare sequence numbers from the same SSRC in ForwardErrorCorrection. (patchset #1 id:1 of https://codereview.webrtc.org/2919313005/ )
Reason for revert:
Fix RtpStreamReceiver to not recover RTX packets with incorrect SSRC.

Original issue's description:
> Revert of Only compare sequence numbers from the same SSRC in ForwardErrorCorrection. (patchset #5 id:120001 of https://codereview.webrtc.org/2893293003/ )
>
> Reason for revert:
> Breaks fuzzer.
>
> Original issue's description:
> > Only compare sequence numbers from the same SSRC in ForwardErrorCorrection.
> >
> > Prior to this CL, the ForwardErrorCorrection state would be reset whenever
> > the difference in sequence numbers of the last recovered media packet
> > and the new packet (media or FEC) was too large. This comparison did not
> > take into account that FlexFEC uses a different SSRC for the FEC packets,
> > meaning that the the state would be reset very frequently when FlexFEC
> > is used. This should not have led to any major problems, except for a
> > decreased decoding efficiency.
> >
> > This CL verifies that whenever we compare sequence numbers in
> > ForwardErrorCorrection, they do indeed belong to the same SSRC.
> >
> > BUG=webrtc:5654
> >
> > Review-Url: https://codereview.webrtc.org/2893293003
> > Cr-Commit-Position: refs/heads/master@{#18399}
> > Committed: 1476a9d789
>
> TBR=stefan@webrtc.org,holmer@google.com
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:5654
>
> Review-Url: https://codereview.webrtc.org/2919313005
> Cr-Commit-Position: refs/heads/master@{#18446}
> Committed: 92732ecc5c

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

Review-Url: https://codereview.webrtc.org/2918333002
Cr-Commit-Position: refs/heads/master@{#18827}
2017-06-29 09:45:35 +00:00
ilnik
e4350197ec Don't disable FEC if timing frames are disabled.
Don't disable fec for packets without timing frames extension
even if they are marked as belonging to timing frames.

BUG=webrtc:7894

Review-Url: https://codereview.webrtc.org/2956263002
Cr-Commit-Position: refs/heads/master@{#18826}
2017-06-29 09:27:48 +00:00
henrika
8c1ee7b73a Simplifies StartStopRecording test on iOS.
Bug: webrtc:7888
Change-Id: I0850c3a9dddff43818f345099911e0642744ae5d
Reviewed-on: https://chromium-review.googlesource.com/552545
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18825}
2017-06-29 09:27:45 +00:00
Sami Kalliomäki
8d08a92c05 Do not copy I420 frames in the decoder when not necessary.
In most cases we can just return a frame referencing the buffer
returned by the decoder.

Bug: webrtc:7760
Change-Id: I0b42ab9662b39149e42a3c83adfd38a9d80e0e30
Reviewed-on: https://chromium-review.googlesource.com/544299
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18824}
2017-06-29 08:10:16 +00:00
Mirko Bonadei
b14fad45b8 Adding newline at the end of .proto files
Some .proto files have newline at the end. This CL levels all our .proto
files. A presubmit check will follow.

NOTRY=True
TBR=minyue@webrtc.org

Bug: None
Change-Id: I988fe94c31abf91c85a45b564c488329d677b958
Reviewed-on: https://chromium-review.googlesource.com/552137
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18823}
2017-06-29 07:09:12 +00:00
Henrik Kjellander
f4efb6fb3d Reland "Move webrtc/{base => rtc_base} (stub headers)
Add the stub headers from https://codereview.webrtc.org/2877023002
as a separate commit. This preserves git blame history of the moved files.

BUG=webrtc:7634
NOTRY=True
TBR=kwiberg@webrtc.org

Change-Id: Ic141abf11801fbfdeea5bcdb23608696ad449013
Reviewed-on: https://chromium-review.googlesource.com/554623
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18822}
2017-06-29 06:21:49 +00:00
Henrik Kjellander
c03627683f Reland "Move webrtc/{base => rtc_base}" (https://codereview.webrtc.org/2877023002)
Reland the base->rtc_base without adding stub headers (will be
done in follow-up CL). This preserves git blame history of all files.

BUG=webrtc:7634
NOTRY=True
TBR=kwiberg@webrtc.org

Change-Id: Iea3bb6f3f67b8374c96337b63e8f5aa3e6181012
Reviewed-on: https://chromium-review.googlesource.com/554611
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18821}
2017-06-29 06:04:25 +00:00
Henrik Kjellander
ec78f1cebc Revert "Move webrtc/{base => rtc_base}" (https://codereview.webrtc.org/2877023002)
Will reland in two different commits to preserve git blame history.

BUG=webrtc:7634
NOTRY=True
TBR=kwiberg@webrtc.org

Change-Id: I550da8525aeb9c5b8f96338fcf1c9714f3dcdab1
Reviewed-on: https://chromium-review.googlesource.com/554610
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18820}
2017-06-29 05:54:22 +00:00
zhihuang
a4c113afe1 Support building WebRTC without audio and video for IOS.
Reorganized the targets in webrtc/sdk/BUILD.gn so that the applications which use
WebRTC DataChannel only can depend on the "peerconnection_factory_no_media"
instead of "rtc_sdk_objc" to reduce the binary size.

Provided a no-media implementation of RTCPeerConnectionFactory using the macro
"HAVE_NO_MEDIA".

BUG=webrtc:7613

Review-Url: https://codereview.webrtc.org/2944643002
Cr-Commit-Position: refs/heads/master@{#18819}
2017-06-28 21:05:44 +00:00
Henrik Kjellander
6776518bea Move webrtc/{base => rtc_base}
This refactoring takes a careful approach to avoid rushing the change:
* stub headers are left in all the old locations of webrtc/base
* existing GN targets are kept and now just forward to the moved ones
  using public_deps.
The only exception to the above is the base_java target and its .java files,
which were moved to webrtc/rtc_base right away since it's not possible
to use public_deps for android_library.
To avoid breaking builds, a temporary Dummy.java file was added to
the new intermediate target in webrtc/rtc_base:base_java as well to avoid
hitting a GN assert in the android_library template.

The above approach should make the transition smooth without breaking
downstream.

A helper script was created (https://codereview.webrtc.org/2879203002/)
and was run like this:
stub-headers.py -s webrtc/base -d webrtc/rtc_base -i 7634
stub-headers.py -s webrtc/base/numerics -d webrtc/rtc_base/numerics -i 7634

Fixed invalid header guards in the following files:
webrtc/base/base64.h
webrtc/base/cryptstring.h
webrtc/base/event.h
webrtc/base/flags.h
webrtc/base/httpbase.h
webrtc/base/httpcommon-inl.h
webrtc/base/httpcommon.h
webrtc/base/httpserver.h
webrtc/base/logsinks.h
webrtc/base/macutils.h
webrtc/base/nattypes.h
webrtc/base/openssladapter.h
webrtc/base/opensslstreamadapter.h
webrtc/base/pathutils.h
webrtc/base/physicalsocketserver.h
webrtc/base/proxyinfo.h
webrtc/base/sigslot.h
webrtc/base/sigslotrepeater.h
webrtc/base/socket.h
webrtc/base/socketaddresspair.h
webrtc/base/socketfactory.h
webrtc/base/stringutils.h
webrtc/base/testbase64.h
webrtc/base/testutils.h
webrtc/base/transformadapter.h
webrtc/base/win32filesystem.h

Added new header guards to:
sslroots.h
testbase64.h

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True
R=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2877023002 .
Cr-Commit-Position: refs/heads/master@{#18816}
2017-06-28 18:58:10 +00:00
deadbeef
86c40a14b4 Fixing RTCIceCandidatePairStats.nominated for ICE controlling agent.
Was only working when the nonstandard "renomination" extension to ICE
is enabled, which chromium doesn't use.

BUG=chromium:734094

Review-Url: https://codereview.webrtc.org/2957303002
Cr-Commit-Position: refs/heads/master@{#18814}
2017-06-28 16:37:23 +00:00
eladalon
c3e3e60f59 nit: Rename RtpDemuxer::sink_ to RtpDemuxer::ssrc_sinks_
Rationale:
1. sinks_ is not properly differentiated from rsid_sinks_.
2. Consistency with RtcpDemuxer.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2958283002
Cr-Commit-Position: refs/heads/master@{#18813}
2017-06-28 15:18:51 +00:00
Alex Loiko
9f789a4500 LowCutFilter::BiqueadFilter::Process: Fix UBSan fuzzer bug
(left shift of negative value)


Bug: chromium:735593
Change-Id: I9f1165370d850456480fbb22ce2434bf933a420b
Reviewed-on: https://chromium-review.googlesource.com/552136
Commit-Queue: Alex Loiko <aleloi@google.com>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18812}
2017-06-28 14:55:20 +00:00
eladalon
d6e9466e7e No compliation-flag-dependent members in CriticalSection
Having members in a class which only exist when certain compliation flags are turned on (unless relating to the target platform) means that those flags must be the same when compiling the module as when including its headers from other modules. This means that code outside of WebRTC runs the risk of misjudging the size of an rtc::CriticalSection, or any class which has an rtc::CriticalSection as a member. (This rule is applied recursively.) If a mismatch occurs, memory corruption is likely.

Having discussed this a bit, we have decided that the simplest solution is probably the best - always define those members, even when compilation flags (namely, CS_DEBUG_CHECKS) render it unused.

BUG=webrtc:7867

Review-Url: https://codereview.webrtc.org/2957753002
Cr-Commit-Position: refs/heads/master@{#18811}
2017-06-28 14:31:30 +00:00
henrika
3d0e7bb907 Improved thread checking scheme for iOS.
TBR=zeke

Bug: b/63071036
Change-Id: Iaa6325a8d360f121f82683115c73cc136e174ba6
Reviewed-on: https://chromium-review.googlesource.com/552539
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18810}
2017-06-28 14:20:30 +00:00
Danil Chapovalov
1330166bc0 Add value_type alias to rtc::Buffer
It allows to use rtc::Buffer in templates that expect std container,
e.g. it can now be used as ::testing::ElementsAreArray parameter

Bug: None
Change-Id: I97d7ffb13393d02850ddb213f7a1d01129b10b05
Reviewed-on: https://chromium-review.googlesource.com/539635
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18809}
2017-06-28 13:59:40 +00:00
terelius
c8e0552c07 Limit the number of simultaneous event logs.
BUG=webrtc:7887

Review-Url: https://codereview.webrtc.org/2956003003
Cr-Commit-Position: refs/heads/master@{#18808}
2017-06-28 13:40:51 +00:00
ilnik
3635f44f3e Workaround for hardware encoders crashing timing frames processing
BUG=webrtc:7893

Review-Url: https://codereview.webrtc.org/2961043002
Cr-Commit-Position: refs/heads/master@{#18806}
2017-06-28 10:53:19 +00:00
jbauch
03fa534fcc Support getting external HMAC auth context with libsrtp 2.1.0.
This is in preparation of upgrading to libsrtp 2.1.0.

BUG=webrtc:7856

Review-Url: https://codereview.webrtc.org/2958123002
Cr-Commit-Position: refs/heads/master@{#18805}
2017-06-28 10:35:57 +00:00
solenberg
db3c9b0f72 Expose ILBC codec in webrtc/api/audio_codecs/
BUG=webrtc:7834, webrtc:7840

Review-Url: https://codereview.webrtc.org/2951873002
Cr-Commit-Position: refs/heads/master@{#18803}
2017-06-28 09:05:04 +00:00
Sami Kalliomäki
372e587ea8 Fix samplingMatrix for I420Frames converted from VideoFrame.
The conversion code was wrong because it assumed the 3x3 matrix is a
XYZ-matrix when it really is XYW-matrix. We have to override the matrix
for I420 frames to flip the vertically before rendering.

R=magjed@webrtc.org

Bug: webrtc:7760
Change-Id: I1f08c1a929bf5721706e2a902701100cf7a9c31d
Reviewed-on: https://chromium-review.googlesource.com/541346
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18801}
2017-06-28 07:58:42 +00:00
Sami Kalliomäki
3aa3ea7913 Improve HardwareVideoDecoder stability.
Adds a timeout to the dequeue input buffer call. This improves stability
because WebRTC quickly queues frames multiple when the call starts. This
might cause the decoder to run out of input buffers. Waiting for
dequeueOutputBuffers call is no longer necessary.

Bug: webrtc:7760
Change-Id: I503ff1cf44042c4d8610077090148d9dfef169f5
Reviewed-on: https://chromium-review.googlesource.com/548357
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18800}
2017-06-28 07:38:22 +00:00
zijiehe
3dd574ad31 Ensure Dxgi duplicator works correctly in session 0
A recent update of Windows 10 blocks IDXGIAdapter::EnumOutputs() in session 0,
so ScreenCapturerWinDirectx::IsSupported() always returns false in session 0. We
should ensure ScreenCapturerWinDirectx can respond correctly in session 0.
Meanwhile, this change looses the requirement of DirectX capturer: it still
works if some of the video adapters do not support DirectX 11 or
IDXGIOutputDuplication. This issue usually happens when handling a virtual video
adapter.

BUG=webrtc:7809

Review-Url: https://codereview.webrtc.org/2937663003
Cr-Commit-Position: refs/heads/master@{#18797}
2017-06-28 05:04:21 +00:00
zhihuang
696f8ca2fa Handle the PROTO_TSL when getting the protocol priority.
This bug breaks the internal project.

TBR=deadbeef@webrtc.org, pthacher@webrtc.org
BUG=webrtc:7889

Review-Url: https://codereview.webrtc.org/2959993002
Cr-Commit-Position: refs/heads/master@{#18792}
2017-06-27 22:11:24 +00:00
Henrik Kjellander
a7d0df7ac1 Enable libjingle_peerconnection_datachannelonly_so target.
This change also wires up the rest of the production code in
webrtc/sdk/android to be built when the directory is a dependency.

BUG=webrtc:7613
NOTRY=True

Change-Id: Ideda181970a5a570c3f8148b033e471e926243d1
Reviewed-on: https://chromium-review.googlesource.com/548038
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18791}
2017-06-27 20:20:05 +00:00
henrika
323197ab0c Attempt to reduce AUDIO_RECORD_START_STATE_MISMATCH error rate on Android.
Bug: b/63010674
Change-Id: I75ab10d43c13622084f5819bef7fbe2185f40b20
Reviewed-on: https://chromium-review.googlesource.com/549363
Commit-Queue: Alex Glaznev <glaznev@chromium.org>
Reviewed-by: Alex Glaznev <glaznev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#18788}
2017-06-27 15:58:43 +00:00
Sami Kalliomäki
471f63559f Allow passing in decoder factory to PeerConnectionFactory.
Bug: webrtc:7760
Change-Id: I8509de8f0170f1f60f917992b5806b926a8bb392
Reviewed-on: https://chromium-review.googlesource.com/535561
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18787}
2017-06-27 15:31:13 +00:00
deadbeef
8179a7cf97 Fixing bad use of std::sort in test method.
It was used to force a codec to the top of a list, but it resulted in
"a < a" being true, which some C++ runtimes complain about.

BUG=None
TBR=pthatcher@webrtc.org

Review-Url: https://codereview.webrtc.org/2963543002
Cr-Commit-Position: refs/heads/master@{#18786}
2017-06-27 14:52:50 +00:00
terelius
376473054c Only use 95% of the link capacity if the true link capacity is found by probing.
Dont do a normal AimdRateControlUpdate update after a probe. Only set result.updated if the bitrate estimate has changed.

BUG=webrtc:7866

Review-Url: https://codereview.webrtc.org/2949203002
Cr-Commit-Position: refs/heads/master@{#18785}
2017-06-27 14:50:31 +00:00
Per Åhgren
4bdced5d93 Corrected the initialization of the AEC3
This CL corrects the initialization of the AEC3, as well 
as for the other submodules in the whole audio processing module
in the sense that it properly update the submodule states also
for the case when reinitialization is trigger from the render
side of the audio processing module.

Bug: chromium:736889,webrtc:7879
Change-Id: I423e963835d0c3227caa8e186b29031bcb912515
Reviewed-on: https://chromium-review.googlesource.com/549315
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18784}
2017-06-27 14:43:03 +00:00
ilnik
267041c470 Fix deadlock in webrtc_perf_tests
Reenable hanging tests on Mac.

Deadlock happened because the following locks were grabbed by two threads at the end of a test:
Thread 1:
CapturedFrameForwarder::AddOrUpdateSink() locks CapturedFrameForwarder::crit_ and calls
FrameGeneratorCapturer::AddOrUpdateSink() what tries to lock FrameGeneratorCapturer::lock_.

Thread 2:
FrameGeneratorCapturer::InsertFrame() locks FrameGeneratorCapturer::lock_ and calls
CapturedFrameForwarder::OnFrame() which tries to lock CapturedFrameForwarder::crit_.

So two threads are locking two same locks in different orders which may cause deadlock.

BUG=webrtc:7870

Review-Url: https://codereview.webrtc.org/2955083002
Cr-Commit-Position: refs/heads/master@{#18783}
2017-06-27 14:21:01 +00:00
sprang
4847ae6b51 Reland of Periodically update codec bit/frame rate settings.
Patch set 1 is a reland + trivial rebase.
Patch set >= 2 contains bug fixes.

> Original issue's description:
> > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> >
> > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > * Fix test
> >
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2883963002
> > Cr-Commit-Position: refs/heads/master@{#18473}
> > Committed: 6431e21da6

BUG=webrtc:7664

Review-Url: https://codereview.webrtc.org/2953053002
Cr-Commit-Position: refs/heads/master@{#18782}
2017-06-27 14:06:52 +00:00
Per Åhgren
f0a6fb19c6 Corrected the computation of the headroom in the AEC3 buffer alignment
This CL corrects the computation of the delay headroom so that
it is only updated when the delay is updated. This is important
as otherwise a too large headroom will be reported, which then
could cause buffer access issues.

Bug: webrtc:7878, chromium:736893
Change-Id: Ib37cb608b064dd5d4df3f8fc423448ee80ed0106
Reviewed-on: https://chromium-review.googlesource.com/549335
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18781}
2017-06-27 11:42:37 +00:00
Kári Tristan Helgason
17c11ec37c Fix building RTCCameraVideoCapturereTests with iOS 11 SDK.
The iOS 11 SDK adds nullability annotations to several framework functions
and in this it added the _Nonnull specifier to a protocol method that
we implement. We were passing nil to that method in a test.
The warning is now fixed by passing a mock object instead of nil.

Bug: webrtc:7883
Change-Id: I9f64b0c59750629ca3969400aa725729bb10541b
Reviewed-on: https://chromium-review.googlesource.com/549927
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18780}
2017-06-27 11:01:47 +00:00
Anders Carlsson
121ea329ba Notify delegates about audio glitches in real time
Bug: webrtc:7819
Change-Id: I72ec77d216ce386dd45aef68eeac833b3a75b670
Reviewed-on: https://chromium-review.googlesource.com/543239
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18778}
2017-06-27 09:43:27 +00:00