This is a partial revert of
https://webrtc-review.googlesource.com/c/src/+/130101.
The KeyFrameRequestSender argument is added back to the constructor of
RtpVideoStreamReceiver. It is optional; if a null pointer is passed,
key frame requests are sent via the internal RtpRtcp module, and this is
how the class is used by VideoReceiveStream. An injectable
KeyFrameRequestSender is useful for tests, for downstream applications
that want to route key frame requests elsewhere, and should also aid
later migration to RtcpTransciever.
Bug: None
Change-Id: Idf9baeed21570625ad74e9afbe38f7ea5bf79feb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139107
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28102}
This patch is a NOP and moves
- class Connection
- class ConnectionInfo
- class ProxyConnection
from port.{h/cc} to a new file called connection.{h/cc}
BUG=webrtc:10647
Change-Id: I89322d3421d272657e24a46b28ab6679fcdc9450
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137509
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28101}
If screen share is set, then we need to tell video source, that it
is screen share source. Also video track should be aware, that it is
screen share track. It is required to choose proper video encoding
settings.
Bug: webrtc:10138
Change-Id: I5c82584ae0325a303a495554d87962a98b676694
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138278
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28098}
Connect ICE state changes to datagram transport regardless of bypass mode.
ICE states were connected to datagram transport only in bypass mode. As a result, if we received datagram state change notification before ICE state change notification, the state was not propagated.
TODO: We need fake datagram transport implementation/test so that we could unit test such failures without relying on downstream projects.
Bug: webrtc:9719
Change-Id: I5a180676e0d05f707b2a43d07e8c04fb10985027
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138982
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28094}
This will be used to multiplex multiple transports during SDP
negotiation. When the offerer watns to support multiple RTP transports,
it will combine them into a singla CompositeRtpTransport.
CompositeRtpTransport can receive from any of the offered transports
while waiting for an answer to arrive.
The choice of which transport is used to send must be driven by the SDP
answer. If a provisional answer arrives, the composite can be set to
send using the chosen transport, while maintaining other transports in
case the peer changes its mind. When the final answer arrives, the
composite will be deleted and replaced with the chosen transport.
Bug: webrtc:9719
Change-Id: Ib8cea77ef202f37086723bfa2c71e2aa5995a912
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138281
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28093}
Currently used ':' is bad because it prevents from specifying absolute
path on windows (e.g. "C:\directory").
Now to specify path on windows, it can be passed unchanged in field trial:
"WebRTC-DecoderDataDumpDirectory/C:\path\on\windows/"
On linux ';' has to be used instead of '/':
"WebRTC-DecoderDataDumpDirectory/;path;on;linux/"
Bug: none
Change-Id: Ia46c94bdfab95385618dde4fd3f2857e9ddf2d1c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138832
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28085}
Currently, the packet in the history that most closely matches the bit
budget between two PacedSender::Process() calls is selected to be
retransmitted. This usually means that the smallest packet in the
history is selected over and over.
With this new field trial, we ignore the size constraint (since you're
sending padding, you obviously have some bandwidth to spare) and
instead prefer packets that have the fewest transmission times first,
and after that we prefer new packets over older ones. This way, in
case of available bandwidth but small loss, these padding packets have
a greater chance of actually being useful to the receiver.
Bug: webrtc:8975
Change-Id: I15a69231f44bfbefcb9ab38dd7886b966e3af6fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135954
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28084}
Due to internal code, deprecating the class itself is difficult.
It will be deleted at the same time as the functions.
Bug: webrtc:10597
Change-Id: Iac775377c459318e074818abc05f1505c9190bd3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138823
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28083}
The simulation currently doesn't set the transport sequence number before inserting
the packets into the send time history. This means that send times can't be looked up
when receiving feedback, essentially disabling BWE simulation.
Bug: None
Change-Id: I3f2789324eb81f784dd5a6c5a5a770767236a3fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138826
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28082}
LNTF (loss notifications) are no longer mutually exclusive with
NACK and key frames; a receiver may send both, and the sender would
be allowed to choose which to regard.
Bug: webrtc:10336
Change-Id: I1ae7d972f9f47b07fe2f493bb31c1916456d6a3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138828
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28081}
This gives assurance that we're not calling any function in
cricket::P2PTransportChannel off-thread.
Bug: none
Change-Id: I21d4e496cf5f301ab85abbd53a5abd4f5068ec39
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138271
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28077}
The probe configuration is currently a single field trial. To allow
multiple experiments with non-overlapping subsets of these keys I've
added a few extra keys that override different subsets of the config.
Bug: webrtc:10394
Change-Id: I54ffd1105129794fcdae4cce314910acaa4074af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138274
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28076}
The imports of Packet, ReceivedPacket from ForwardErrorCorrection::
collides with other usages of the names introduced in a followup CL.
Bug: webrtc:9883
Change-Id: Ib042c9091ad8e350cbdf01b837af09c820dbff33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138279
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28075}
This implements the essentials of RTCRemoteInboundRtpStreamStats. This
includes:
- ssrc
- transportId
- codecId
- packetsLost
- jitter
- localId
- roundTripTime
https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*
The following members are not implemented because they require more
work...
- From RTCReceivedRtpStreamStats: packetsReceived, packetsDiscarded,
packetsRepaired, burstPacketsLost, burstPacketsDiscarded,
burstLossCount, burstDiscardCount, burstLossRate, burstDiscardRate,
gapLossRate and gapDiscardRate.
- From RTCRemoteInboundRtpStreamStats: fractionLost.
Bug: webrtc:10455, webrtc:10456
Change-Id: If2ab0da7105d8c93bba58e14aa93bd22ffe57f1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138067
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28073}
RtpTransportInternal does not need to expose these. They are only used
by tests and for setting options. Instead, it can expose a SetRtpOption
and SetRtcpOption to set options relevant to each of its transports.
Also updates tests to work around no longer having access to internals.
This will simplify the composite needed during negotiation of different
RTP transport types, as we no longer need to have composites of both
RtpTransport and PacketTransport.
Bug: webrtc:9719
Change-Id: I91bfa6e95b7aa384d10497f47e7d2483c2e0bef2
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138282
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28066}
Because of a low bitrate target, base layer has drops much more frequently
than other layers. But it reduces overall framerate, especially then
input framerate is low (5 fps).
This CL allows pre-layer drops and disables droppoing on higher spatial
layers for screenshare, solving the issue.
Additional care have to be taken then new spatial layers are enabled
dynamically to not create non-compatible with RTP references.
Bug: webrtc:10257
Change-Id: Ie056484c99a3f35ff4405ef71337dc2d034db8bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138262
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28063}
Using simple IsEnabled/IsDisabled instead of the parser for Enabled/
Disabled flags to improve readability.
Bug: webrtc:9883
Change-Id: I3dbf906d49f99269f73a8ced6b3f042181228f3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138078
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28062}
It seems unnecessary to lock it if not actually reinitializing.
Bug: webrtc:10205
Change-Id: Ib3292e1d640a92a7df77400aebe9583cf877f824
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/115460
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28060}
This CL adds error handling for sysconf, which can return -1 and
adds an RTC_CHECK_GT to ensure the value returned is always greater
than 0.
On top of that CpuInfo::DetectNumberOfCores is made thread safe because
the static local variable is initialized with the right values istead
of 0.
Bug: None
Change-Id: I294684e7380b12cda55ec8d6c7a90e132dc3af85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138210
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28057}