5439 Commits

Author SHA1 Message Date
hjon
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
Taylor Brandstetter
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
deadbeef
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
Taylor Brandstetter
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
Honghai Zhang
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
nisse
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
Niels Möller
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
Stefan Holmer
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
Erik Språng
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
Danil Chapovalov
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
Peter Boström
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
hbos
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
Sergey Ulanov
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
hjon
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
philipel
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
asapersson
7fd881743c Fix type of local encoded length variable from uint32_t to size_t.
BUG=chromium:571594

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

Cr-Commit-Position: refs/heads/master@{#11383}
2016-01-26 15:26:12 +00:00
Peter Boström
59b2d3ebe7 Remove zero-divide in VCMContentMetricsProcessing.
Protects against zero-framerate in UpdateFrameRate.

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

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

Cr-Commit-Position: refs/heads/master@{#11382}
2016-01-26 15:18:56 +00:00
kwiberg
83277131b1 AudioCodingModuleImpl: Put CodecManager and Rent-A-Codec in a separate struct
This will make it easier for future CLs to make them optional.

BUG=webrtc:5028

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

Cr-Commit-Position: refs/heads/master@{#11381}
2016-01-26 14:06:20 +00:00
Danil Chapovalov
d0c7bba4f4 [rtp_rtcp] Dlrr::SubBlock struct renamed to ReceiveTimeInfo
This structure is used outside Dlrr creating/parsing.
but RTCPReceiveTimeInfo structure doesn't follow naming style.

rtcp::ReceiveTimeInfo added to replace both Dlrr::SubBlock (when creating/parsing packets)
and RTCPReceiveTimeInfo (for other uses).

this CL is a split of https://codereview.webrtc.org/1557593002/

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11380}
2016-01-26 13:12:57 +00:00
kwiberg
6a07f12e95 AudioCodingModuleImpl: Initialize encoder_stack_ to nullptr
This should have been done in commit 11340, but it was left out by
mistake.

BUG=webrtc:5028

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

Cr-Commit-Position: refs/heads/master@{#11378}
2016-01-26 11:28:57 +00:00
terelius
2bdcfadc8a Revert of Removing webrtc::AudioFrame::energy_. (patchset #2 id:20001 of https://codereview.webrtc.org/1589953002/ )
Reason for revert:
The change breaks google3 tests for buzz/mediaengines/sae/audio_mixer.

Original issue's description:
> Remove webrtc::AudioFrame::energy_.
>
> BUG=webrtc:3315
>
> Committed: https://crrev.com/bacae81a1d91ae7b2a4bde37a66ab70513449989
> Cr-Commit-Position: refs/heads/master@{#11372}

TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,tommi@webrtc.org,minyue@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:3315

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

Cr-Commit-Position: refs/heads/master@{#11377}
2016-01-26 10:29:54 +00:00
asapersson
ffa3fdc8d6 Reallocate encoded buffer size if needed for VP8. Initially set to the input image size.
Issue may occur for very small input images (e.g. 4x4) when encoded image length > input image size.

BUG=chromium:571594

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

Cr-Commit-Position: refs/heads/master@{#11376}
2016-01-26 09:56:35 +00:00
sprang
e791ffd638 Remove non-monotonic clock support
Real time clock may cause problems as they can move (even backwards) if
the clock is changed, eg updated by NTP.

Non-monotonic clocks still in use on some platform (I'm looking at you,
Apple) for timed waits, but that should be less of an issue than actual
timestamps.

BUG=webrtc:5452

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

Cr-Commit-Position: refs/heads/master@{#11375}
2016-01-26 09:53:24 +00:00
Peter Boström
4fd6cda067 Add tracing to VCMGenericEncoder::Release.
This call can take time, especially on mobile HW encoders. Make sure it
shows up in tracing.

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

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

Cr-Commit-Position: refs/heads/master@{#11374}
2016-01-26 09:20:03 +00:00
asapersson
86956ded42 Small cleanup in VP9EncoderImpl::GetEncodedLayerFrame.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11373}
2016-01-26 09:05:28 +00:00
minyue
bacae81a1d Remove webrtc::AudioFrame::energy_.
BUG=webrtc:3315

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

Cr-Commit-Position: refs/heads/master@{#11372}
2016-01-25 22:10:40 +00:00
Peter Boström
85b22e2306 Remove vp8_factory.{cc,h}.
Removes use of global VP8EncoderFactory::use_simulcast_adapter which is
thread-unsafe. Also the code wasn't in use.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11370}
2016-01-25 16:58:08 +00:00
asapersson
28ba92731d Switch to use new implementation in metrics.h.
Sparse macro replaced for all video histograms that have a constant name.

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11368}
2016-01-25 13:58:27 +00:00
pbos
5ad935cb56 Remove mutable from rtc::CriticalSection members.
rtc::CriticalSection is now lockable from const methods and no longer
need to remain mutable.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11367}
2016-01-25 11:52:53 +00:00
tommi
7d0d0e0763 Remove dead code from webrtc/base/timing.*
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11366}
2016-01-25 11:09:32 +00:00
henrik.lundin
7a83951b27 Fix a bug in webrtc::ByteReader
The specializations for 4-byte reading did not return correct
values. This has to do with the order of casting and shifting. Also
adding a test to expose the bug (and verify the other byte sizes).

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

Cr-Commit-Position: refs/heads/master@{#11364}
2016-01-25 07:47:59 +00:00
jbauch
f91e6d0438 Enable cpplint for webrtc/modules/bitrate_controller and fix all uncovered cpplint errors.
This CL enableds cpplint for webrtc/modules/bitrate_controller.

BUG=webrtc:5311
NOTRY=true

TESTED=Fixed issues reported by:
find webrtc/modules/bitrate_controller -type f -name *.cc -o -name *.h | xargs cpplint.py
followed by 'git cl presubmit'.

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

Cr-Commit-Position: refs/heads/master@{#11363}
2016-01-25 07:05:26 +00:00
hjon
e373dc20c4 Update API for Objective-C RTCDataChannel.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11362}
2016-01-22 22:04:33 +00:00
sprang
38b39d59d1 Temporary hack to avoid assert errors when time moves backwards.
Once we have eliminated all non-monotonic clocks, revert this change.

BUG=webrtc:5452

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

Cr-Commit-Position: refs/heads/master@{#11361}
2016-01-22 21:36:39 +00:00
minyue
9846845da6 Calculate audio levels in AEC in time domain.
In AEC, audio levels are calculated in frequency domain. This makes the calculation dependent on FFT. We now make the calculation performed in time domain. The complexity is the same, but the dependence on FFT is removed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11357}
2016-01-22 13:46:47 +00:00
tommi
5447934728 Remove implementation of CriticalSectionWrapper and use rtc::CriticalSection
While transitioning over to rtc::CriticalSection completely, this gives perf benefits that rtc::CriticalSection has on Mac to current users of CriticalSectionWrapper.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11356}
2016-01-22 13:26:19 +00:00
tommi
7406b96abc CriticalSection: Use types+methods from base/platform_thread*.*.
Use PlatformThreadRef, CurrentThreadRef and IsThreadRefEqual instead of pthread_t, pthread_self and operator== (or !=).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11355}
2016-01-22 13:13:38 +00:00
Danil Chapovalov
32e590ec13 class doesn't rely on structures in RTCPUtility to store data.
supports several fci items in same packet.
got accessors to read data

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11354}
2016-01-22 10:05:10 +00:00
hbos
3fe2c6a161 VideoProcessorImpl using EncodedImage::GetBufferPaddingBytes.
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424

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

Cr-Commit-Position: refs/heads/master@{#11353}
2016-01-22 08:07:17 +00:00
tommi
ed281e9c9b New lock implementation for mac.
According to my measurements, it's about 100x faster than the native mutex implementation in OSX.  Google "OSX mutex performance" for more info.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11352}
2016-01-22 07:47:30 +00:00
Jon Hjelle
2bf9a5f11b Update API for Objective-C RTCMediaStream.
BUG=
R=tkchin@webrtc.org

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

Patch from Jon Hjelle <hjon@andyet.net>.

Cr-Commit-Position: refs/heads/master@{#11351}
2016-01-22 00:14:23 +00:00
Jon Hjelle
ca91e38a3a Update API for Objective-C RTCAudioTrack and RTCVideoTrack.
BUG=
R=tkchin@webrtc.org

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

Patch from Jon Hjelle <hjon@andyet.net>.

Cr-Commit-Position: refs/heads/master@{#11350}
2016-01-21 23:36:54 +00:00
Tommi
97888bd95a Swap use of CriticalSectionWrapper for rtc::CriticalSection in webrtc/video.
While doing this, I made a couple of minor changes:
* Removed unused variables (one lock and one video frame variable)
* Switched over to a scoped lock in remb.cc and removed an if() in a function where we can just return the expression being checked.

BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11349}
2016-01-21 22:25:12 +00:00
Jon Hjelle
7ac8babbc6 Move RTCAVFoundationCapturer to webrtc/api/objc.
BUG=
R=tkchin@webrtc.org

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

Patch from Jon Hjelle <hjon@andyet.net>.

Cr-Commit-Position: refs/heads/master@{#11348}
2016-01-21 19:45:04 +00:00
Jon Hjelle
891a446a92 Update/move RTCVideoRendererAdapter to webrtc/api/objc.
BUG=
R=tkchin@webrtc.org

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

Patch from Jon Hjelle <hjon@andyet.net>.

Cr-Commit-Position: refs/heads/master@{#11347}
2016-01-21 19:42:10 +00:00
tommi
31fc21f454 Swap use of CriticalSectionWrapper with rtc::CriticalSection in voice_engine/
Also remove mischievous tab character!
This is a part of getting rid of CriticalSectionWrapper and makes the code slightly simpler.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11346}
2016-01-21 18:37:44 +00:00
stefan
fa156696dd Fix probing breakage with send-side BWE introduced by r11322.
BUG=chromium:580046, webrtc:4173

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

Cr-Commit-Position: refs/heads/master@{#11344}
2016-01-21 16:55:08 +00:00
henrik.lundin
fea3dd83fc Fix a bug in InputAudioFile::Read
When the file was rewound, the remaining audio read was inserted at
the start of the destination array, not where the first reading
attempt ended.

R=ivoc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11343}
2016-01-21 16:20:01 +00:00
Peter Boström
af9e6637c0 Make rtc::CriticalSection lockable from f() const.
Removes the use of mutable rtc::CriticalSection across the code.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11342}
2016-01-21 15:57:03 +00:00