This CL introduces three-value enum, in order to be able to distinguish
between send success, send failure, and invalid states such as missing
packet or invalid ssrc.
The behavior is unchanged in this CL, a follow-up will change the pacer
to not consume media budget on invalid states.
Bug: webrtc:8052,webrtc:8975
Change-Id: I1c9e2226f995356daa538d3d3cf44945f35e0133
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135165
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27923}
This reverts commit 37f2b43274a0d718de53a4cfcf02226356edcf6e.
Reason for revert: fuzzer failures
Original change's description:
> Reland "Version 2 "Refactoring DataContentDescription class""
>
> This is a reland of 14b2758726879d21671a21291dfed8fb4fd5c21c
>
> Original change's description:
> > Version 2 "Refactoring DataContentDescription class"
> >
> > (substantial changes since version 1)
> >
> > This CL splits the cricket::DataContentDescription class into
> > two classes: cricket::RtpDataContentDescription (used for RTP data)
> > and cricket::SctpDataContentDescription (used for SCTP only).
> >
> > SctpDataContentDescription no longer inherits from
> > MediaContentDescriptionImpl, and no longer contains "codecs".
> >
> > Due to usage of internal interfaces by consumers, shimming the old
> > DataContentDescription API is needed.
> >
> > A new cricket::DataContentDescription class is defined, which is
> > a shim over RtpDataContentDescription and SctpDataContentDescription.
> > It exposes as little functionality as possible, but supports the
> > concerned consumer's usage
> >
> > Design document:
> > https://docs.google.com/document/d/1H5LfQxJA2ikMWTQ8FZ3_GAmaXM7knfVQWiSz6ph8VQ0/edit#
> >
> > Version 1 reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132700
> >
> > Bug: webrtc:10358
> > Change-Id: Icf95fb7308244d6f2ebfdb403aaffc544e358580
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133900
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27853}
>
> Bug: webrtc:10358
> Change-Id: Iff45c4694167f0b31b34ff2167c1f4ffa650bcc4
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135281
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27896}
TBR=steveanton@webrtc.org,kwiberg@webrtc.org,hbos@webrtc.org,hta@webrtc.org,shampson@webrtc.org
Change-Id: Ied6d9fb96aafe9c957f2658b34b5331b1f359b26
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10358
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135986
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27917}
This sequence checker was necessary back when a concern existed
over calling StopLogging() twice. That is no longer a concern.
Bug: webrtc:10613
Change-Id: Ib28d876a8c1940e76d4914287043cce2a1d974b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135949
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27914}
Add a PlayoutVolumeChange RuntimeSetting. Trigger an echo path change when the playout volume is changed.
Bug: webrtc:10608
Change-Id: I1e736b93c1865d08c7d2582f6fe00216c1e1f72e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135746
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Fredrik Hernqvist <fhernqvist@webrtc.org>
Commit-Queue: Fredrik Hernqvist <fhernqvist@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27913}
Recommended usage is to create copies with Clone() and to
call JsepSessionDescription::Initialize using std::move.
Bug: webrtc:10612
Change-Id: I626a08a35ba8e112471cec0374c944e96f8effbc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135941
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27911}
Use the C++-style stdlib headers, add `std::` prefix, in order to avoid implicit casts to double.
Bug: None
Change-Id: I78d9caaee715be341d2480c6d5e769068966d577
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133625
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27905}
Also add explicit includes of rtc_base/string_utils.h in files depending on it.
Bug: webrtc:6424
Change-Id: Id6b53937ab2d185d092a5d8863018fd5f1a88e27
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135744
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27903}
This reverts commit bd20c3f5ae1908a6680945c6f849373d8a268e32.
Reason for revert: chromium:961253
This CL is not the cause of the regression, but reverting it will make the reverting of the actual cause easier.
Original change's description:
> Rename configurations_ to vpx_configs_ in LibvpxVp8Encoder
>
> Bug: None
> Change-Id: I548a724f0fb81f46785517c90e527edc075e1476
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135040
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27836}
TBR=brandtr@webrtc.org,eladalon@webrtc.org
Bug: chromium:961253
Change-Id: I707337e0ce50f29f9cda7cf45500c11debace1a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135750
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27898}
Methods of P2PTransportChannel have been assuming a non-null port
allocator for a long time, and yet the constructor does not check for
that. With the recent change that wires a signal in the port allocator
to the transport in the constructor, a valid allocator becomes a must.
Bug: None
Change-Id: I4ec2e5b577d74a598ee3c2f8ad59e9f0285ac4b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135880
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27897}
This is a reland of 14b2758726879d21671a21291dfed8fb4fd5c21c
Original change's description:
> Version 2 "Refactoring DataContentDescription class"
>
> (substantial changes since version 1)
>
> This CL splits the cricket::DataContentDescription class into
> two classes: cricket::RtpDataContentDescription (used for RTP data)
> and cricket::SctpDataContentDescription (used for SCTP only).
>
> SctpDataContentDescription no longer inherits from
> MediaContentDescriptionImpl, and no longer contains "codecs".
>
> Due to usage of internal interfaces by consumers, shimming the old
> DataContentDescription API is needed.
>
> A new cricket::DataContentDescription class is defined, which is
> a shim over RtpDataContentDescription and SctpDataContentDescription.
> It exposes as little functionality as possible, but supports the
> concerned consumer's usage
>
> Design document:
> https://docs.google.com/document/d/1H5LfQxJA2ikMWTQ8FZ3_GAmaXM7knfVQWiSz6ph8VQ0/edit#
>
> Version 1 reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132700
>
> Bug: webrtc:10358
> Change-Id: Icf95fb7308244d6f2ebfdb403aaffc544e358580
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133900
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27853}
Bug: webrtc:10358
Change-Id: Iff45c4694167f0b31b34ff2167c1f4ffa650bcc4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135281
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27896}
This reverts commit 4fb12b0caec9faa57cfbceb0f86b0e10c32a0cc2.
Reason for revert: Breaks some asan chromium bots
Original change's description:
> Reland "Copy video frames metadata between encoded and plain frames in one place"
>
> Reland with fixes.
>
> Currently some video frames metadata like rotation or ntp timestamps are
> copied in every encoder and decoder separately. This CL makes copying to
> happen at a single place for send or receive side. This will make it
> easier to add new metadata in the future.
>
> Also, added some missing tests.
>
> Original Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133346
>
> Bug: webrtc:10460
> Change-Id: Ia71198685de7fbd990704b575231cdce94dc0645
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134961
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27828}
TBR=ilnik@webrtc.org,nisse@webrtc.org,sprang@webrtc.org,kron@webrtc.org,artit@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webrtc:10460
Change-Id: I9c87a43a716622b389974cb8377f973573fc29a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135747
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27895}
Tested with a Web Platform Test; the test added here is useful, but
does not exercise the bug.
Bug: chromium:959128
Change-Id: Ia2e7f9e015b2345dd02d341b0fe27f58b64aa81e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135575
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27889}
The main purpose right now of this CL is to avoid the situation
where multiple retransmissions are queued for sending (normally after
network glitch with increased pacer queue length), and some of those
fail sending because the can't be retrieved from the packet history
due to too short time since last sent.
Bug: webrtc:8975, webrtc:10607
Change-Id: I9f6369d83f0b8208e5f57b2dc2fd3f2db7c6fea1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135164
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27884}
The state this set tracks (whether this is new feedback for a packet
belonging to a media ssrc) can already be inferred from data provided
by the SendTimeHistory: if packet send time is not populated in the
feedback it's either because:
1. The feedback has already been processed
2. The receiver is sending feedback for bogus non-existent packets
If the first case, this maps to |feedback_packet_seq_num_set_|
containing the packet, if the ssrc (present in the feedback) is part
of the media ssrcs.
In the second case, this data should be ignored anyway.
Bug: webrtc:10604
Change-Id: If4828091142d68baa8dbb62be9d0b24ccaaa9546
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135163
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27882}
This CL makes it possible to configure the priority of audio streams in
bitrate allocations using field trials.
It also adds the option to forcibly ignore any injected audio allocation
strategy, so that experimentation with allocation won't be blocked on
the work to remove the strategy injection.
Bug: webrtc:10603
Change-Id: Ic36ceee6c15eb0fad275866f77e2a121066e516c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135467
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27881}
This CL removes the usage of absl::flat_hash_map because it transitively
depends on CCTZ which fails to link with lld-link after the switch to
libc++.
Since std::map doesn't support heterogeneous lookup until C++14, this
CL also stops using absl::string_view and switches to
`const std::string&`.
Bug: webrtc:10605
Change-Id: I4fc93969c6fc0cc7e7e62b4d2f801bdd27cff0f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135566
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27877}