Commit Graph

28178 Commits

Author SHA1 Message Date
668ce0c7fa Remove trial WebRTC-SimulcastMaxLayers and make its behavior default
Also cleans up the unused parameters from GetSimulcastConfig.

Bug: webrtc:8785, webrtc:8486
Change-Id: I1aea8f6c9e6590211ec5ee5cafc0ec2a2100d68f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144627
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28496}
2019-07-05 14:55:46 +00:00
ecae9cd1a7 Android: Add error callback for GL_OUT_OF_MEMORY in EglRenderer
Encountering GL_OUT_OF_MEMORY is relatively common and we should give
clients a chance to deal with it in a non-fatal way.

Bug: webrtc:8154
Change-Id: Ifa9ca74392f21083692b02a5144dc5632a88d34d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144561
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28495}
2019-07-05 13:04:17 +00:00
48b1b18065 Add ability to create EmulatedNetworkNode from BuiltInNetworkBehaviorConfig
There is no public API to create NetworkBehaviorInterface from
BuiltInNetworkBehaviorConfig, so this CL will add direct method, that will
allow downstream projects to use BuiltInNetworkBehaviorConfig for network
emulation.

Bug: webrtc:10138
Change-Id: Iaec3ea17c12bd06b1c0ff3e5bc2b32cc1c4f62f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144628
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28494}
2019-07-05 12:43:17 +00:00
c8263e0638 Introduce PC level audio quality test.
Add PC level audio quality test as separate file but into the same
binary as low_bandwidth_audio_test.cc

Bug: webrtc:10138
Change-Id: I3bb7df4130ab62c21a82881cd9f57b936f3cc11d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144621
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28493}
2019-07-05 11:41:38 +00:00
386802ef7c Move network emulation framework under test/network
Bug: webrtc:10138
Change-Id: I654bc124866241ceca65462937e2fad6294cc62b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144622
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28492}
2019-07-05 11:08:42 +00:00
13eb602e01 Roll chromium_revision 50acc956cd..48f88caf2e (674882:674992)
Change log: 50acc956cd..48f88caf2e
Full diff: 50acc956cd..48f88caf2e

Changed dependencies
* src/base: abdf1a589f..41fb4d35eb
* src/build: a494b7316f..ebd7d61b05
* src/ios: 947cdacfe4..2927c5e09c
* src/testing: e28c8c02c7..0fa22669f3
* src/third_party: d95092bdaa..62faa6561e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b0d8876c9c..43030745c1
* src/tools: e0adbf1171..55dcdc7de2
DEPS diff: 50acc956cd..48f88caf2e/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I42e8074cabd2b3818910cc3cf3a654c746b89347
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144680
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28491}
2019-07-05 10:45:12 +00:00
fdf74bdb5f Remove non implemented function from WebRtcVideoChannel.
Bug: none
Change-Id: I5136e4dc169fc162f583487a13bf826e7e9bb858
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144521
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28490}
2019-07-05 10:06:47 +00:00
656590dabc Roll chromium_revision 778353d874..50acc956cd (674780:674882)
Change log: 778353d874..50acc956cd
Full diff: 778353d874..50acc956cd

Changed dependencies
* src/base: 8fcbae5950..abdf1a589f
* src/build: 293721c40d..a494b7316f
* src/ios: d5b9ab9e68..947cdacfe4
* src/testing: 8ff45170c5..e28c8c02c7
* src/third_party: f2705a717b..d95092bdaa
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a78382fe6b..b0d8876c9c
* src/third_party/freetype/src: 7b1c7585d7..8cf046c38d
* src/tools: 40c476fef3..e0adbf1171
DEPS diff: 778353d874..50acc956cd/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I1eaad68e1cb512209e93da1379dde8c9e656b015
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144591
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28489}
2019-07-04 19:02:57 +00:00
1efb4a283b Add field trial for forcing partition resilience mode in libvpx.
Bug: None
Change-Id: I51c90e0eef111f3aee1ef9672b3ace5a62cbdcb4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144626
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28488}
2019-07-04 16:13:36 +00:00
3fbf1e2e4a Reduce kMaxSimulcastStreams to 3
Because of webrtc:10801, we don't actually support 4 simulcast layers but 3.
Until this is fixed, we limit the value to what we can currently handle.

Bug: webrtc:8785
Change-Id: I513b7c8d4c889fa0d80c91adc1c4f874acb86fdc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144625
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28487}
2019-07-04 15:54:36 +00:00
9d96209240 Switch unpack_aecdump to ABSL_FLAG.
Bug: webrtc:10616
Change-Id: Ia6d0104d589b4b966ad6705493d88d3cb701c266
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144600
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28486}
2019-07-04 14:19:40 +00:00
4580ca2e99 Reland: Add ability to set ssrcs of RtpSender at construction time
Patch set 1 is identical to original CL. Next one adds fix for
backwards compatibilit.

Original cl: https://webrtc-review.googlesource.com/c/src/+/144037

Bug: webrtc:10774
Change-Id: Ib72e3723c7a07e9ee83f97560a85367becd868a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144601
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28485}
2019-07-04 11:50:19 +00:00
8e3cb53892 Remove activity_metric tool.
All the changes to these code are migration or codebase maintenance
changes, the tool seems unused so instead of migrating it to ABSL_FLAG
this CL removes the code.

As agreed on https://webrtc-review.googlesource.com/c/src/+/143967/1#message-067b02363890435e52646dcfdf967df745ac37f1.

Bug: None
Change-Id: I57912541b2c0d0f49e2b862184db335f59def0e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144620
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28484}
2019-07-04 11:07:50 +00:00
543179e527 Roll chromium_revision 79b588ee95..778353d874 (674667:674780)
Change log: 79b588ee95..778353d874
Full diff: 79b588ee95..778353d874

Changed dependencies
* src/build: a1f0d830c2..293721c40d
* src/ios: a7ce8a1bf8..d5b9ab9e68
* src/third_party: b3dbb464d1..f2705a717b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8a36dcd7cf..a78382fe6b
* src/third_party/depot_tools: ff4f6bccd8..92afaf53fd
* src/tools: ff4f506e96..40c476fef3
DEPS diff: 79b588ee95..778353d874/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I42d9a566bc283de6107c555fb82d40b7ecd252c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144587
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28483}
2019-07-04 10:33:34 +00:00
2250b05778 Adding support for channel mixing between different channel layouts.
Two new classes are added to WebRTC from Chrome: ChannelMixer and
ChannelMixingMatrix but they are not yet utilized in the audio path for
WebRTC.

The idea is to utilize these new classes when adding support for multi-
channel encoding/decoding in WebRTC/Chrome.

Adds support for a new enumerator call webrtc::ChannelLayout and some
helper methods which maps between channel layout and number of channels.
These parts are also copied from Chrome.

Minor (cosmetic) changes are also done on the AudioFrame to prepare
for upcoming work.

Bug: webrtc:10783
Change-Id: I6cd7a13a3bc1c8bbfa19bc974c7a011d22d19197
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141674
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28482}
2019-07-04 10:10:54 +00:00
3f2eeb8136 Adding test on GetSpanSamples() for NetEq PacketBuffer.
Bug: webrtc:10736
Change-Id: I4448c5c8e1ae8ea5e343415c4fc2c0fd095ca8ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144560
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28481}
2019-07-04 09:23:27 +00:00
d2c336f892 [getStats] Implement "media-source" audio levels, fixing Chrome bug.
Implements RTCAudioSourceStats members:
- audioLevel
- totalAudioEnergy
- totalSamplesDuration
In this CL description these are collectively referred to as the audio
levels.

The audio levels are removed from sending "track" stats (in Chrome,
these are now reported as undefined instead of 0).

Background:
  For sending tracks, audio levels were always reported as 0 in Chrome
(https://crbug.com/736403), while audio levels were correctly reported
for receiving tracks. This problem affected the standard getStats() but
not the legacy getStats(), blocking some people from migrating. This
was likely not a problem in native third_party/webrtc code because the
delivery of audio frames from device to send-stream uses a different
code path outside of chromium.
  A recent PR (https://github.com/w3c/webrtc-stats/pull/451) moved the
send-side audio levels to the RTCAudioSourceStats, while keeping the
receive-side audio levels on the "track" stats. This allows an
implementation to report the audio levels even if samples are not sent
onto the network (such as if an ICE connection has not been established
yet), reflecting some of the current implementation.

Changes:
1. Audio levels are added to RTCAudioSourceStats. Send-side audio
   "track" stats are left undefined. Receive-side audio "track" stats
   are not changed in this CL and continue to work.
2. Audio level computation is moved from the AudioState and
   AudioTransportImpl to the AudioSendStream. This is because a) the
   AudioTransportImpl::RecordedDataIsAvailable() code path is not
   exercised in chromium, and b) audio levels should, per-spec, not be
   calculated on a per-call basis, for which the AudioState is defined.
3. The audio level computation is now performed in
   AudioSendStream::SendAudioData(), a code path used by both native
   and chromium code.
4. Comments are added to document behavior of existing code, such as
   AudioLevel and AudioSendStream::SendAudioData().

Note:
  In this CL, just like before this CL, audio level is only calculated
after an AudioSendStream has been created. This means that before an
O/A negotiation, audio levels are unavailable.
  According to spec, if we have an audio source, we should have audio
levels. An immediate solution to this would have been to calculate the
audio level at pc/rtp_sender.cc. The problem is that the
LocalAudioSinkAdapter::OnData() code path, while exercised in chromium,
is not exercised in native code. The issue of calculating audio levels
on a per-source bases rather than on a per-send stream basis is left to
https://crbug.com/webrtc/10771, an existing "media-source" bug.

This CL can be verified manually in Chrome at:
https://codepen.io/anon/pen/vqRGyq

Bug: chromium:736403, webrtc:10771
Change-Id: I8036cd9984f3b187c3177470a8c0d6670a201a5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143789
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28480}
2019-07-04 08:13:45 +00:00
e8fbc5d702 Refactor WebRtcOpus_PacketHasFec.
WebRtcOpus_PacketHasFec was written long time ago. see http://webrtc-codereview.appspot.com/7539004.
When revisiting, I notice that adding more comments should help. Code style should be improved a bit too.

Bug: webrtc:10772
Change-Id: If4d60b210e6235b4f787608047e88efc949f6838
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144056
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28479}
2019-07-04 07:51:52 +00:00
67008dfb36 Revert "Replace the implementation of GetContributingSources() on the audio side."
This reverts commit 8fa7151e4bbad40fec1f964fe0c003b8787bb78a.

Reason for revert: Speculative revert to fix roll of webrtc into chrome. Right now tests related to RTCRtpReceiver failing and looks like it is main candidate, who can affect that behavior.

Original change's description:
> Replace the implementation of `GetContributingSources()` on the audio side.
> 
> This change replaces the `ContributingSources`-implementation of `GetContributingSources()` and `GetSynchronizationSources()` on the audio side with the spec-compliant `SourceTracker`-implementation.
> 
> The most noticeable impact is that the per-frame dictionaries are now updated when frames are delivered to the RTCRtpReceiver's MediaStreamTrack rather than when RTP packets are received on the network.
> 
> This change is almost identical to the previous video side change at: https://webrtc-review.googlesource.com/c/src/+/143177
> 
> Bug: webrtc:10545
> Change-Id: Ife7f08ee8ca1346099b7466837a3756947085fc5
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144422
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Chen Xing <chxg@google.com>
> Cr-Commit-Position: refs/heads/master@{#28459}

TBR=ossu@webrtc.org,chxg@google.com

Change-Id: I5c631d4dcfb39601055ffce9b104f45eea871fd3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10545
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144562
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28478}
2019-07-04 07:14:24 +00:00
c6c730b7fd Roll chromium_revision 54ec0ffb89..79b588ee95 (674538:674667)
Change log: 54ec0ffb89..79b588ee95
Full diff: 54ec0ffb89..79b588ee95

Changed dependencies
* src/build: 1414d7e5d1..a1f0d830c2
* src/ios: 269aa62e0e..a7ce8a1bf8
* src/testing: 49dccc9b60..8ff45170c5
* src/third_party: 8a70281840..b3dbb464d1
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/0c5ef59218..8a36dcd7cf
* src/third_party/depot_tools: ffd96e6df0..ff4f6bccd8
* src/third_party/libyuv: 09cfb2bbd6..f9aacffa02
* src/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/e6527b0cd4..8048ece6c1
* src/tools: dbbe2e2f9e..ff4f506e96
DEPS diff: 54ec0ffb89..79b588ee95/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I2620270475e64a5fef397b6bfbba2a73b89eed0e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144582
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28477}
2019-07-04 00:30:55 +00:00
697f8618db Roll chromium_revision 13b7238371..54ec0ffb89 (674397:674538)
Change log: 13b7238371..54ec0ffb89
Full diff: 13b7238371..54ec0ffb89

Changed dependencies
* src/base: c97a005aa2..8fcbae5950
* src/build: 1f811ef2c3..1414d7e5d1
* src/ios: 5ab8559892..269aa62e0e
* src/testing: 58d0f2c85c..49dccc9b60
* src/third_party: 60d8a713e4..8a70281840
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e9399f9f92..0c5ef59218
* src/tools: 666f455146..dbbe2e2f9e
DEPS diff: 13b7238371..54ec0ffb89/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Idbb465e914585ac0dca000f6a1968cfe39dc7b11
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144509
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28476}
2019-07-03 18:46:11 +00:00
2e60217390 Add speculative checks to RtpPacketHistory
This CL adds a number of debug-mode checks for inconsistent state, and
if in release mode will reset the history instead of crashing.

Bug: webrtc:10794
Change-Id: If099a1bb61314177cdad633d0fbdca052cd3a5ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144525
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28475}
2019-07-03 16:07:25 +00:00
46dda83bcb Improve buffer level estimation with DTX and add CNG time stretching.
The functionality is hidden behind field trial for experimentation.

Bug: webrtc:10736
Change-Id: I1daf60966717c3ea43bf6ee16d190290ab740ce7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144059
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28474}
2019-07-03 15:12:09 +00:00
3d642f8442 Rename ..BitrateThresholds to ..BitrateLimits.
Bug: webrtc:10798
Change-Id: I1975206323a520b557652760d1d54c01c26a7405
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144540
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28473}
2019-07-03 14:50:46 +00:00
cecee9903f Disable VP9 2nd profile test for ios arm64
Bug: webrtc:10138
Change-Id: Ic3cad70609470551802002f0aac223093679df44
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144520
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28472}
2019-07-03 14:48:16 +00:00
51f599bdaa Make rtc_base/base_java public.
Bug: webrtc:9048
Change-Id: I4ce8219fcc751ee89050a075df5ad44fc9e68237
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144524
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28471}
2019-07-03 14:44:46 +00:00
81e1bf0396 Remove using DegradationPreference from scenario_config.h
DegradationPreference is already available in namespace webrtc so looks
like there is no reason to redeclare it. Also it cause compilation
error with GCC 5.4.0

Bug: webrtc:10792
Change-Id: I814e90000b8692de67ea477ea7d2769a34a14f01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144523
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28470}
2019-07-03 14:25:36 +00:00
6542826868 Add new tests with lossy networks on PC test framework
Bug: webrtc:10138
Change-Id: I9383bf620f27b7378d73bd2b549cbaeaf5a58edd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144424
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28469}
2019-07-03 14:23:46 +00:00
cd8a6e2f38 Add writing and parsing of the abs-capture-time RTP header extension.
This change adds the writing and parsing of the `abs-capture-time` RTP header extension defined at:

  http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time

We are still missing the code to:

- Negotiate the header extension.
- Collect capture time for audio and video and have the info sent with the header extension.
- Receive the header extension and use its info.

Bug: webrtc:10739
Change-Id: I75af492e994367f45a5bdc110af199900327b126
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144221
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28468}
2019-07-03 14:07:36 +00:00
53d45baa50 Make TaskQueueFactory required construction parameter for Call
Bug: webrtc:10284
Change-Id: I573ee0087c035e26918260c21b8b0213ddfe7ebc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143791
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28467}
2019-07-03 14:02:45 +00:00
84ce3c08a5 Macro rename s/CS_DEBUG_CHECKS/RTC_CS_DEBUG_CHECKS.
Bug: None
Change-Id: Ie55de3148cb450de8e37d53e810f2a2d590a1f6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144049
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28466}
2019-07-03 13:49:52 +00:00
a2b30d8940 Add functions to read from/write to bitstream values with known max value
Bug: webrtc:10342
Change-Id: I701b09de574eb463daaf8d2c19008ac3452879eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144033
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28465}
2019-07-03 13:30:01 +00:00
9eee121a8f Switch py_quality_assessment to ABSL_FLAG.
Bug: webrtc:10616
Change-Id: I051d5706576d5684d82e3e42fb1b40ea755864d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144054
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28464}
2019-07-03 12:46:18 +00:00
b60141b14f Save and serialize the receive RIDs in MediaContentDescription
Bug: webrtc:10790
Change-Id: Ifd94a2c5fce3fcac4c65416a9e7831bf2946015c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144460
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28463}
2019-07-03 12:35:12 +00:00
e8ed83003d WebRtcVideoChannel encoder fallback.
In this CL:
 - Added WEBRTC_VIDEO_CODEC_ENCODER_FAILURE return code that can
   be returned by the encoder wrapper in case of a broken encoder.
 - Added EncoderFailureCallback interface that can be called
   to request encoder fallback to be performed. Implemented by
   WebRtcVideoChannel and called from the VideoStreamEncoder.
 - Updated SelectSendVideoCodec to select all compatible codecs instead
   of just one.

Bug: webrtc:10795
Change-Id: I87a83fd02e48c40493c930471c06c3d0941031ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140888
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28462}
2019-07-03 12:31:42 +00:00
e420c6aa01 Add missing include for memcpy/memcmp
Bug: webrtc:10792, webrtc:10138
Change-Id: I0559e28e31d21ff63154cf811f60bc9de757b7b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144522
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28461}
2019-07-03 12:27:02 +00:00
6a2c1bae24 Roll chromium_revision ba17fd6b36..13b7238371 (674288:674397)
Change log: ba17fd6b36..13b7238371
Full diff: ba17fd6b36..13b7238371

Changed dependencies
* src/build: 6c0140b448..1f811ef2c3
* src/ios: 9c68e43388..5ab8559892
* src/testing: 5f46e6546d..58d0f2c85c
* src/third_party: 39b1633438..60d8a713e4
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/63f7fcc05a..e9399f9f92
* src/third_party/depot_tools: dc37feb99d..ffd96e6df0
* src/tools: 143f7f54fb..666f455146
DEPS diff: ba17fd6b36..13b7238371/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I2173e63826ec6903ecf4771f853ce673843cc9cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144505
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28460}
2019-07-03 11:05:52 +00:00
8fa7151e4b Replace the implementation of GetContributingSources() on the audio side.
This change replaces the `ContributingSources`-implementation of `GetContributingSources()` and `GetSynchronizationSources()` on the audio side with the spec-compliant `SourceTracker`-implementation.

The most noticeable impact is that the per-frame dictionaries are now updated when frames are delivered to the RTCRtpReceiver's MediaStreamTrack rather than when RTP packets are received on the network.

This change is almost identical to the previous video side change at: https://webrtc-review.googlesource.com/c/src/+/143177

Bug: webrtc:10545
Change-Id: Ife7f08ee8ca1346099b7466837a3756947085fc5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144422
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28459}
2019-07-03 10:51:51 +00:00
16661ebfd9 Fix: report video_bwe_stats as bytes per second, as specified in the unit
Bug: webrtc:10138
Change-Id: I5b74e9066f47fde0a72348591524f6e43dfd8799
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142172
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28458}
2019-07-03 10:30:57 +00:00
443b7ee635 Destroy existing encoder instance before creating a new one.
Before this change, an attempt to recreate video encoder would fail if
video encoder factory supports only single instance of an encoder.

Added tracking of max number of existed simultaneously encoder
instances to VideoEncoderProxyFactory.

Bug: webrtc:10776
Change-Id: I317cbdf1af94dfb4c72bf99c5cd4ce7b454188fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144044
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28457}
2019-07-03 10:15:57 +00:00
2c5af4f6dc Add * and / operator into SamplesStatsCounter.
Add * and / operator into SamplesStatsCounter to simplify convertion
between samples units.

Bug: webrtc:10138
Change-Id: I985b60bc63c071ceaf0fddcdbcd3e6476353c0fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142171
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28456}
2019-07-03 09:19:36 +00:00
1d46f9c599 Add RtpPacket::IsExtensionReserved().
This is a small utility method to check whether an extension has been
reserved, so that can be checked before attempting to set an extension
without the need to actually try setting it and potentially failing
with warning loggins as a result.

Bug: webrtc:10633
Change-Id: Ie6f2c4f3f5e94a30dbf60aec6290ebee72681d9c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144461
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28455}
2019-07-03 08:13:41 +00:00
6038926379 Roll chromium_revision 35be8751a4..ba17fd6b36 (674036:674288)
Change log: 35be8751a4..ba17fd6b36
Full diff: 35be8751a4..ba17fd6b36

Changed dependencies
* src/base: 5eac8b6a4a..c97a005aa2
* src/build: c4c0a07646..6c0140b448
* src/ios: 5a37f1d06a..9c68e43388
* src/testing: cff8e64fbe..5f46e6546d
* src/third_party: ed7c465048..39b1633438
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/2c752374f1..63f7fcc05a
* src/third_party/libvpx/source/libvpx: 30e7f9d856..cd9f1763c8
* src/third_party/libyuv: b36c86fdfe..09cfb2bbd6
* src/tools: 9d7bd5d9cc..143f7f54fb
DEPS diff: 35be8751a4..ba17fd6b36/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,marpan@webrtc.org, jianj@chromium.org,
BUG=None

Change-Id: If1a4181b12d223ebcfd841b42febd463b6f0decc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144500
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28454}
2019-07-03 01:01:28 +00:00
02d7d353a9 Revert "Add ability to set ssrcs of RtpSender at construction time"
This reverts commit e9d6e658c307fc0241d622756703d5c0d5388d80.

Reason for revert: breaks downstream project

Original change's description:
> Add ability to set ssrcs of RtpSender at construction time
> 
> Bug: webrtc:10774
> Change-Id: I7147a75ccbcd1093dcd2e08047da8900843fdd8d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144037
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28447}

TBR=asapersson@webrtc.org,sprang@webrtc.org

Change-Id: I8b0cba0836e7d86ae1718055196c2c89860b97ff
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10774
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144368
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28453}
2019-07-02 21:05:07 +00:00
c4421979fe Check the rid direction matches the direction in simulcast description
Section 5.2 of draft-ietf-mmusic-sdp-simulcast-14:
The direction for an rid-id MUST be aligned with the direction
specified for the corresponding RTP stream identifier on
the "a=rid" line.

Bug: webrtc:10785
Change-Id: I1fc70706511ae17c821c5ec4d90a0b854171454f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144245
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28452}
2019-07-02 19:17:06 +00:00
238aab9948 Fix bug in use_datagram_transport configuration.
Currently, use_datagram_transport's non-default value is never used.
Instead of reading configuration.use_datagram_transport,
PeerConnection::Initialize reads the local configuration's
use_datagram_transport.  This hasn't been set yet, and so it always
falls back to the default value.

Bug: webrtc:9719
Change-Id: I028ed537c7d88ee3421b6bd92fc7d5e3c6970529
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144441
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28451}
2019-07-02 18:45:46 +00:00
b073f1c27f Only set the RtcEventLog for media transport when it's used for media.
Currently, GenerateOrGetLastMediaTransportOffer() creates a media
transport that has an RtcEventLog, regardless of whether the media
transport is used for media or data channels.  It should only set the
RtcEventLog when used for media.

Bug: webrtc:10789
Change-Id: Id91c16973deec89bbc8c6518c4c9f1039f1265fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144367
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28450}
2019-07-02 17:30:32 +00:00
73bfc0ea8d Roll chromium_revision 6f0434662d..35be8751a4 (673926:674036)
Change log: 6f0434662d..35be8751a4
Full diff: 6f0434662d..35be8751a4

Changed dependencies
* src/base: 3d13a7aa98..5eac8b6a4a
* src/build: 3fa1f27670..c4c0a07646
* src/ios: dfb6071255..5a37f1d06a
* src/testing: 45f0246c12..cff8e64fbe
* src/third_party: 13250e00d5..ed7c465048
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/15ad0b0b62..2c752374f1
* src/tools: a27a29d288..9d7bd5d9cc
DEPS diff: 6f0434662d..35be8751a4/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Ie1fb5149871037abddb2f064fe537e751c958a34
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144365
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#28449}
2019-07-02 15:04:12 +00:00
ed56cf44b0 Remove deprecated version of Vp8FrameBufferControllerFactory::Create
Bug: webrtc:10769
Change-Id: I31de2d21d5325eb4b175815739c2477352842425
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144381
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28448}
2019-07-02 14:40:20 +00:00
e9d6e658c3 Add ability to set ssrcs of RtpSender at construction time
Bug: webrtc:10774
Change-Id: I7147a75ccbcd1093dcd2e08047da8900843fdd8d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144037
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28447}
2019-07-02 13:03:25 +00:00