3633 Commits

Author SHA1 Message Date
Sebastian Jansson
26452ff7db Cleanup of TransportFeedbackAdapter.
* Removes legacy defines from rtp_rtcp_defines.
* Simplifies the feedback adaptation logic, this is achieved
  by using the ability to preserve lost packets information
  from the RTCP message.
* Extracts in flight data tracking to a separate helper class.
* Removes legacy fields and constructors from the PacketFeedback
  structure.
* Removes the legacy GetTransportFeedbackVector method.

Apart from reducing total LOC, this prepares for moving the adaptation
to run on a TaskQueue.

Bug: webrtc:9883
Change-Id: I5ef4eace0948f119f283cd71dc2b8d0954a1449b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158781
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29674}
2019-11-01 11:55:16 +00:00
Ivo Creusen
c3d1f9b0cd Enable injection of a custom NetEqFactory into PeerConnectionFactory.
Injecting both a custom NetEqFactory and an AudioDecoderFactory is not
supported, in that case the AudioDecoderFactory should be wrapped inside
the NetEqFactory.

Bug: webrtc:11005
Change-Id: I4e311eb1bfa03c91bca587d70540e81829f881c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158720
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29673}
2019-11-01 11:30:36 +00:00
Ivo Creusen
3ce44a3540 Move NetEq headers to api/
This CL also introduces NetEqFactory and NetEqControllerFactory
interfaces, as well as several convenience classes for working with
them: DefaultNetEqFactory, DefaultNetEqControllerFactory and
CustomNetEqFactory.

Bug: webrtc:11005
Change-Id: I1e8fc5154636ac2aad1a856828f80a2a758ad392
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156945
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29671}
2019-10-31 15:43:59 +00:00
Erik Språng
739a5b3692 Refactors BitrateProber with unit types and absolute probe time.
Using unit types improves readability and some conversion in PacedSender
can be removed.

TimeUntilNextProbe() is replaced by NextProbeTime(), so returning an
absolute time rather than a delta. This fits better with the upcoming
TaskQueue based pacer, and is also what is already stored internally
in BitrateProber.

Bug: webrtc:10809
Change-Id: I5a4e289d2b53e99d3c0a2f4b36a966dba759d5cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158743
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29670}
2019-10-31 15:34:39 +00:00
Gustaf Ullberg
caaa9e73d7 AEC3: Handle multichannel audio in single CNG instance
Instead of having a comfort noise generator (CNG) instance per capture
channel, one instance handles CNG for all capture channels.

Bug: webrtc:10913
Change-Id: I897471be6d203ad750c517c5076d421f2ae3879b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158780
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29668}
2019-10-31 14:51:35 +00:00
Sebastian Jansson
cd2a92f8e0 Removes RPLR based FEC controller.
This is not used and adds a lot of maintenance overhead to
the code since it requires that the transport feedback adapter
communicates directly with audio send stream.

This also means that the packet loss tracker used as input for
this can be removed and a lot of wiring up code overall.

Bug: webrtc:9883
Change-Id: I25689fb622ed89cbb378c27212a159485f5f53be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156502
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29667}
2019-10-31 13:56:44 +00:00
Minyue Li
d1ea4c93d3 Update comments on Audio Level RTP header extension.
Bug: None
Change-Id: Id9f10ea2236ba4a154cd82f2e2b05e3fa03442f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158745
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29666}
2019-10-31 13:11:41 +00:00
Minyue Li
fb075d558d Removing unused Opus wrapper API: WebRTCOpus_DecodePlc.
Bug: None
Change-Id: I5b613b4c13ec5f6ad13d8430043d006f6d83c11f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158671
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29664}
2019-10-31 12:01:31 +00:00
Per Åhgren
0cbb58e046 Reland "Refactoring of the noise suppressor and adding true multichannel support"
This is a reland of 87a7b82520b83a6cf42da27cdc46142c2eb6248c

Original change's description:
> Refactoring of the noise suppressor and adding true multichannel support
> 
> This CL adds proper multichannel support to the noise suppressor.
> To accomplish that in a safe way, a full refactoring of the noise
> suppressor code has been done.
> 
> Due to floating point precision, the changes made are not entirely
> bitexact. They are, however, very close to being bitexact.
> 
> As a safety measure, the former noise suppressor code is preserved
> and a kill-switch is added to allow revering to the legacy noise
> suppressor in case issues arise.
> 
> Bug: webrtc:10895, b/143344262
> Change-Id: I0b071011b23265ac12e6d4b3956499d122286657
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158407
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29646}

Bug: webrtc:10895, b/143344262
Change-Id: I236f1e67bb0baa4e30908a4cf7a8a7bb55fbced3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158747
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29663}
2019-10-31 11:56:01 +00:00
Henrik Boström
5bd8cb74a6 Revert "Reland "Implemented screen enumeration and selection for desktop capture under X11 using the X Resize and Rotate extension version 1.5.""
This reverts commit a0adf3d4409036d095480e9bfa0fc06990362f84.

Reason for revert: Suspected of breaking chromium trybots, blocking
webrtc from rolling into chromium.

- First failed roll:
https://chromium-review.googlesource.com/c/chromium/src/+/1889997

- Second failed roll:
https://chromium-review.googlesource.com/c/chromium/src/+/1890837

Example failure:
https://ci.chromium.org/p/chromium/builders/try/linux-rel/230122
Log:
https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8898155661969383856/+/steps/browser_tests__with_patch_/0/logs/Deterministic_failure:_DesktopCaptureApiTest.ChooseDesktopMedia__status_FAILURE_/0

Including lines like:
[12413:12413:1030/102514.183135:INFO:CONSOLE(0)] "[FAIL] screenShareWithAudioPermissionGetStream: NotReadableError: Could not start video source
Error", source: chrome-extension://knldjmfmopnpolahpmmgbagdohdnhkik/_generated_background_page.html (0)

Original change's description:
> Reland "Implemented screen enumeration and selection for desktop capture under X11 using the X Resize and Rotate extension version 1.5."
> 
> This is a reland of e7153012682ccd3d1eacc18f802cab7820e3bad3
> 
> Original change's description:
> > Implemented screen enumeration and selection for desktop capture under X11 using the X Resize and Rotate entension version 1.5.
> >
> > Bug: chromium:396091
> > Change-Id: Ia1b36c771632c536bb8d15322461b479fabc409e
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148768
> > Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> > Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#29083}
> 
> Bug: chromium:396091
> Change-Id: I0d9171ae5f340e0489e4b45ce5d97bc52b0a4904
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156067
> Commit-Queue: Tommi <tommi@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29655}

TBR=zijiehe@chromium.org,tommi@webrtc.org,julien.isorce@chromium.org,sergeyu@chromium.org,trevor.axiom@gmail.com,jonringle@gmail.com

Change-Id: I2af6a0d5eaf74a0ee536d1c5440049a21d6f7dbf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:396091
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158740
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29658}
2019-10-30 18:14:52 +00:00
Minyue Li
54d027843a Renaming opus_interface.c to opus_interface.cc.
This is to allow advanced features of WebRTC/Chrome e.g., field trials.

More style compliant changes may follow up. Only a minimal (not in terms of line changes) is applied, so that presubmit does not complain. These changes include

1. removing unused headers.
2. eliminating c-style casting.

Bug: b/143582588
Change-Id: I6d0fd926c542ab0afdc38cc4bf03aaf584ec13dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158670
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29657}
2019-10-30 15:48:28 +00:00
Danil Chapovalov
09860e0bc3 Split out counting unique rtp timestamps from packet_buffer
Bug: None
Change-Id: Ia6fd05f284e8304cf56ab9ddf944fb222a4c9573
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158676
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29656}
2019-10-30 15:27:48 +00:00
Trevor Hayes
a0adf3d440 Reland "Implemented screen enumeration and selection for desktop capture under X11 using the X Resize and Rotate extension version 1.5."
This is a reland of e7153012682ccd3d1eacc18f802cab7820e3bad3

Original change's description:
> Implemented screen enumeration and selection for desktop capture under X11 using the X Resize and Rotate entension version 1.5.
>
> Bug: chromium:396091
> Change-Id: Ia1b36c771632c536bb8d15322461b479fabc409e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148768
> Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
> Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#29083}

Bug: chromium:396091
Change-Id: I0d9171ae5f340e0489e4b45ce5d97bc52b0a4904
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156067
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29655}
2019-10-30 12:20:20 +00:00
Artem Titov
4778f6ce7a Revert "Refactoring of the noise suppressor and adding true multichannel support"
This reverts commit 87a7b82520b83a6cf42da27cdc46142c2eb6248c.

Reason for revert: Speculative revert. Breaks downstream projects.

Original change's description:
> Refactoring of the noise suppressor and adding true multichannel support
> 
> This CL adds proper multichannel support to the noise suppressor.
> To accomplish that in a safe way, a full refactoring of the noise
> suppressor code has been done.
> 
> Due to floating point precision, the changes made are not entirely
> bitexact. They are, however, very close to being bitexact.
> 
> As a safety measure, the former noise suppressor code is preserved
> and a kill-switch is added to allow revering to the legacy noise
> suppressor in case issues arise.
> 
> Bug: webrtc:10895, b/143344262
> Change-Id: I0b071011b23265ac12e6d4b3956499d122286657
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158407
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29646}

TBR=gustaf@webrtc.org,peah@webrtc.org

Change-Id: I4d4025bda01f484979961fe57380a705e4d78397
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10895, b/143344262
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158701
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29651}
2019-10-30 09:49:31 +00:00
Sebastian Jansson
f298855981 Cleanup of feedback observer interface
Removes all unused features, reducing the exposed interface surface.
This makes refactoring and maintenance simpler as we can change
TransportFeedbackAdapter without making corresponding changes
to RtpVideoSender.

Bug: webrtc:9883
Change-Id: If372a868e0765e94df52b4de52d3bb619ce11471
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156943
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29649}
2019-10-30 07:50:29 +00:00
Mirko Bonadei
470b2d5144 Stop relying on GN's sources_assignment_filter.
Recently, on the gn-dev mailing list [1] and on chromium-dev [2] a
consensus about not using "sources_assignment_filter" [3] has been
reached.

This CL removes the implicit dependency on this feature from the
WebRTC codebase in order to make it easier to remove it from GN [4].

[1] - https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/oQcYStl_WkI
[2] - https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/hyLuCU6g2V4
[3] - https://gn.googlesource.com/gn/+/master/docs/reference.md#func_set_sources_assignment_filter
[4] - https://bugs.chromium.org/p/gn/issues/detail?id=125

Bug: webrtc:11057
Change-Id: Ia77820f1b4f9dbc47df2b670148b90928860111a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158677
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29648}
2019-10-30 07:37:39 +00:00
Per Åhgren
ae40e19805 AEC3: Adding a configurable render signal gain
Bug: webrtc:8671
Change-Id: I405d669517382ce195065caa3147eabace5ec18a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158669
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29647}
2019-10-29 23:26:38 +00:00
Per Åhgren
87a7b82520 Refactoring of the noise suppressor and adding true multichannel support
This CL adds proper multichannel support to the noise suppressor.
To accomplish that in a safe way, a full refactoring of the noise
suppressor code has been done.

Due to floating point precision, the changes made are not entirely
bitexact. They are, however, very close to being bitexact.

As a safety measure, the former noise suppressor code is preserved
and a kill-switch is added to allow revering to the legacy noise
suppressor in case issues arise.

Bug: webrtc:10895, b/143344262
Change-Id: I0b071011b23265ac12e6d4b3956499d122286657
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158407
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29646}
2019-10-29 23:23:38 +00:00
Erik Språng
9cdc9cc1c4 Cleanup of deprecated RTPSender code
Also reformats RtpRtcpImpl::RtpSender by removing _ suffixes from
struct members.

Bug: webrtc:11036
Change-Id: I52cdcdff0727b62673323f64a6dc37d56ba4efbc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158532
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29642}
2019-10-29 10:08:12 +00:00
Gustaf Ullberg
cb30726646 Remove deprecated Audio Processing APIs
This change removes the deprecated ChannelLayout versions of ProcessStream
and AnalyzeReverseStream.

Bug: webrtc:5298
Change-Id: I8a7e33e89cffac5eceecd00dfd3c96000643f51b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158529
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29641}
2019-10-29 10:07:08 +00:00
Danil Chapovalov
fbec2ec292 Detach H264 sps pps tracker from VCMPacket
Bug: webrtc:10979
Change-Id: I6ec5db570c3957dd068109accad88d2f62304163
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158523
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29639}
2019-10-29 09:52:38 +00:00
Sebastian Jansson
05c47926ff Removes OnPacketAdded callback from feedback adapter.
The code path it calls is no longer actually used and will be cleaned
up in a follow-up CL.

This prepares for simplifying the transport feedback adapter and moving
it to run on a task queue.

Bug: webrtc:9883
Change-Id: I750398069414ffa782067d021c0a3837049d98eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158621
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29638}
2019-10-29 09:28:00 +00:00
Erik Språng
9c71e4936b Remove redundant BitrateProber::OnIncomingPacket() call
The extra call doesn't appear to have any side effects, but should be
removed nonetheless.

Bug: None
Change-Id: I45a98261828211b7bc7954acb779913249dc2b01
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158620
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29637}
2019-10-29 08:21:24 +00:00
Erik Språng
77b7529515 Reland "Use RtpSenderEgress directly instead of via RTPSender"
This is a reland of b533010bc66a0628c8efa4d6c3dd60b8336f2736

Patchset 1 is identical to previously landed CL.
Patchset 2 contains a workaround to migrate downstream tests.

Original change's description:
> Use RtpSenderEgress directly instead of via RTPSender
>
> Bug: webrtc:11036
> Change-Id: Ida4e8bc705ae43ceb1b131114707b30d10ba8642
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158521
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29626}

Bug: webrtc:11036
Change-Id: I8054169036a7f9f262308cac59f12ac8f9c73c17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158531
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29635}
2019-10-28 17:13:30 +00:00
Ivo Creusen
79e653c46d Apply bitrate boosting depending on field-trial.
This field-trial allows us to provide multipliers for the opus target
bitrate.

Bug: webrtc:11055
Change-Id: I79c4c6389c6908daadda355e5ce0668413d0aaa1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158530
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29634}
2019-10-28 17:05:30 +00:00
Sam Zackrisson
70770accb3 Make AudioFrame member instead of raw pointer in APM test fixture
Bug: webrtc:11045
Change-Id: I35adbb675185629088ee8fd65ef4be74276c9db3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158085
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29632}
2019-10-28 15:34:29 +00:00
Erik Språng
cff20c2615 Adds protected bitrate helper methods to RtpRtcpImpl
Bug: webrtc:11036
Change-Id: Iac7f79b60b9f4150868e4e2c59c04c6f866011de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158527
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29631}
2019-10-28 12:52:37 +00:00
Erik Språng
a81e2b4510 Revert "Use RtpSenderEgress directly instead of via RTPSender"
This reverts commit b533010bc66a0628c8efa4d6c3dd60b8336f2736.

Reason for revert: Breaks downstream tests.

Original change's description:
> Use RtpSenderEgress directly instead of via RTPSender
> 
> Bug: webrtc:11036
> Change-Id: Ida4e8bc705ae43ceb1b131114707b30d10ba8642
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158521
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29626}

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

Change-Id: Ib3354f6907d21462a8ad0c37eb8f6e94c48af217
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11036
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158526
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29627}
2019-10-28 11:17:18 +00:00
Erik Språng
b533010bc6 Use RtpSenderEgress directly instead of via RTPSender
Bug: webrtc:11036
Change-Id: Ida4e8bc705ae43ceb1b131114707b30d10ba8642
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158521
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29626}
2019-10-28 10:38:14 +00:00
Erik Språng
3eae7e4e3c Add exponential backoff of retransmissions for a given packet
Bug: webrtc:8624
Change-Id: I8900c54935bf1da11ac74665426b0d198bd6d814
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/30900
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29625}
2019-10-28 10:06:23 +00:00
Per Kjellander
632d57d3d0 Ignore low probe results when using NetworkStateEstimator under field trial
The feature is added as part a new field trial WebRTC-Bwe-IgnoreProbesLowerThanNetworkStateEstimate

Bug: webrtc:10498
Change-Id: I72b3c73256a35e0583f4d595edef45848f8bbb22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158260
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29624}
2019-10-28 08:36:01 +00:00
Erik Språng
67ac9e8ecb Prepares RTPSender for extracting RtpSenderEgress
The post-pacing part of the RTP sender has been moved from RTPSender
into the new RtpSenderEgress class. However, that class is not directly
used and instead a subset of method calls are passed through RTPSender.

This CL prepares for removing dependencies between RTPSender and
RtpSenderEgress. All current behavior is preserved, and unit tests are
unchanged to verify this.

For more context, see patch set 2.

Change-Id: If795f2603aeb6302ac1565d9efaea514af240dc7
Bug: webrtc:11036
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158020
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29616}
2019-10-25 14:11:51 +00:00
Ivo Creusen
53a31f7db8 Introduce injectable NetEqController interface.
This interface is implemented by the DecisionLogic class, which now contains the DelayManager and DelayPeakDetector.

Bug: webrtc:11005
Change-Id: I4fb69fa359e60831cf153e41f101d5b623749380
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155176
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29613}
2019-10-25 11:36:41 +00:00
Danil Chapovalov
1dac707ecb Cleanup PacketBuffer tests to use immediate result
delete traces of the OnAssembledFrame callback
relax some expectation to better match test purpose,
in particular avoid verifying every test buffer is not cleared on new packet.
switch comparisons from EXPECT_EQ(constant, value) to more natural EXPECT_EQ(value, constant)

Bug: None
Change-Id: I81e2c9d0133221435cb2bb02c9190d9f32abd548
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158140
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29610}
2019-10-25 09:35:47 +00:00
Sam Zackrisson
e277bde7e4 Add APM test of pre-amplifier gain
This tests that both the ApplyConfig() and SetRuntimeSetting() route of
APM configuration correctly induce the pre-amplifier gain effect in APM.

Bug: webrtc:11045
Change-Id: Iddaa1c19487c6f68ed6eb1be6913ec2dfd284b04
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158083
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29607}
2019-10-25 08:50:54 +00:00
Gustaf Ullberg
3cb6104864 AEC3: Support negative delay with external delay estimator
Bug: b/130016532
Change-Id: If41121e9ad95f235200c4b6b146ba8a8749daac4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158220
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29602}
2019-10-24 14:33:21 +00:00
Erik Språng
a9229043e3 Calls OnPacketsAcknowledged on RtpRtcp instead of RTPSender directly.
This prepares for splitting RtpSenderEgress out of RTPSender.
For context, see:
https://webrtc-review.googlesource.com/c/src/+/158020

Bug: webrtc:11036
Change-Id: I6d385ba255ce23f4c6685a3737eeb243ce2ec6ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158201
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29601}
2019-10-24 12:13:56 +00:00
Sergey Silkin
b2290f4e13 Revert "Reset end-of-frame flag in non-VCL packet."
This reverts commit c98ff2eff052bb916661bcb016e430a401bc5dc7.

Reason for revert: breaks decoding of H264 RTP streams where M bit is set in AUD packets.

Original change's description:
> Reset end-of-frame flag in non-VCL packet.
> 
> Bug: chromium:999807
> Change-Id: I28309d2fda16842e620e499cb9e77ec771827b8c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157160
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29560}

TBR=philipel@webrtc.org,ssilkin@webrtc.org,philipel@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:999807
Change-Id: I8d6bcf4c00197b00d279b9e53a11652d3e61171b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158204
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29600}
2019-10-24 12:12:26 +00:00
Erik Språng
fc78aaceea Batches video frame packets when posting to pacer
All plumbing was landed a while ago, but this call site was not updated.
This change aims to reduce contention/overhead when posting large
number of packets to the paced sender.

Bug: webrtc:10809
Change-Id: I5486131b980e55331a38151bceee1cb96e35a942
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158203
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29599}
2019-10-24 12:03:36 +00:00
Per Kjellander
eec39190ce Remove trial WebRTC-Bwe-ProbeRateFallback
It was intended to be used for to fall back to probe rate if ack rate is missing.

This partly reverts commit aa4f100225e86723e75497aaf2d510588dcb9851.

Reason for revert:
Code is unused 1 year after submitted.

Original change's description:
> Adds trial to fall back to probe rate if ack rate is missing.
>
> Bug: webrtc:9718
> Change-Id: I7b6e1d3c051e67b97f6de1ec95e84631af9c5b0d
> Reviewed-on: https://webrtc-review.googlesource.com/c/113600
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25953}

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:9718
Change-Id: I06804782c2e210d1c484426e915e4d8447572739
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158084
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29597}
2019-10-24 08:30:42 +00:00
Sebastian Jansson
d113ee326b Removes deprecated WebRTC-Bwe-AimdRateControl-NetworkState trial.
Bug: webrtc:10498
Change-Id: Ie435ad2e2c73bf2b54d9caccabf9a27443ca4229
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158082
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29596}
2019-10-24 08:14:02 +00:00
Mirko Bonadei
0e2b581395 RTC_EXPORT webrtc::DesktopCapturerDifferWrapper.
This symbol is needed by Chromium, failing to export it causes [1] in the
Chromium / WebRTC component build.

[1] - https://ci.chromium.org/p/chromium/builders/try/linux-chromeos-compile-dbg/256692

Bug: webrtc:9419
Change-Id: Ic4d950f42f0cfe1db07b60f04dd06c042542612f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158122
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29594}
2019-10-23 23:34:46 +00:00
Danil Chapovalov
ce1ffcdc06 change PacketBuffer to return it's result rather that use callback
Bug: None
Change-Id: I8cc05dd46e811d6db37af520d2106af21c671def
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157893
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29589}
2019-10-23 16:50:57 +00:00
Sam Zackrisson
21bfa401dd Update APM config on RuntimeSetting pre amplifier gain change
Bug: webrtc:11045
Change-Id: I78c777632a46e1f8ebf96f4a64c4e1738184d350
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158081
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29586}
2019-10-23 12:34:35 +00:00
Gustaf Ullberg
8c51f2e9cd AnalyzeReverseStream with StreamConfig
Adding a version of AnalyzeReverseStream with audio parameters
described by StreamConfig. This is part of preparations for
multichannel APM in Chromium.

Bug: webrtc:10913
Change-Id: I7c4650eab8bd7fcdec970a7e4a8fa203f09bed9e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157897
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29573}
2019-10-22 14:27:14 +00:00
Erik Språng
13a8e16247 Cleanup use of deprecated PacketRouter methods
Bug: webrtc:11036
Change-Id: I5131fc9d5d048c691fdb501e0885310664fb9419
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157884
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29571}
2019-10-22 12:30:51 +00:00
Minyue Li
1272dade56 Reduce log level of Opus bitrate.
Bug: None
Change-Id: Iab815dbbc12bf1ca2c1cc87acb0765e2ccade591
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157895
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29570}
2019-10-22 12:02:09 +00:00
Ilya Nikolaevskiy
5f2fc41fb5 VP9 decoder: replace DCHECK with error message
Bug: chromium:1016160
Change-Id: I0ef0db2b254829e7c0dff24b7a8da3a4056547ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157890
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29567}
2019-10-22 09:54:19 +00:00
Sergey Silkin
c98ff2eff0 Reset end-of-frame flag in non-VCL packet.
Bug: chromium:999807
Change-Id: I28309d2fda16842e620e499cb9e77ec771827b8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157160
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29560}
2019-10-21 13:54:31 +00:00
Danil Chapovalov
e34fb878b9 Clarify NetworkControl interface: result of each function must be used
Bug: None
Change-Id: Iff93513d36ed60d2c1bcbabb4dd5f8716e40d183
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157860
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29558}
2019-10-21 12:35:07 +00:00