8673 Commits

Author SHA1 Message Date
brandtr
d90fa0be29 Unit test for media packet reordering in ForwardErrorCorrection.
This CL expands the test coverage by checking that the FEC can
handle reordered received media packets. Specifically, this checks
that |recovered_packets| is kept in sorted order.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2101253002
Cr-Commit-Position: refs/heads/master@{#13693}
2016-08-09 13:57:18 +00:00
aleloi
e5106e75da Removed target rtp_to_text. The code does not even run.
NOTRY=True

BUG=webrtc:6162, webrtc:2692

Review-Url: https://codereview.webrtc.org/2199803002
Cr-Commit-Position: refs/heads/master@{#13692}
2016-08-09 13:56:16 +00:00
brandtr
3e2d6ac0c0 Updated comments and renaming of variables in ForwardErrorCorrection.
This CL should have no changes to functionality.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2107703002
Cr-Commit-Position: refs/heads/master@{#13690}
2016-08-09 10:29:57 +00:00
ehmaldonado
09abaa0c7d Add Linux bots to mb_config.pyl.
BUG=589510
NOTRY=True

Review-Url: https://codereview.webrtc.org/2223893002
Cr-Commit-Position: refs/heads/master@{#13689}
2016-08-09 09:26:20 +00:00
sakal
5d4d59c069 Remove LooperExecutor and replace it with built-in HandlerThread.
Review-Url: https://codereview.webrtc.org/2206473003
Cr-Commit-Position: refs/heads/master@{#13688}
2016-08-09 09:03:41 +00:00
brandtr
35c480cf18 Use std::unique_ptr in ForwardErrorCorrection.
This CL converts the ForwardErrorCorrection class to use std::unique_ptr
for memory management, rather than manually delete'ing allocated memory.

It further renames some data structures and types to distinguish between
generated FEC packets (i.e. coming from the encode operation) and
received FEC packets (i.e. coming in over the wire, intended for the
decode operation).

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2099243003
Cr-Commit-Position: refs/heads/master@{#13687}
2016-08-09 08:23:35 +00:00
zijiehe
2d618de25a [Chromoting] Improve DirectX capturer to support multiple outputs
Current DirectX capturer cannot capture multiple video cards or monitors. But
according to DXGI desktop duplication sample (https://goo.gl/An0L9l), we can
capture multiple video cards and monitors by duplicating them one by one. So
instead of one IDXGIOutputDuplication instance, this change creates an
IDXGIOutputDuplication instance for each monitor, and merge the output into
one DesktopFrame.
Several other changes are also included,
1. Add supports to DXGI_OUTDUPL_DESC.DesktopImageInSystemMemory. When this flag
is true, we won't copy its content to staging buffer.
2. Capture one monitor instead of entire screen.

Above changes make the logic complex. But with some refactor work, the logic is
not disordered. Please refer to the doc @ https://goo.gl/hU1ifG.

BUG=314516

Review-Url: https://codereview.webrtc.org/2099123002
Cr-Commit-Position: refs/heads/master@{#13684}
2016-08-09 00:50:28 +00:00
jbauch
e3eff7c062 Check that table evenly divides 256 when generating random string.
This prevents biased modulo arithmetic when selecting a character for a
random value from the provided table.

BUG=webrtc:5870

Review-Url: https://codereview.webrtc.org/2115793003
Cr-Commit-Position: refs/heads/master@{#13683}
2016-08-09 00:13:44 +00:00
jbauch
912f46a348 Don't silently ignore RNG failures when creating strings / numbers.
RTC_CHECK in functions that return the random value.

BUG=webrtc:6072

Review-Url: https://codereview.webrtc.org/2119003002
Cr-Commit-Position: refs/heads/master@{#13682}
2016-08-08 23:33:14 +00:00
jbauch
d3b953db30 Remove NSS SecureRandomGenerator.
All platforms should be using OpenSSL/BoringSSL.

BUG=

Review-Url: https://codereview.webrtc.org/2115123002
Cr-Commit-Position: refs/heads/master@{#13681}
2016-08-08 23:23:00 +00:00
tkchin
6a450105cd Adjust H264 QP thresholds.
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2228683002
Cr-Commit-Position: refs/heads/master@{#13680}
2016-08-08 22:27:41 +00:00
Alex Glaznev
0060c56b22 Catch exceptions thrown by getCodecInfoAt() and getCapabilitiesForType().
BUG=b/30715199
R=jiayl@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#13678}
2016-08-08 19:27:37 +00:00
aleloi
df9e4d9fce Added new mixer folder to CPPLINT_DIRS. Fixed one small issue.
NOTRY=True

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

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

NOTRY=True

Review-Url: https://codereview.webrtc.org/2221443002
Cr-Commit-Position: refs/heads/master@{#13674}
2016-08-08 17:19:03 +00:00
kthelgason
0727f15186 Create gn target for peerconnection examples
BUG=

Review-Url: https://codereview.webrtc.org/2218053002
Cr-Commit-Position: refs/heads/master@{#13673}
2016-08-08 16:03:27 +00:00
brandtr
03bc3cfb3e GN target for test_packet_masks_metrics.
NOTRY=True
BUG=webrtc:6193

Review-Url: https://codereview.webrtc.org/2229473002
Cr-Commit-Position: refs/heads/master@{#13672}
2016-08-08 15:09:00 +00:00
ehmaldonado
d046d985f9 Cleaning up mb_config.pyl style.
BUG=589510
NOTRY=True

Review-Url: https://codereview.webrtc.org/2222853003
Cr-Commit-Position: refs/heads/master@{#13671}
2016-08-08 13:59:24 +00:00
sakal
f4433ef14e Add argument support for stand-alone WebRTC tracing.
BUG=webrtc:6186

Review-Url: https://codereview.webrtc.org/2215153003
Cr-Commit-Position: refs/heads/master@{#13670}
2016-08-08 11:10:17 +00:00
tkchin
04dbb34d51 iOS: Add support for rendering native CVPixelBuffers directly
This CL adds support in RTCEAGLVideoView for rendering CVPixelBuffers as
OpenGL ES textures directly, compared to the current code that first
converts the CVPixelBuffers to I420, and then reuploads them as
textures. This is only supported on iOS with the use of a
CVOpenGLESTextureCache.

The I420 rendering and native rendering are separated in two different
implementations of a simple shader interface:
@protocol Shader
- (BOOL)drawFrame:(RTCVideoFrame*)frame;
@end
GL resources are allocated when the shader is instantiated and released
when the shader is destroyed. RTCEAGLVideoView will lazily instantiate
the necessary shader when it receives the first frame of that kind. This
is primarily done to avoid allocating GL resources for both I420 and
native rendering.

Some other changes are:
 - Print GL shader compilation errors.
 - Remove updateTextureSizesForFrame() function. The textures will
   resize automatically anyway when the texture data is uploaded with
   glTexImage2D().

patch from issue 2154243002 at patchset 140001 (http://crrev.com/2154243002#ps140001)
Continuing magjed@'s work since he is OOO this week.

BUG=

Review-Url: https://codereview.webrtc.org/2202823004
Cr-Commit-Position: refs/heads/master@{#13668}
2016-08-08 10:10:12 +00:00
peah
c3ec1fd23c Adding GN targets for audioproc, audioproc_f and unpack_aecdump
BUG=webrtc:6171
NOTRY=True

Review-Url: https://codereview.webrtc.org/2222643002
Cr-Commit-Position: refs/heads/master@{#13667}
2016-08-08 06:19:35 +00:00
tkchin
2ddfdba989 GN: Add targets for AppRTCDemo on Mac+iOS
BUG=webrtc:6022
NOTRY=True

Review-Url: https://codereview.webrtc.org/2211413003
Cr-Commit-Position: refs/heads/master@{#13666}
2016-08-08 04:37:56 +00:00
zhihuang
9763d56464 Modified PeerConnection and WebRtcSession for end-to-end QuicDataChannel usage.
To allow end-to-end QuicDataChannel usage with a
PeerConnection, RTCConfiguration has been modified to
include a boolean for whether to do QUIC, since negotiation of
QUIC is not implemented. If one peer does QUIC, then it will be
assumed that the other peer must do QUIC or the connection
will fail.

PeerConnection has been modified to create data channels of type
QuicDataChannel when the peer wants to do QUIC.

WebRtcSession has ben modified to use a QuicDataTransport
instead of a DtlsTransportChannelWrapper/DataChannel
when QUIC should be used

QuicDataTransport implements the generic functions of
BaseChannel to manage the QuicTransportChannel.

Committed: https://crrev.com/34b54c36a533dadb6ceb70795119194e6f530ef5
Review-Url: https://codereview.webrtc.org/2166873002
Cr-Original-Commit-Position: refs/heads/master@{#13645}
Cr-Commit-Position: refs/heads/master@{#13657}
2016-08-05 18:14:54 +00:00
johan
3859c89b2e Add decoder-specific settings with proper lifetime.
Utilize these settings for h264 sprop-parameter-sets.

BUG=webrtc:5948

Review-Url: https://codereview.webrtc.org/2185953002
Cr-Commit-Position: refs/heads/master@{#13656}
2016-08-05 16:19:33 +00:00
mflodman
4cd2790f17 Move RTP for synchroninzation and rename classes, files and variables.
This CL removes (almost) the last RTP references in VideoReceiveStream.
There are still references to RTPFragmentationHeader and SSRCs, which
will be dealt with later.

There are also new GUARDED_BY and thred checker added to the
synchronization class.

When there are othre transports than RTP, there will instead be an
interface + inheritance for RtpStreamReceiver and
RtpStreamSynchronizattion in VideoReceiveStream. This work will be done
when we actually know how we want to make thee transport interface.

BUG=webrtc:5838

Review-Url: https://codereview.webrtc.org/2216533002
Cr-Commit-Position: refs/heads/master@{#13655}
2016-08-05 13:28:50 +00:00
danilchap
b7b9dca4e4 Reland Enable socketservers unittests on windows.
Original CL: https://codereview.webrtc.org/2199193004/
Revert CL: https://codereview.webrtc.org/2209333002/

NOTRY=true
BUG=webrtc:6167,webrtc:6178

Review-Url: https://codereview.webrtc.org/2218853002
Cr-Commit-Position: refs/heads/master@{#13654}
2016-08-05 12:55:49 +00:00
danilchap
262e486128 TMMBRHelp::FindBoundingSet function cleaned
it become static to clearly state input, output and temporary variables
style updated with minor improvments to actual algorithm.

Review-Url: https://codereview.webrtc.org/1989363006
Cr-Commit-Position: refs/heads/master@{#13652}
2016-08-05 10:37:43 +00:00
tkchin
33f00e1272 Fix case-sensitive build system errors.
This is https://codereview.webrtc.org/2141093002/, just wanted to get it in.

NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2214113002
Cr-Commit-Position: refs/heads/master@{#13649}
2016-08-04 19:46:51 +00:00
deadbeef
907abe4411 Revert of Modified PeerConnection and WebRtcSession for end-to-end QuicDataChannel usage. (patchset #8 id:280001 of https://codereview.webrtc.org/2166873002/ )
Reason for revert:
Reverting because it broke an RTP data channel test on the FYI bots.

Original issue's description:
> Modified PeerConnection and WebRtcSession for end-to-end QuicDataChannel usage.
>
> To allow end-to-end QuicDataChannel usage with a
> PeerConnection, RTCConfiguration has been modified to
> include a boolean for whether to do QUIC, since negotiation of
> QUIC is not implemented. If one peer does QUIC, then it will be
> assumed that the other peer must do QUIC or the connection
> will fail.
>
> PeerConnection has been modified to create data channels of type
> QuicDataChannel when the peer wants to do QUIC.
>
> WebRtcSession has ben modified to use a QuicDataTransport
> instead of a DtlsTransportChannelWrapper/DataChannel
> when QUIC should be used
>
> QuicDataTransport implements the generic functions of
> BaseChannel to manage the QuicTransportChannel.
>
> Committed: https://crrev.com/34b54c36a533dadb6ceb70795119194e6f530ef5
> Cr-Commit-Position: refs/heads/master@{#13645}

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

Review-Url: https://codereview.webrtc.org/2206793007
Cr-Commit-Position: refs/heads/master@{#13647}
2016-08-04 19:22:22 +00:00
zhihuang
34b54c36a5 Modified PeerConnection and WebRtcSession for end-to-end QuicDataChannel usage.
To allow end-to-end QuicDataChannel usage with a
PeerConnection, RTCConfiguration has been modified to
include a boolean for whether to do QUIC, since negotiation of
QUIC is not implemented. If one peer does QUIC, then it will be
assumed that the other peer must do QUIC or the connection
will fail.

PeerConnection has been modified to create data channels of type
QuicDataChannel when the peer wants to do QUIC.

WebRtcSession has ben modified to use a QuicDataTransport
instead of a DtlsTransportChannelWrapper/DataChannel
when QUIC should be used

QuicDataTransport implements the generic functions of
BaseChannel to manage the QuicTransportChannel.

Review-Url: https://codereview.webrtc.org/2166873002
Cr-Commit-Position: refs/heads/master@{#13645}
2016-08-04 18:06:58 +00:00
terelius
f736d2365d Add fraction loss in visualization tool.
Review-Url: https://codereview.webrtc.org/2204713005
Cr-Commit-Position: refs/heads/master@{#13644}
2016-08-04 17:00:19 +00:00
sprang
ddba75c7cb Remove rtt limit on retransmission rate limiter
After offline discussion, this was mostly of historical use and may
actually be more of a risk now that we have the paced sender.

BUG=

Review-Url: https://codereview.webrtc.org/2198933004
Cr-Commit-Position: refs/heads/master@{#13643}
2016-08-04 16:52:46 +00:00
ehmaldonado
9f1771b729 Revert of Enable socketservers unittests on windows (patchset #7 id:260001 of https://codereview.webrtc.org/2199193004/ )
Reason for revert:
Win64 Debug seems to be broken because of this CL.

https://build.chromium.org/p/client.webrtc/builders/Win64%20Debug

The Win32SocketTest.TestGetSetOptionsIPv4 test is failing with

[ RUN      ] Win32SocketTest.TestGetSetOptionsIPv4
(win32socketserver.cc:299): GetRemoteAddress: unable to get remote addr, socket=672
(winping.cc:262): IcmpSendEcho(, 65507): 0

Full logs at

https://build.chromium.org/p/client.webrtc/builders/Win64%20Debug/builds/8444/steps/webrtc_nonparallel_tests/logs/stdio

I filed a bug at https://bugs.chromium.org/p/webrtc/issues/detail?id=6178

Original issue's description:
> Enable socketservers unittests on windows.
> failing tests disabling moved to ifdefs within the test files from build files.
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/e51e11910faddb00921a8bb274f0d9374d55011f
> Cr-Commit-Position: refs/heads/master@{#13623}

TBR=tommi@webrtc.org,danilchap@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review-Url: https://codereview.webrtc.org/2209333002
Cr-Commit-Position: refs/heads/master@{#13642}
2016-08-04 16:18:18 +00:00
sakal
06bfe1f879 Reland of GN: Create target for video_capture_tests on Linux. (patchset #1 id:1 of https://codereview.webrtc.org/2217463002/ )
Reason for revert:
Fix issue.

Original issue's description:
> Revert of GN: Create target for video_capture_tests on Linux. (patchset #2 id:20001 of https://codereview.webrtc.org/2207463004/ )
>
> Reason for revert:
> Breaks bots.
> See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder%20%28dbg%29/builds/15490
>
> Original issue's description:
> > GN: Create target for video_capture_tests on Linux.
> >
> > BUG=webrtc:6042
> >
> > Committed: https://crrev.com/171c7fef0a8b7a1598ac87e0349e210372cb974c
> > Cr-Commit-Position: refs/heads/master@{#13638}
>
> TBR=mflodman@webrtc.org,sakal@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6042
>
> Committed: https://crrev.com/41bce13482464741e916190b4e5ec3c628f606dd
> Cr-Commit-Position: refs/heads/master@{#13640}

TBR=mflodman@webrtc.org,guidou@webrtc.org
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2211013002
Cr-Commit-Position: refs/heads/master@{#13641}
2016-08-04 14:54:08 +00:00
guidou
41bce13482 Revert of GN: Create target for video_capture_tests on Linux. (patchset #2 id:20001 of https://codereview.webrtc.org/2207463004/ )
Reason for revert:
Breaks bots.
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Builder%20%28dbg%29/builds/15490

Original issue's description:
> GN: Create target for video_capture_tests on Linux.
>
> BUG=webrtc:6042
>
> Committed: https://crrev.com/171c7fef0a8b7a1598ac87e0349e210372cb974c
> Cr-Commit-Position: refs/heads/master@{#13638}

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

Review-Url: https://codereview.webrtc.org/2217463002
Cr-Commit-Position: refs/heads/master@{#13640}
2016-08-04 13:48:22 +00:00
stefan
db7543809e Tune BWE to be more sensitive on low capacity networks.
Also lowering the min bitrate for simulations to be able to better capture this issue in the BweFeedbackTest.Choke200kbps30kbps200kbps performance test.

BUG=webrtc:6105
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.webrtc.org/2201093006
Cr-Commit-Position: refs/heads/master@{#13639}
2016-08-04 13:42:14 +00:00
sakal
171c7fef0a GN: Create target for video_capture_tests on Linux.
BUG=webrtc:6042

Review-Url: https://codereview.webrtc.org/2207463004
Cr-Commit-Position: refs/heads/master@{#13638}
2016-08-04 13:29:31 +00:00
aleloi
84ef615a5d Removed calls to VoE::SetPlayout() from WebRTCVoiceEngine.
This is part of rewriting the ConferenceMixer and OutputMixer.

Calls are instead routed through AudioReceiveStream::Start/Stop.

NOTRY=True

Review-Url: https://codereview.webrtc.org/2206223002
Cr-Commit-Position: refs/heads/master@{#13636}
2016-08-04 12:28:28 +00:00
jbauch
cb56065c62 Add support for GCM cipher suites from RFC 7714.
GCM cipher suites are optional (disabled by default) and can be enabled
through "PeerConnectionFactoryInterface::Options".

If compiled with Chromium (i.e. "ENABLE_EXTERNAL_AUTH" is defined), no
GCM ciphers can be used yet (see https://crbug.com/628400).

BUG=webrtc:5222, 628400

Review-Url: https://codereview.webrtc.org/1528843005
Cr-Commit-Position: refs/heads/master@{#13635}
2016-08-04 12:20:38 +00:00
charujain
604fc114fb Creating GN version of xmllite_xmpp_unittests
NOTRY=True

BUG=webrtc:6043

Review-Url: https://codereview.webrtc.org/2184043002
Cr-Commit-Position: refs/heads/master@{#13633}
2016-08-04 08:16:47 +00:00
Honghai Zhang
8cd8f81748 Prepare for ICE renomination.
Add an ICE nomination attribute. If a connection switched on the controlling side, increase the nomination value set in the attribute.
The controlled side will also be ready for re-nomination option; it will switch if a nomination comes with a higher nomination value even though it may be at a lower priority.
Plus, don't nominate or re-nominate if the nomination value at the current connection has been acknowledged.

BUG=
R=deadbeef@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13631}
2016-08-04 02:50:53 +00:00
tkchin
6ce738da31 Disable encoder scaling on iPhone4S.
Scaling causes us to work the CPU too much, which very quickly degrades quality. This causes us to at least behave better on good networks.

NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2205763002
Cr-Commit-Position: refs/heads/master@{#13630}
2016-08-03 19:57:18 +00:00
tkchin
9dfa249796 Use 352x288 for iPhone 4S.
NOTRY=True
BUG=

Review-Url: https://codereview.webrtc.org/2206773002
Cr-Commit-Position: refs/heads/master@{#13629}
2016-08-03 18:39:09 +00:00
ehmaldonado
f98dc105ba GN: Add target for modules_tests.
Additional changes I needed to make it work:

- Modified a header in RTPFile.cc. Every other file is
  using "webrtc/engine_configurations.h" instead.

- Disabled flag 4373 for msvs because it was disabled
  in build/common.gypi.

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

Review-Url: https://codereview.webrtc.org/2187563005
Cr-Commit-Position: refs/heads/master@{#13628}
2016-08-03 17:46:51 +00:00
Danil Chapovalov
31e4e806b1 RtpPacketHistory rewritten to use RtpPacket class.
RtpSender updated to use new version of RtpPacketHistory.

BUG=webrtc:5261
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13626}
2016-08-03 16:27:50 +00:00
mflodman
997684079e Remove a few meaningless TODOs
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13624}
2016-08-03 13:38:20 +00:00
Danil Chapovalov
e51e11910f Enable socketservers unittests on windows.
failing tests disabling moved to ifdefs within the test files from build files.

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13623}
2016-08-03 13:14:48 +00:00
Danil Chapovalov
837a1707ae Remove faulty DCHECK in rtcp::TransportFeedback::ParseFrom
BUG=chromium:632585
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13622}
2016-08-03 11:40:12 +00:00
philipel
4f6cd6ac59 Wire up VCMTiming in FrameBuffer2.
The VCMTiming class is now used to set the render time for frames.

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

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

Cr-Commit-Position: refs/heads/master@{#13621}
2016-08-03 08:59:47 +00:00