10715 Commits

Author SHA1 Message Date
asapersson
c2148a50d2 Integrate helper macros for calling histograms with different names (real-time vs screenshare and rampup metrics).
Sparse macro is replaced and new implementation in metrics.h is used.

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11483}
2016-02-04 08:33:29 +00:00
honghaiz
9031d6366f Remove the network with empty name or NONE connection type from the network list.
In some device (e.g. Galaxy s6), the OS returns a list of network containing
one that has empty network name or NONE connection type, which cannot be used and cause crash to the app.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11482}
2016-02-04 05:45:28 +00:00
kjellander
fc5fc1e9b3 Roll chromium_revision 609aa24..28e68f8 (373145:373442)
Change log: 609aa24..28e68f8
Full diff: 609aa24..28e68f8

Changed dependencies:
* src/buildtools: 389b714..e27b1f1
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/2cdf398..d057454
* src/third_party/libvpx_new/source/libvpx: d699684..f51dd8c
* src/third_party/libyuv: ad71738..903c91c
DEPS diff: 609aa24..28e68f8/DEPS

No update to Clang.

TBR=marpan@webrtc.org, stefan@webrtc.org,

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

Cr-Commit-Position: refs/heads/master@{#11481}
2016-02-04 04:05:58 +00:00
jbauch
f2a2bf4ae4 Stay writable after partial socket writes.
This CL fixes an issue where the "writable" flag didn't stay set after
::send or ::sendto only sent a partial buffer.

Also SocketTest::TcpInternal has been updated to use rtc::Buffer instead
of manually allocating data.

BUG=webrtc:4898

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

Cr-Commit-Position: refs/heads/master@{#11480}
2016-02-04 00:45:38 +00:00
Honghai Zhang
14d024d882 Do not notify networkconnect if the connection type is known.
This sometimes happened with sim card has a voice plan but does not have data plan.
Renable the DCHECK.

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

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

Cr-Commit-Position: refs/heads/master@{#11479}
2016-02-03 23:12:33 +00:00
Honghai Zhang
45b683f43f Call static method getConnectionType using the class name.
BUG=
R=glaznev@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11478}
2016-02-03 22:15:12 +00:00
danilchap
5c35cf9f8e Re-enable RestartingSendStreamPreservesRtpState.
based on https://codereview.webrtc.org/1457283002/
Packets allowed now to come out of order.

BUG=webrtc:3552
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11477}
2016-02-03 22:14:57 +00:00
Peter Boström
cedff02e30 Remove dead code from WebRtcVideoEngine2.
FindCodec is no longer used and can be removed.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11476}
2016-02-03 16:58:57 +00:00
jbauch
e03ac51aa1 Implement NullVideoDecoder to avoid crash on unsupported decoders.
There is a use case with external codec factories that only support
encoding but not decoding for a given type. This leads to a crash
due to null being registered as codec (after a DCHECK).

This CL adds a NullVideoDecoder that is used instead of the null to
not crash but log to LS_ERROR.

BUG=webrtc:5249

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

Cr-Commit-Position: refs/heads/master@{#11475}
2016-02-03 13:51:56 +00:00
hbos
9dc5928eb2 Ability to disable the effects of |rtc_use_h264| with DisableRtcUseH264.
Renamed the WEBRTC_THIRD_PARTY_H264 macro to WEBRTC_USE_H264 to match flag name.

The idea is to be able to turn off H264 from chromium with this function because...
1) The Chromium trybots will soon use this flag, we want to temporarily disable H264 from chromium even if flag is set in case something is broken. That way when we are ready to flip the switch the trybots will run our test code then and not after it is already enabled.
2) If feature is launched and we discover major problems we can easily disable H264 and merge with beta/stable.
3) Or, if feature is behind a *runtime* flag, this is how we would control if it is used or not.

The idea is to call DisableRtcUseH264 in chromium's PeerConnectionDependencyFactory.

BUG=chromium:500605, chromium:468365
NOTRY=True
NOPRESUBMIT=True

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

Cr-Commit-Position: refs/heads/master@{#11474}
2016-02-03 13:09:40 +00:00
kjellander
86512b401e Rename iOS test specs to match buildbot names.
I really prefer not using spaces in any filenames but
if we were to rename all the bots all existing URLs to builds
would stop working (or we'd loose the build history), so I'd
like to see if this works first.
The bots that hits the errors are the new ones I'm experimenting
with in client.webrtc.fyi. Example failing build:
https://build.chromium.org/p/client.webrtc.fyi/builders/iOS64%20Simulator%20Debug

BUG=chromium:498746
NOTRY=True
TBR=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11473}
2016-02-03 12:41:10 +00:00
Stefan Holmer
10880011d9 Support multiple rtx codecs.
Adds negotiation of rtx codecs for red and vp9. To keep backwards
compatibility with older Chrome versions, this change includes two
hacks:
1. Red packets will be retransmitted over the rtx codec associated with
   vp8 if no rtx codec is associated with red. This is how Chrome does
   it today and ensures that we still can send red over rtx to older
   versions.

2. If rtx packets associated with the media codec (vp8/vp9 etc) are
   received and red has been negotiated, we will assume that the sender
   incorrectly has packetized red inside the rtx header associated with
   media. We will therefore restore it with the red payload type
   instead, which ensures that we can still receive rtx associated with
   red from old versions.

Offering multiple rtx codecs to older versions should not be a problem
since old versions themselves only try to negotiate rtx for vp8.

R=pbos@webrtc.org
TBR=mflodman@webrtc.org
BUG=webrtc:4024
TEST=Verified by running apprtc and emulating packet loss between Chrome with and without the patch.

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

Cr-Commit-Position: refs/heads/master@{#11472}
2016-02-03 12:30:10 +00:00
kjellander
abe095b879 Roll chromium_revision c6076f2..609aa24 (372974:373145)
Change log: c6076f2..609aa24
Full diff: c6076f2..609aa24

Changed dependencies:
* src/third_party/ffmpeg: cab2b46..501a5c5
DEPS diff: c6076f2..609aa24/DEPS

Clang version changed 257955:259395
Details: c6076f2..609aa24/tools/clang/scripts/update.py

NOTRY=True
TBR=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11471}
2016-02-03 12:26:40 +00:00
noahric
d983c3c9e5 Add SEI to the list of packets counted as keyframe.
It's generated by some encoders between SPS/PPS and an IDR frame, so we should treat it like sps/pps.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11470}
2016-02-03 11:43:50 +00:00
tkchin
d1fb26d457 Add iOS tracing.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11469}
2016-02-03 09:51:22 +00:00
kjellander
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
honghaiz
7f777498a5 Disable flaky test WebRtcSessionTest.TestRtxRemovedByCreateAnswer on Win and Mac.
TBR=kjellander@webrtc.org
BUG=webrtc:4943
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#11467}
2016-02-03 05:54:08 +00:00
honghaiz
27a348555a Fixing a DCHECK failure on unknown connection type from OS.
Sometimes Android OS provides unknown connection type,
causing a DCHECK failure. This CL temporarily removes that checking.

BUG=
TBR=glaznev@webrtc.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#11466}
2016-02-03 02:20:31 +00:00
Peter Boström
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
kjellander
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
honghaiz
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
tommi
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
asapersson
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
Peter Boström
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
Peter Boström
ce23bee697 Remove SendStreamFormat and ViewRequests.
SendStreamFormat is broken in current implementation and
ApplyViewRequest is no longer in use.

BUG=
R=pthatcher@webrtc.org, sophiechang@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#11459}
2016-02-02 13:16:03 +00:00
kjellander
d467a91669 Roll chromium_revision f41a54b..a8e5140 (372876:372922)
Change log: f41a54b..a8e5140
Full diff: f41a54b..a8e5140

Changed dependencies:
* src/third_party/ffmpeg: c7b5761..cab2b46
DEPS diff: f41a54b..a8e5140/DEPS

No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11458}
2016-02-02 12:10:01 +00:00
kjellander
c61635c2db PRESUBMIT: Exclude supplement.gypi from _CheckNoSourcesAboveGyp check.
The webrtc/supplement.gypi contains a source listing of the
suppressions for TSan and LSan, which are located in source files.
It makes the presubmit fail when it's updated, which is confusing.

NOTRY=True
TESTED=Edited webrtc/supplement.gypi and ran "git cl presubmit" without an error.

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

Cr-Commit-Position: refs/heads/master@{#11457}
2016-02-02 10:30:58 +00:00
hbos
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
asapersson
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
kjellander
6fd26b6ec8 Roll chromium_revision f6e3d46..f41a54b (372710:372876)
Change log: f6e3d46..f41a54b
Full diff: f6e3d46..f41a54b

Changed dependencies:
* src/third_party/ffmpeg: 2f698ed..c7b5761
DEPS diff: f6e3d46..f41a54b/DEPS

No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11454}
2016-02-02 04:11:11 +00:00
honghaiz
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
glaznev
94291480b6 Extra logging for HW codec.
- Add extra logging for Android HW codec corner cases
when frames are dropped or resolution is changed.
- Use presentation timestamps for decoded frame logging.
- Enable key frame sending on long frame gap for
H.264 codec.

BUG=b/26504665

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

Cr-Commit-Position: refs/heads/master@{#11452}
2016-02-01 21:17:28 +00:00
kjellander
3668cf034c Roll chromium_revision 65f9b34..f6e3d46 (372637:372710)
Change log: 65f9b34..f6e3d46
Full diff: 65f9b34..f6e3d46

No dependencies changed.
No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11451}
2016-02-01 20:23:29 +00:00
Peter Boström
a6c39d9902 Remove unimplemented VideoChannel code.
Also removing a lot of dead testcases that were copied over and made
sense in the old implementation, now they just take space.

BUG=
R=pthatcher@google.com, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11450}
2016-02-01 18:30:43 +00:00
stefan
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
minyue
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
pbos
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
danilchap
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
Peter Boström
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
kjellander
b46c333139 Roll chromium_revision 126e210..65f9b34 (372588:372637)
Change log: 126e210..65f9b34
Full diff: 126e210..65f9b34

No dependencies changed.
No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11444}
2016-02-01 12:54:09 +00:00
stefan
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
cesar.ilharco
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
kjellander
d06d4d8dee Add linux_ubsan_vptr to default trybots.
BUG=webrtc:5124
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11441}
2016-02-01 10:54:54 +00:00
sprang
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
danilchap
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
kjellander
6b231e0719 Roll chromium_revision d785e7c..126e210 (372580:372588)
Change log: d785e7c..126e210
Full diff: d785e7c..126e210

No dependencies changed.
No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11438}
2016-02-01 04:36:02 +00:00
kjellander
25f17d762a Roll chromium_revision 2084e1d..d785e7c (372575:372580)
Change log: 2084e1d..d785e7c
Full diff: 2084e1d..d785e7c

No dependencies changed.
No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11437}
2016-01-31 21:08:05 +00:00
kjellander
ac53c883a5 Roll chromium_revision 750447f..2084e1d (372566:372575)
Change log: 750447f..2084e1d
Full diff: 750447f..2084e1d

No dependencies changed.
No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11436}
2016-01-31 12:12:53 +00:00
kjellander
430e40084d Roll chromium_revision f5d1a9c..750447f (372546:372566)
Change log: f5d1a9c..750447f
Full diff: f5d1a9c..750447f

No dependencies changed.
No update to Clang.

TBR=

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

Cr-Commit-Position: refs/heads/master@{#11435}
2016-01-31 04:36:13 +00:00
conceptgenesis
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