Commit Graph

8673 Commits

Author SHA1 Message Date
8e85a3f39a iOS buildbot configurations.
This will make it possible for WebRTC to use the same buildbot
scripts as Chrome's iOS bots.
Buildbot changes are done in https://codereview.chromium.org/1659163003/

BUG=chromium:498746
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11468}
2016-02-03 08:06:06 +00:00
2ab815779c Remove implicit downcast in producer_fec_fuzzer.cc.
Speculative fix for DrFuzz.

BUG=
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11465}
2016-02-02 21:31:11 +00:00
c3a0983d4b Roll chromium_revision a8e5140..c6076f2 (372922:372974) incl. update to Opus v.1.1.2
Includes updates to tests for Opus v.1.1.2, reveiwed in
https://codereview.webrtc.org/1629413002/

Change log: a8e5140..c6076f2
Full diff: a8e5140..c6076f2

Changed dependencies:
* src/third_party/catapult: 471db30..d4d48e6
* src/third_party/opus/src: cae6961..655cc54
DEPS diff: a8e5140..c6076f2/DEPS

No update to Clang.

BUG=chromium:580524
TBR=

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

Cr-Commit-Position: refs/heads/master@{#11464}
2016-02-02 21:18:42 +00:00
a7ad7c3ca0 Get the adapter type information from Android OS.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11463}
2016-02-02 20:54:28 +00:00
ae695e95a6 Refactor RtpSender and SSRCDatabase.
* SSRCDatabase doesn't need to be a global instance, so I've changed it to be a "regular" class (i.e. construct via ctor, not maybe via GetSSRCDatabase( + release via ReturnSSRCDatabase())).  If we ever have parallel tests running in the same process, they won't have the problem of using the same ssrc database.

* Made RtpSender a more const.  Also added some todos for myself and holmer to look into clarifying the threading model.

* Switched from CriticalSectionWrapper to rtc::CriticalSection

* Changed the random seeding to use TickTime::Now().Ticks() since TimeInMicroseconds() could return 0 when the process was starting.  This is what TimeInMicroseconds() does anyway but now we don't need to access a global clock object.

BUG=webrtc:3062

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

Cr-Commit-Position: refs/heads/master@{#11462}
2016-02-02 16:34:16 +00:00
040b79ff7e Add helper macros for calling a histogram with different names.
To be used when a metric is used in different modes such as real-time vs screenshare (will be done in https://codereview.webrtc.org/1564923008/).

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11461}
2016-02-02 15:13:16 +00:00
ed3277bf14 Deprecate VideoDecoder::Reset() and remove calls.
Removes calls to decoder reset and instead drops delta frames and
requests keyframes until one arrives.

BUG=webrtc:5475
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11460}
2016-02-02 14:40:13 +00:00
c5a39c2591 H264: Thread-safe InitializeFFmpeg. Flag to control if InitializeFFmpeg should be called.
New flag: rtc_initialize_ffmpeg, default value = !build_with_chromium.

In WebRTC standalone we initialize FFmpeg by default, in Chromium we don't by default.
Chromium is an external project that also use FFmpeg. If both projects do FFmpeg initialization code things will break. The flag makes it possible for other external projects than chromium to decide whether or not WebRTC should initialize FFmpeg.

BUG=chromium:500605, chromium:468365, webrtc:5427

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

Cr-Commit-Position: refs/heads/master@{#11456}
2016-02-02 10:30:57 +00:00
799379e8c2 Let a minimum time interval pass (one bucket size) after initialization before reporting rates (to avoid rates being based on too short time intervals).
BUG=chromium:570038

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

Cr-Commit-Position: refs/heads/master@{#11455}
2016-02-02 09:47:05 +00:00
c463e20069 Reset TURN port NONCE when a new socket is created.
For example, when the TURN port has an ALLOCATE_MISMATCH error.

BUG=webrtc:5432

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

Cr-Commit-Position: refs/heads/master@{#11453}
2016-02-01 23:19:24 +00:00
6f7557e9e2 Disable useless BWE tests.
TBR=kjellander@webrtc.org
BUG=webrtc:5468

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

Cr-Commit-Position: refs/heads/master@{#11449}
2016-02-01 18:24:23 +00:00
e37a2d1802 Reland "Removing webrtc::AudioFrame::energy_."
Some WebRTC client had a problem with the change "Removing webrtc::AudioFrame::energy_". Now it is solved.

This reverts commit 2bdcfadc8abd418a30dd5cdf54ba45a429d3d9bf.

BUG=webrtc:3315

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

Cr-Commit-Position: refs/heads/master@{#11448}
2016-02-01 18:02:45 +00:00
d8de1154c9 Remove mutable from rtc::CriticalSections.
A couple of mutables were added after last removal of mutables, so
removing those. rtc::CriticalSection is const-lockable.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11447}
2016-02-01 17:00:59 +00:00
34877eeec9 Revert of Added validation between RTP and RTCP timestamps (patchset #7 id:120001 of https://codereview.webrtc.org/1633843003/ )
Reason for revert:
May be the reason for mac_asan timeout

Original issue's description:
> Changed test to validate rtp timstamps not just in RTP packets but also in RTCP Sender Reports.
> Altered it to accept negative value since it is normal for RTCP packet coming before RTP packet to have slightly later time.
>
> BUG=webrtc:5433
>
> Committed: https://crrev.com/f4b9c775122b463db7eb2c4101603759a0d00caf
> Cr-Commit-Position: refs/heads/master@{#11417}

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

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

Cr-Commit-Position: refs/heads/master@{#11446}
2016-02-01 16:25:08 +00:00
74451a5ea9 Prevent zero division in VCMJitterEstimator.
BUG=webrtc:5124
R=sprang@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11445}
2016-02-01 15:31:17 +00:00
bba9dec4d5 Use separate rtp module lists for send and receive in PacketRouter.
This makes it possible to handle send and receive streams with the same SSRC, which is currently the case in some peer connection tests.

Also moves sending transport feedback to the pacer thread.

BUG=webrtc:5263

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

Cr-Commit-Position: refs/heads/master@{#11443}
2016-02-01 12:40:04 +00:00
1f611fa58b Fixed minor issue: added missing semicolons to metric_recorder.cc
Review URL: https://codereview.webrtc.org/1649353002

Cr-Commit-Position: refs/heads/master@{#11442}
2016-02-01 11:09:19 +00:00
e1f2f1fbb8 Unwrap timestamps in VideoAnalyzer
We have seen an instance of flakiness of the perf tests where it looked
like timestamp wraparound could be an issue. Better safe...

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11440}
2016-02-01 10:05:00 +00:00
44efbece68 Converting picture_id to bitstring pushed from WithPictureId to Create function.
Added Parse and accessor functions.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11439}
2016-02-01 09:36:44 +00:00
3f70562bbb Fix WebRtc ninja x86 build using Visual Studio 2015 (set GYP_MSVS_VERSION=2015).
Visual Studio 2015 balks at the implicit truncation of values. Easily fixed with an explicit cast.

Fixed redefinition of CLOCKS_PER_SEC when using Visual Studio 2015 and the Windows 10 SDK. CLOCKS_PER_SEC is also defined in "<WIN10 SDK DIR>\include\10.0.10240.0\ucrt\time.h" and also has the value of 1000

Hiding snprintf definition if building with Visual Studio 2015

Fixed C4573 compiler complaint in audio_processing_impl_locking_unittest.cc.

BUG=webrtc:5183

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

Cr-Commit-Position: refs/heads/master@{#11434}
2016-01-30 22:40:52 +00:00
9dfed79f3f Stop processing any incoming packets when turn port is disconnected.
If it still handle packets, when a ping arrives, it will pass the packet to p2ptransportchannel, eventually causing an ASSERT error there (when p2ptransportchannel tries to create a connection from the ping request from unknown address).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11430}
2016-01-29 21:22:36 +00:00
de13882d94 rtcp::ExtenededReports packet class got Parse function
BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11428}
2016-01-29 19:26:20 +00:00
ff63ed2888 Format changes achieved by running
clang-format -i -style=Chromium

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11427}
2016-01-29 15:46:18 +00:00
f5b804bb9c Fix implicit bool casts in producer_fec_fuzzer.cc.
Fixes DrFuzz breakage on Windows.

BUG=webrtc:5473
TBR=zhaoqin@google.com

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

Cr-Commit-Position: refs/heads/master@{#11426}
2016-01-29 15:26:52 +00:00
5e8351b325 Prevent division-by-zero in VCMFecMethod.
Clamps frameRate to at least 1.0 to prevent a zero division.

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

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

Cr-Commit-Position: refs/heads/master@{#11421}
2016-01-28 22:55:45 +00:00
46eed76207 Removing "candidates" attribute from TransportDescription.
It's never used anywhere, so it only causes confusion between
itself and SessionDescriptionInterface::candidates.

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

Cr-Commit-Position: refs/heads/master@{#11420}
2016-01-28 21:24:45 +00:00
fb152707ed Replace const-reference with pointer in SendData.
This argument is never used as a reference and the pointer that's bound
to the const reference may be nullptr. This is undefined behavior and
barks under UBSan.

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

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

Cr-Commit-Position: refs/heads/master@{#11418}
2016-01-28 18:12:09 +00:00
f4b9c77512 Changed test to validate rtp timstamps not just in RTP packets but also in RTCP Sender Reports.
Altered it to accept negative value since it is normal for RTCP packet coming before RTP packet to have slightly later time.

BUG=webrtc:5433

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

Cr-Commit-Position: refs/heads/master@{#11417}
2016-01-28 14:14:33 +00:00
55b97fe388 clang-format -i -style=file webrtc/voice_engine/channel.*
This CL changes literally nothing else.

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

Cr-Commit-Position: refs/heads/master@{#11416}
2016-01-28 13:22:52 +00:00
6043f2e5d6 Revert of Adding "first packet received" notification to PeerConnectionObserver. (patchset #5 id:80001 of https://codereview.webrtc.org/1581693006/ )
Reason for revert:
onFirstMediaPacketReceived() breaks bot.

Original issue's description:
> Adding "first packet received" notification to PeerConnectionObserver.
>
> R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org
>
> Committed: https://crrev.com/42265a8cc3b3f3db4aa2c29005aed2fb4393adef
> Cr-Commit-Position: refs/heads/master@{#11401}
>
> Committed: https://crrev.com/08a6eab75e13613183509d91d3892c1db57f6fc5
> Cr-Commit-Position: refs/heads/master@{#11404}

TBR=pthatcher@webrtc.org,tkchin@webrtc.org,glaznev@webrtc.org,deadbeef@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/1647483004

Cr-Commit-Position: refs/heads/master@{#11415}
2016-01-28 13:06:16 +00:00
e73afbaf17 New rtc::VideoSinkInterface.
The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.

And the list goes on, there's a dozen of different classes which act as video frame sinks.

At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.

BUG=webrtc:5426
R=perkj@webrtc.org, pthatcher@webrtc.org

Committed: https://crrev.com/a862d4563fbc26e52bed442de784094ae1dfe5ee
Cr-Commit-Position: refs/heads/master@{#11396}

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

Cr-Commit-Position: refs/heads/master@{#11414}
2016-01-28 12:47:13 +00:00
533a4e4882 Switch critical section locks out for atomic operations
BUG=chromium:581029

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

Cr-Commit-Position: refs/heads/master@{#11413}
2016-01-28 10:44:16 +00:00
ab8f82ffe0 Make ECDSA default for RTCPeerConnection
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11409}
2016-01-28 01:50:15 +00:00
691b8369ff Using buffered signal to calculate the level of echo cancellation.
The level of the error signal after linear echo cancellation was based on non-buffered signal while that of the near-end and far-end signal based on buffered signal. This discrepancy made the comparison of them unfair.

This CL is to make calculating the error level rely on the same buffering.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11408}
2016-01-27 23:44:59 +00:00
da2183c86f Update API for Objective-C RTCDataChannelConfiguration.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11405}
2016-01-27 21:42:35 +00:00
08a6eab75e Adding "first packet received" notification to PeerConnectionObserver.
R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org

Committed: https://crrev.com/42265a8cc3b3f3db4aa2c29005aed2fb4393adef
Cr-Commit-Position: refs/heads/master@{#11401}

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

Cr-Commit-Position: refs/heads/master@{#11404}
2016-01-27 21:38:57 +00:00
7b3c72ffa9 Revert of Adding "first packet received" notification to PeerConnectionObserver. (patchset #4 id:60001 of https://codereview.webrtc.org/1581693006/ )
Reason for revert:
Seems that the end-to-end unit tests are now flaky: https://build.chromium.org/p/client.webrtc/builders/Win64%20Debug/builds/6283

Will reland after fixing the test flakiness.

Original issue's description:
> Adding "first packet received" notification to PeerConnectionObserver.
>
> R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org
>
> Committed: https://crrev.com/42265a8cc3b3f3db4aa2c29005aed2fb4393adef
> Cr-Commit-Position: refs/heads/master@{#11401}

TBR=pthatcher@webrtc.org,tkchin@webrtc.org,glaznev@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/1640173004

Cr-Commit-Position: refs/heads/master@{#11402}
2016-01-27 21:03:47 +00:00
42265a8cc3 Adding "first packet received" notification to PeerConnectionObserver.
R=glaznev@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11401}
2016-01-27 20:10:44 +00:00
80f1db971d Include relay protocol type when computing the turn candidate foundation.
BUG=576353
R=deadbeef@webrtc.org, pthatcher@google.com, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11400}
2016-01-27 19:54:44 +00:00
Per
ec2922f864 Change PeerConnectionFactory.setVideoHwAccelerationOptions to create shared Egl context for harware encoders and decoders.
Before this fix, it was required that the EGL context used as an argument was kept open until all PeerConnections using the context had been closed. With this fix, that is no longer required.
Also, if a released EGLContext (EGL_NO_CONTEXT) is used, harware codecs will fallback to use byte buffers for encoding and decoding.
BUG=b/26583522
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11398}
2016-01-27 14:25:56 +00:00
2098fca39a Revert of New rtc::VideoSinkInterface. (patchset #7 id:120001 of https://codereview.webrtc.org/1594973006/ )
Reason for revert:
Broke chrome build. Investigating.

First error relating to AddSink method in mock_peer_connection_dependency_factory.h

Original issue's description:
> New rtc::VideoSinkInterface.
>
> The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.
>
> And the list goes on, there's a dozen of different classes which act as video frame sinks.
>
> At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.
>
> BUG=webrtc:5426
> R=perkj@webrtc.org, pthatcher@webrtc.org
>
> Committed: https://crrev.com/a862d4563fbc26e52bed442de784094ae1dfe5ee
> Cr-Commit-Position: refs/heads/master@{#11396}

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

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

Cr-Commit-Position: refs/heads/master@{#11397}
2016-01-27 14:12:57 +00:00
a862d4563f New rtc::VideoSinkInterface.
The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.

And the list goes on, there's a dozen of different classes which act as video frame sinks.

At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.

BUG=webrtc:5426
R=perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11396}
2016-01-27 13:41:04 +00:00
f5dca48dc0 Add transport sequence number on the non-pacer path of the rtp sender.
BUG=4173
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11395}
2016-01-27 11:59:05 +00:00
1c3909899d Use rtc::time for all your timing needs!
Initial step of unifying so that base/timeutils.h and Clock/TimeTime
from system_wrappers use the same implementation.

BUG=webrtc:5463
R=pbos@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11394}
2016-01-27 11:55:44 +00:00
d673b0fa5d [rtp_rtcp] Fix potentional time difference between rtp and rtcp packets.
SetRtpState function was updating only rtp_sender start timestamp.
Now it updates both rtp_sender and rtcp_sender start timestamps.

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

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

Cr-Commit-Position: refs/heads/master@{#11393}
2016-01-27 11:55:06 +00:00
0b518bf6fc Remove incorrect cast to AsyncSocketAdapter.
socket_ in OpenSSLAdapter should be (and is in tests) an AsyncSocket but
doesn't have to be an AsyncSocketAdapter. In tests this is
rtc::VirtualSocket which is an rtc::AsyncSocket. This also matches the
BIO_new_socket type signature.

This fixes the remaining UBSan vptr bot errors.

BUG=webrtc:5124, webrtc:5226
R=tommi@webrtc.org, torbjorng@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11391}
2016-01-27 11:35:52 +00:00
bab934bffe H.264 video codec support using OpenH264 (http://www.openh264.org/) for encoding and FFmpeg (https://www.ffmpeg.org/) for decoding.
It works on all platforms except Android and iOS (FFmpeg limitation).

Implemented behind compile time flags, off by default.
The plan is to have it enabled in Chrome (see bug), but not in Chromium/webrtc by default.

Flags to turn it on:
- rtc_use_h264 = true
- ffmpeg_branding = "Chrome" (or other brand that includes H.264 decoder)

Tests using H264:
- video_loopback --codec=H264
- screenshare_loopback --codec=H264
- video_engine_tests (EndToEndTest.SendsAndReceivesH264)

NOTRY=True
BUG=500605, 468365
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424

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

Cr-Commit-Position: refs/heads/master@{#11390}
2016-01-27 09:36:07 +00:00
fab0a2886d Fix BasicNetworkManager not to spam logs when internet is unreacheable.
BasicNetworkManager attemps to connect an UDP socket and logs an error
when connect() fails, e.g. when internet is not connected. These
errors are not very useful in the logs, but apper there every time
it attemps to refresh network list. Replaced the log statement with
LOG(LS_INFO).

R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11389}
2016-01-27 06:13:04 +00:00
6d49a8ed17 Update API for Objective-C RTCConfiguration.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11386}
2016-01-26 21:06:48 +00:00
a2c55235ca Allow packets to be reordered in the fake network pipe.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11384}
2016-01-26 16:42:00 +00:00