Commit graph

958 commits

Author SHA1 Message Date
Mirko Bonadei
e5e78c4521 Fix -Wunused-but-set-variable.
Bug: None
Change-Id: I8943227108e46c4c942895e4bd8fb276947502e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/236525
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35272}
2021-10-28 12:53:49 +00:00
landrey
d67e75a45d Update m1 arm64 audio bitexactness tests hashes. Followup.
Update hashes that weren't updated at
https://webrtc-review.googlesource.com/c/src/+/232220

Bug: b/199885455
Change-Id: I4f9327fa48a9d5656f57c5dcbc6438f20f919acd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232320
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35023}
2021-09-17 10:19:01 +00:00
landrey
d14f98f635 Update m1 arm64 audio bitexactness tests hashes
Follow up for https://webrtc-review.googlesource.com/c/src/+/232061/5. Updated mac M1 tests that was missed because they are not part of CQ

Bug: b/199885455
Change-Id: I77618ac2869ba601f322857f4391b63220d20252
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232220
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35021}
2021-09-17 08:59:05 +00:00
landrey
e742d8c163 Updae bitexactness tests to match new canonical results
This CL has to be submitted together with chromium roll

Roll chromium_revision 48501b3f18..a098e1265b (917742:921682)

Change log: 48501b3f18..a098e1265b
Full diff: 48501b3f18..a098e1265b

Changed dependencies
* src/base: bdbd6f899c..ecf6ff89bf
* src/build: f90eed6a5e..fabb3638a7
* src/buildtools/third_party/libc++abi/trunk: 7de86cbf37..a5b6419452
* src/buildtools/third_party/libunwind/trunk: edf77b2d2d..44ea7aba6a
* src/ios: 1b17fd57e6..e8d5d843cf
* src/testing: 59835db543..7adcb6a6bf
* src/third_party: a299c990bc..21d7875bec
* src/third_party/android_deps/libs/com_google_auto_auto_common: version:2@0.10.cr0..version:2@1.1.2.cr0
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_annotation: version:2@2.7.1.cr0..version:2@2.9.0.cr0
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_annotations: version:2@2.7.1.cr0..version:2@2.9.0.cr0
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_check_api: version:2@2.7.1.cr0..version:2@2.9.0.cr0
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_core: version:2@2.7.1.cr0..version:2@2.9.0.cr0
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations: version:2@2.7.1.cr0..version:2@2.9.0.cr0
* src/third_party/android_deps/libs/com_google_guava_guava: version:2@30.1-jre.cr0..version:2@30.1.1-jre.cr0
* src/third_party/androidx: TnotTDnWGUJDh0mSOMrgnIwzbfWFiwo2NTtr2SlUJ0MC..QRXHawrfyCC8nr_u3VCPoilYsqHO01yv1EiduoQUPcgC
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/dddb60eb97..27a3328a37
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/d9a9ebbe89..6b072fac88
* src/third_party/depot_tools: 789dfc223b..9c67b23020
* src/third_party/freetype/src: 7482c98f15..5b626281f1
* src/third_party/googletest/src: 955c7f837e..159c9ad23e
* src/third_party/harfbuzz-ng/src: 280366ba6a..6602cbb706
* src/third_party/icu: ece15d049f..3f443830bd
* src/third_party/libvpx/source/libvpx: 15a75b4530..65a1751e5b
* src/third_party/libyuv: 49ebc996aa..0896c34873
* src/third_party/perfetto: 8420673b4c..de98afcd4a
* src/third_party/r8: dvPOJ_8iAF6OHGO79d86VbJjyKj7Xn0SFxlVVC9LHdcC..j4P6kTwiJeMkYRbaOqRCB-ZrYyISP0NrcyNNAd8MRM0C
* src/third_party/usrsctp/usrsctplib: bdf3dd3f28..62d7d0c928
* src/tools: e3721e5cf9..a27c09f45b
* src/tools/luci-go: git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31..git_revision:dc21267f89df3981e809fe9566591d6916ae758b
* src/tools/luci-go: git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31..git_revision:dc21267f89df3981e809fe9566591d6916ae758b
* src/tools/luci-go: git_revision:7f42370cb3b75398bdb9ae0aabe215a70d40cd31..git_revision:dc21267f89df3981e809fe9566591d6916ae758b
Added dependency
* src/third_party/android_deps/libs/org_checkerframework_dataflow_errorprone
Removed dependency
* src/third_party/android_deps/libs/org_checkerframework_dataflow_shaded
DEPS diff: 48501b3f18..a098e1265b/DEPS

Clang version changed llvmorg-14-init-2175-g945cde8b:llvmorg-14-init-3710-gd11a0c5d
Details: 48501b3f18..a098e1265b/tools/clang/scripts/update.py

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

Bug: b/199885455
Change-Id: I64329c57949e9233f5cf65167f012db0637fe4fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232061
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35008}
2021-09-15 18:38:41 +00:00
Philipp Hancke
1061686107 red: handle opus dtx 400ms timestamp gap
by not encoding redundancy. The timestamp gap of 400ms means a
rtp timestamp difference of 19200 which would overflow the 14 bit
RED timestamp difference field.

To test in Chrome, go to
  https://webrtc.github.io/samples/src/content/peerconnection/audio/
set `useDtx = true` in the console and be very quiet.

BUG=webrtc:13182,webrtc:11640

Change-Id: I1cedc7d846ac7ae821bb7cb5c0f37a17511ac727
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231940
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35005}
2021-09-15 15:09:28 +00:00
Ivo Creusen
bc503c95b5 Remove support for nack threshold.
The nack threshold feature is unlikely to provide any value, since
reordered packets are rare. This CL also removes the factory method
from the NackTracker class, since it did not add much value.

Bug: webrtc:10178
Change-Id: Ib6bece4a2d9f95bd4298799aaa15627f5c014b61
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231953
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34993}
2021-09-14 16:51:17 +00:00
Jakob Ivarsson
018cd3d6fc Avoid NACKing after DTX.
This is done by not adding missing packets to the NACK list if the number of samples per packet is too large.

Bug: webrtc:10178
Change-Id: If46398d6d05ea35f30d7028040d3b808559e950b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231841
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34984}
2021-09-13 16:31:42 +00:00
Philipp Hancke
7a4ab1a063 red: handle 0-redundancy encoding case
which is a "degenerated" case that just adds a one-byte header.

BUG=webrtc:11640

Change-Id: I173f4cb56270e0090219e4450b036bbe1b51756a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231696
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34976}
2021-09-13 07:23:11 +00:00
Ivo Creusen
3a9640a5aa Improve nacking logic
Requesting nacks in more cases allows the delay adaptation to better
predict if it's worth it to increase the jitter buffer delay to wait for
the nacked packets to arrive.

Bug: webrtc:10178
Change-Id: I46adb76c013dbb8df0b99eb3f7a398f8f21c2bf6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231648
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34970}
2021-09-10 14:21:22 +00:00
Jakob Ivarsson
552c83171b Update nack tracker when receiving empty packets.
Bug: webrtc:7611
Change-Id: Ied50829f245ea99f8d737cffdf9a3d646de3fbaf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231641
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34958}
2021-09-09 10:40:35 +00:00
Jakob Ivarsson
58ed02eae3 Improve adaptation to reordered packets in delay manager.
This is done by adding a reorder optimizer that estimates the probability of receiving reordered packets.

The optimal delay is decided by balancing the cost of increasing the delay against the probability of missing a reordered packet, resulting in a loss. This balance is decided using the `ms_per_loss_percent` parameter.

The usage and parameters can be controlled via field trial.

Bug: webrtc:10178
Change-Id: Ic484df0412af35610e74b3a6070f2bac7a926a63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231541
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34954}
2021-09-08 16:41:27 +00:00
Jakob Ivarsson
74158ff761 Refactor delay manager.
Split out `RelativeArrivalDelayTracker` and `DelayOptimizer` logic.

This is in preparation for adding another `DelayOptimizer` specialized in handling reordered packets.

Bug: webrtc:10178
Change-Id: Id3c1746d91980b171fa524f9b2b71cf11fc75f64
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231224
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34938}
2021-09-07 13:45:47 +00:00
Jakob Ivarsson
7cca016721 Hard code rtx handling option in NetEq.
This allows NetEq to adapt to late reordered packets which are common when using retransmissions.

Remaining cleanup of the plumbing from WebRTC API will be done in a follow-up cl.

Bug: webrtc:10178
Change-Id: Ia9911eaafdabd3b69441dc089116d79e24f1b2b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231002
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34898}
2021-09-01 18:18:59 +00:00
Jakob Ivarsson
25edb62a94 Calculate relative arrival delay for reordered packets.
This changes behavior slightly but results in a better delay estimate and cleaner code.

Bug: webrtc:10178
Change-Id: If150258bc1ea58149940f17c5660733ff61159c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/230740
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34883}
2021-08-31 12:26:41 +00:00
Minyue Li
1039392209 Add a unittest to NetEq StatisticsCalculator for discarded packets counter.
Bug: webrtc:8199
Change-Id: I32127af1ae6692717f28dbf2d820cd67c0b6a66a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229300
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34808}
2021-08-19 17:17:37 +00:00
Minyue Li
57d13105e5 A test to verify counter on discarded packet upon reordering.
Bug: webrtc:8199
Change-Id: Ia8c545e4ae0ff98c22031b633d1bca4ba58e9e7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229380
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34804}
2021-08-19 14:13:30 +00:00
Philipp Hancke
9367cff59b red: change default redundancy level to 1
BUG=webrtc:11640

Change-Id: Ide66ae4803349ebb908d372e811efd9ef93d51e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228424
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34720}
2021-08-11 12:59:13 +00:00
Philipp Hancke
e9655736e5 Reland "red: remove special-casing of no-redundancy"
This is a reland of 320c57b7c6

Original change's description:
> red: remove special-casing of no-redundancy
>
> removes the special-casing of not sending a RED header when there is no redundant payload.
> This avoids switching back and forth between the primary and the red payload format (primarily at the start of the connection).
>
> BUG=webrtc:11640
>
> Change-Id: I8e0044bef1ed7c4168d9527645522392db2ed068
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220932
> Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
> Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
> Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34703}

Bug: webrtc:11640
Change-Id: I5e5687be575183ee16d74df4a8170e4fedad739f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228422
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34713}
2021-08-11 08:26:59 +00:00
Andrey Logvin
1118ebac0a Revert "red: remove special-casing of no-redundancy"
This reverts commit 320c57b7c6.

Reason for revert:
Breaks CI tests: https://ci.chromium.org/ui/p/webrtc/builders/ci/Linux32%20Release/27236/overview
All CI tests: https://ci.chromium.org/p/webrtc/g/ci/console
Error is of the following type:
```
../../modules/audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc:195: Failure
Expected equality of these values:
  1u
    Which is: 1
  encoded_info_.encoded_bytes
    Which is: 2
Stack trace:
  0x56b298d9: webrtc::AudioEncoderCopyRedTest_CheckPayloadSizesSingle_Test::TestBody()
  0x572fe317: testing::internal::HandleExceptionsInMethodIfSupported<>()
  0x572fe1d4: testing::Test::Run()
  0x572ff2ee: testing::TestInfo::Run()
```

Original change's description:
> red: remove special-casing of no-redundancy
>
> removes the special-casing of not sending a RED header when there is no redundant payload.
> This avoids switching back and forth between the primary and the red payload format (primarily at the start of the connection).
>
> BUG=webrtc:11640
>
> Change-Id: I8e0044bef1ed7c4168d9527645522392db2ed068
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220932
> Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
> Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
> Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34703}

TBR=henrik.lundin@webrtc.org,devicentepena@webrtc.org,minyue@webrtc.org,philipp.hancke@googlemail.com,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: Ide409232720df32b24022f99228f3b6ae81f06fe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11640
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228421
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34707}
2021-08-10 18:09:16 +00:00
Philipp Hancke
320c57b7c6 red: remove special-casing of no-redundancy
removes the special-casing of not sending a RED header when there is no redundant payload.
This avoids switching back and forth between the primary and the red payload format (primarily at the start of the connection).

BUG=webrtc:11640

Change-Id: I8e0044bef1ed7c4168d9527645522392db2ed068
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220932
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34703}
2021-08-10 16:56:05 +00:00
Philipp Hancke
43f25e36f7 red: fix redundancy shift and add tests
fixes an incorrect redundancy shift and add tests that would have caught this bug.

BUG=webrtc:11640

Change-Id: I6fe2fb21587fffc5fee4d403ac898e12d525a1cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224120
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34702}
2021-08-10 16:51:06 +00:00
landrey
3abd10889f Fix define if chain in audio decoder unittest
Follow up https://webrtc-review.googlesource.com/c/src/+/228247. Turned out "#elif defined(WEBRTC_MAC) && defined(WEBRTC_ARCH_ARM64)  // M1 Mac" branch was unreachable

Bug: webrtc:13053
Change-Id: Icf1aa5147347a1fad0dce8cca893bb3c598f658e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228381
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34699}
2021-08-10 13:00:33 +00:00
landrey
8c654aa059 Update bit exactness tests to match changes
Follow up for https://webrtc-review.googlesource.com/c/src/+/227773 , updating M1 checksums that were not updated in the previous CL.

Example M1 failed run: https://ci.chromium.org/ui/p/webrtc/builders/ci/MacARM64%20M1%20Release/401/overview

Bug: webrtc:13053
Change-Id: I111d1d3c4bf5828ee499f20799b527ca916d77e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228247
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34697}
2021-08-10 12:19:13 +00:00
Artem Titov
cfea2182f8 Use backticks not vertical bars to denote variables in comments
Bug: webrtc:12338
Change-Id: I89c8b3a328d04203177522cbdfd9e606fd4bce4c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/228246
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34696}
2021-08-10 10:40:03 +00:00
Danil Chapovalov
5ce7d14f81 Delete legacy rtp header parser as no longer used
Bug: None
Change-Id: I3c532eee7f2d9e5295874dd538730625c8d423ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227086
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Minyue Li <minyue@google.com>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34676}
2021-08-09 12:14:52 +00:00
Artem Titov
ee96675eda Reland "Roll chromium_revision de0d050e64..42d795c24f (908789:908899)"
This is a reland of e369928e04

Original change's description:
> Roll chromium_revision de0d050e64..42d795c24f (908789:908899)
>
> Change log: de0d050e64..42d795c24f
> Full diff: de0d050e64..42d795c24f
>
> Changed dependencies
> * src/base: f14f1b7600..6551b66fbf
> * src/build: e360729c13..496f4dc82b
> * src/ios: 2965e1969a..fda9d90178
> * src/testing: 36299f559a..cb835b4820
> * src/third_party: e99cff4446..aec4ec11c2
> * src/third_party/androidx: 6YnvOFZqQbSfmq9Bknb9CSKuND84c-TqnEATwNlvhqwC..iS9uLbt1ks96lnB9FgzCbsDit0AaQS7PqWyWdVJ3mggC
> * src/third_party/depot_tools: 0a4dd4181a..cc487710bb
> * src/third_party/perfetto: 00e6f338d0..7d0822e5b1
> * src/tools: 5219d6859a..667c51bbca
> DEPS diff: de0d050e64..42d795c24f/DEPS
>
> Clang version changed llvmorg-13-init-15561-gf98ed74f:llvmorg-14-init-591-g7d9d926a
> Details: de0d050e64..42d795c24f/tools/clang/scripts/update.py
>
> BUG=None
>
> Change-Id: Ibc203c4808885594a4316d8ce0e0a82bacebe51b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227770
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34658}

Bug: None
Change-Id: Ibc843ef6e4e50d9d62b6b3550d5cde6eaebc02e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227773
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34662}
2021-08-06 13:51:07 +00:00
Artem Titov
d937f50e20 Revert "Roll chromium_revision de0d050e64..42d795c24f (908789:908899)"
This reverts commit e369928e04.

Reason for revert: Breaks downstream project

Original change's description:
> Roll chromium_revision de0d050e64..42d795c24f (908789:908899)
>
> Change log: de0d050e64..42d795c24f
> Full diff: de0d050e64..42d795c24f
>
> Changed dependencies
> * src/base: f14f1b7600..6551b66fbf
> * src/build: e360729c13..496f4dc82b
> * src/ios: 2965e1969a..fda9d90178
> * src/testing: 36299f559a..cb835b4820
> * src/third_party: e99cff4446..aec4ec11c2
> * src/third_party/androidx: 6YnvOFZqQbSfmq9Bknb9CSKuND84c-TqnEATwNlvhqwC..iS9uLbt1ks96lnB9FgzCbsDit0AaQS7PqWyWdVJ3mggC
> * src/third_party/depot_tools: 0a4dd4181a..cc487710bb
> * src/third_party/perfetto: 00e6f338d0..7d0822e5b1
> * src/tools: 5219d6859a..667c51bbca
> DEPS diff: de0d050e64..42d795c24f/DEPS
>
> Clang version changed llvmorg-13-init-15561-gf98ed74f:llvmorg-14-init-591-g7d9d926a
> Details: de0d050e64..42d795c24f/tools/clang/scripts/update.py
>
> BUG=None
>
> Change-Id: Ibc203c4808885594a4316d8ce0e0a82bacebe51b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227770
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34658}

TBR=mbonadei@webrtc.org,ivoc@webrtc.org,titovartem@webrtc.org,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: Id01cdb6a6344d7d08ee38fb152cb209a4705aa39
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227772
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34659}
2021-08-06 11:07:58 +00:00
Artem Titov
e369928e04 Roll chromium_revision de0d050e64..42d795c24f (908789:908899)
Change log: de0d050e64..42d795c24f
Full diff: de0d050e64..42d795c24f

Changed dependencies
* src/base: f14f1b7600..6551b66fbf
* src/build: e360729c13..496f4dc82b
* src/ios: 2965e1969a..fda9d90178
* src/testing: 36299f559a..cb835b4820
* src/third_party: e99cff4446..aec4ec11c2
* src/third_party/androidx: 6YnvOFZqQbSfmq9Bknb9CSKuND84c-TqnEATwNlvhqwC..iS9uLbt1ks96lnB9FgzCbsDit0AaQS7PqWyWdVJ3mggC
* src/third_party/depot_tools: 0a4dd4181a..cc487710bb
* src/third_party/perfetto: 00e6f338d0..7d0822e5b1
* src/tools: 5219d6859a..667c51bbca
DEPS diff: de0d050e64..42d795c24f/DEPS

Clang version changed llvmorg-13-init-15561-gf98ed74f:llvmorg-14-init-591-g7d9d926a
Details: de0d050e64..42d795c24f/tools/clang/scripts/update.py

BUG=None

Change-Id: Ibc203c4808885594a4316d8ce0e0a82bacebe51b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227770
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34658}
2021-08-06 10:51:58 +00:00
Philipp Hancke
deac4dea4f red: copy audio level from main packet for recovery packet
fill the audio level of the recovery packets from the main packet.
While not exact, this should be close enough. Without this,
the audio level in getStats() will be filled but the audio level
in getSynchronizationSources() will be empty.

In chrome this is easy to test, the audio level graph on
  https://webrtc.github.io/samples/src/content/peerconnection/audio/
will be empty all the time prior to this fix.

BUG=webrtc:11640

Change-Id: Ia1e61fd1852445239021a76d08032120a92d83aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226840
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34635}
2021-08-03 14:26:02 +00:00
Artem Titov
d00ce747c7 Use backticks not vertical bars to denote variables in comments for /modules/audio_coding
Bug: webrtc:12338
Change-Id: I02613d9fca45d00e2477f334b7a0416e7912e26b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227037
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34621}
2021-08-02 10:45:40 +00:00
Peter Kasting
55ec1a43bb Fix some instances of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: I1ef3c8fd1f8e2bbf980d5d5217257e919f4564c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226961
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34579}
2021-07-28 02:08:30 +00:00
Tony Herre
b0ed12099f Update links to point at main branch
As part of go/coil update code search links to not point to the
"master" branch.

Bug: chromium:1226942
Change-Id: I0ae9e84ecc660f789a69fe0b226f93bbc39a8a66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226081
Commit-Queue: Tony Herre <toprice@chromium.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34531}
2021-07-22 16:41:26 +00:00
Mirko Bonadei
190244bb59 Remove all #include <assert.h>/<cassert> and usage in Obj-C code.
This CL completes the removal of assert() and relative headers from
the codebase (excluded
//examples/objc/AppRTCMobile/third_party/SocketRocket which is in a
third_party sub-directory).

Bug: webrtc:6779
Change-Id: I93ed57168d2c0e011626873d66529488c5f484f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225546
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34528}
2021-07-22 14:00:26 +00:00
Minyue Li
28a2c63526 Adding packetsDiscarded to RTCReceivedRtpStreamStats.
Bug: webrtc:12532, webrtc:7065, webrtc:8199
Change-Id: I3ba62ec65e5660e98787f629aec3ee7a0889207a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225261
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34468}
2021-07-13 20:34:45 +00:00
Mirko Bonadei
25ab3228f3 Replace assert() with RTC_DCHECK().
CL partially auto-generated with:

git grep -l "\bassert(" | grep "\.[c|h]" | \
  xargs sed -i 's/\bassert(/RTC_DCHECK(/g'

And with:

git grep -l "RTC_DCHECK(false)" |  \
  xargs sed -i 's/RTC_DCHECK(false)/RTC_NOTREACHED()/g'

With some manual changes to include "rtc_base/checks.h" where
needed.

A follow-up CL will remove assert() from Obj-C code as well
and remove the #include of <assert.h>.

The choice to replace with RTC_DCHECK is because assert()
is because RTC_DCHECK has similar behavior as assert()
based on NDEBUG.

This CL also contains manual changes to switch from
basic RTC_DCHECK to other (preferred) versions like
RTC_DCHECK_GT (and similar).

Bug: webrtc:6779
Change-Id: I00bed8886e03d685a2f42324e34aef2c9b7a63b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224846
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34442}
2021-07-09 07:49:43 +00:00
Mirko Bonadei
6d92fcd364 Roll chromium_revision ba5ff58b6c..94a136c73d (898571:898790)
This CL also includes updates to bit-exactness tests that started
to fail on linux_x86 after the update of clang that is part of
the Chromium Roll CL.

Change log: ba5ff58b6c..94a136c73d
Full diff: ba5ff58b6c..94a136c73d

Changed dependencies
* src/base: ecfc5939e4..da70c03d5c
* src/build: 6f773f2fd2..b11e004f56
* src/buildtools/linux64: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062
* src/buildtools/mac: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062
* src/buildtools/win: git_revision:4d207c94eab41f09c9a8505eb47f3d2919e47943..git_revision:31f2bba8aafa8015ca5761100a21f17c2d741062
* src/ios: 837dc401ee..2d44844c9e
* src/testing: 537028df55..7ec8dcae8b
* src/third_party: ddfda49030..326e9a8fc7
* src/third_party/perfetto: f4ffdc1c0d..1f54e94bc3
* src/tools: b3f11721ed..0587b769f6
* src/tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b
* src/tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b
* src/tools/luci-go: git_revision:40f945205c8670537d14901c310374774f589254..git_revision:a5505c14c78e1a27562164fb55f7d2d8190a0a9b
DEPS diff: ba5ff58b6c..94a136c73d/DEPS

Clang version changed llvmorg-13-init-14086-ge1b8fde1:llvmorg-13-init-14563-gbcaf57ca
Details: ba5ff58b6c..94a136c73d/tools/clang/scripts/update.py

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

Change-Id: Ibbbb25952bc6f33f418fec37b189c0068d3a6928
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225141
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34423}
2021-07-06 17:04:38 +00:00
Niels Möller
6832ee25c0 Delete unneeded references to string_encode.h
Bug: webrtc:6424
Change-Id: Ia521bcdfa8b887447ca9ed6f9d89f3ddb0e1dd15
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/223665
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34400}
2021-07-01 09:35:23 +00:00
Christoffer Jansson
2ae4ed223a Fix the last checksum
This should be the last checksum CL for audio tests.

Bug: webrtc:12882
Change-Id: Ie7033434e920a2f923c521cca00d1c270c406370
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224086
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/master@{#34391}
2021-06-30 07:32:00 +00:00
Christoffer Jansson
46d002cb36 Add M1 Mac expected results for AudioDecoderIsacFixTest
Bug: webrtc:12882
Change-Id: I56c1fcdd85fab88924b9a9f53a1a20485633f840
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/223660
Commit-Queue: Christoffer Jansson <jansson@google.com>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34389}
2021-06-30 07:03:52 +00:00
Christoffer Jansson
7208457e80 Same length for all ARM64 platforms
Update more audio checksums for M1

Bug: webrtc:12882
Change-Id: I527a43a01afe2b2e4af137852174159bf3111652
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224081
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/master@{#34372}
2021-06-28 11:18:40 +00:00
Christoffer Jansson
2b3a10e62d Add MAC arm64 platform and update checksums for acm unittest
Bug: webrtc:12882
Change-Id: Ie820746dd66d28a2a57c2e2a3b9f12b4c43f56a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/223668
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/master@{#34370}
2021-06-28 08:18:07 +00:00
Jared Siskin
f2ed401679 Fix unscaled timestamps passed to nack_tracker
If timestamp_scaler_ is used, then rtp_header.timestamp, passed to UpdateLastDecodedPacket, will advance at a different rate than the scaled timestamp packet->timestamp, passed to UpdateLastDecodedPacket.

NackTracker::EstimateTimestamp uses timestamp_last_received_rtp_, and NackTracker::TimeToPlay uses timestamp_last_decoded_rtp_.

This difference causes TimeToPlay to continuously increase to huge values, so that every missing packet will be returned from GetNackList, even if RTT > real time to play.

Change-Id: Ie6ca347972edea98a202c9cdd26c6ab3f45a73c4
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222841
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34361}
2021-06-23 08:41:50 +00:00
Ivo Creusen
c6d76489e3 Add jakobi to modules/audio_coding OWNERS
Bug: None
Change-Id: I299f38126dc1bb419448dcf6f61d3d0323e33885
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/223040
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34331}
2021-06-18 11:52:58 +00:00
Danil Chapovalov
b4100ad06a Avoid using legacy rtp parser in neteq test::Packet
Bug: None
Change-Id: I9184954d9c99f0a34ae335d03843171864071e5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222648
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34316}
2021-06-17 08:38:14 +00:00
Tommi
3cc68ec32e Report stats from ChannelReceive::GetAudioFrameWithInfo at 1Hz.
This is a change from the previous 100Hz frequency.
Also changing the  locks slightly in AcmReceiver so that grabbing the
neteq lock right after we've let it go, isn't necessary inside of
AcmReceiver::GetAudio and also to avoid grabbing the neteq lock while
holding the AcmReceiver lock.

Bug: webrtc:12868
Change-Id: If6ee35f3dca20eb5bdbc615123aa099ccecf57c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221371
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34258}
2021-06-09 18:41:47 +00:00
Danil Chapovalov
36b7d10a1f Delete unused test method in neteq that uses RtcpStatistics
Bug: webrtc:10678
Change-Id: I759b635037ab7d2d113fbf8359cdbc46e7712ea5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218843
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34018}
2021-05-17 12:43:44 +00:00
Jesús de Vicente Peña
d674ec77af Not dropping the refresh DTX packets but substituting them by 1 byte packets.
Bug: webrtc:12380
Change-Id: I27029c591ac2555d6ae61b706adcf97c9498a9fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217880
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33983}
2021-05-11 19:47:34 +00:00
Philipp Hancke
b1606a3352 red: make amount of redundancy controllable via field trial parameter
BUG=webrtc:11640

Change-Id: If46e3e6c84fa8781affaa400028b73571dae9108
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217384
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33975}
2021-05-11 08:36:14 +00:00
Markus Handell
ad5037b4a8 Reland "Refactor the PlatformThread API."
This reverts commit 793bac569f.

Reason for revert: rare compilation error fixed

Original change's description:
> Revert "Refactor the PlatformThread API."
>
> This reverts commit c89fdd716c.
>
> Reason for revert: Causes rare compilation error on win-libfuzzer-asan trybot.
> See https://ci.chromium.org/p/chromium/builders/try/win-libfuzzer-asan-rel/713745?
>
> Original change's description:
> > Refactor the PlatformThread API.
> >
> > PlatformThread's API is using old style function pointers, causes
> > casting, is unintuitive and forces artificial call sequences, and
> > is additionally possible to misuse in release mode.
> >
> > Fix this by an API face lift:
> > 1. The class is turned into a handle, which can be empty.
> > 2. The only way of getting a non-empty PlatformThread is by calling
> > SpawnJoinable or SpawnDetached, clearly conveying the semantics to the
> > code reader.
> > 3. Handles can be Finalized, which works differently for joinable and
> > detached threads:
> >   a) Handles for detached threads are simply closed where applicable.
> >   b) Joinable threads are joined before handles are closed.
> > 4. The destructor finalizes handles. No explicit call is needed.
> >
> > Fixed: webrtc:12727
> > Change-Id: Id00a0464edf4fc9e552b6a1fbb5d2e1280e88811
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215075
> > Commit-Queue: Markus Handell <handellm@webrtc.org>
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Reviewed-by: Tommi <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#33923}
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> TBR=handellm@webrtc.org
>
> Bug: webrtc:12727
> Change-Id: Ic0146be8866f6dd3ad9c364fb8646650b8e07419
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217583
> Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
> Reviewed-by: Markus Handell <handellm@webrtc.org>
> Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33936}

# Not skipping CQ checks because this is a reland.

Bug: webrtc:12727
Change-Id: Ifd6f44eac72fed84474277a1be03eb84d2f4376e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217881
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33950}
2021-05-07 14:14:43 +00:00
Guido Urdaneta
793bac569f Revert "Refactor the PlatformThread API."
This reverts commit c89fdd716c.

Reason for revert: Causes rare compilation error on win-libfuzzer-asan trybot.
See https://ci.chromium.org/p/chromium/builders/try/win-libfuzzer-asan-rel/713745?

Original change's description:
> Refactor the PlatformThread API.
>
> PlatformThread's API is using old style function pointers, causes
> casting, is unintuitive and forces artificial call sequences, and
> is additionally possible to misuse in release mode.
>
> Fix this by an API face lift:
> 1. The class is turned into a handle, which can be empty.
> 2. The only way of getting a non-empty PlatformThread is by calling
> SpawnJoinable or SpawnDetached, clearly conveying the semantics to the
> code reader.
> 3. Handles can be Finalized, which works differently for joinable and
> detached threads:
>   a) Handles for detached threads are simply closed where applicable.
>   b) Joinable threads are joined before handles are closed.
> 4. The destructor finalizes handles. No explicit call is needed.
>
> Fixed: webrtc:12727
> Change-Id: Id00a0464edf4fc9e552b6a1fbb5d2e1280e88811
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215075
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33923}

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

TBR=handellm@webrtc.org

Bug: webrtc:12727
Change-Id: Ic0146be8866f6dd3ad9c364fb8646650b8e07419
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/217583
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33936}
2021-05-06 14:22:57 +00:00
Markus Handell
c89fdd716c Refactor the PlatformThread API.
PlatformThread's API is using old style function pointers, causes
casting, is unintuitive and forces artificial call sequences, and
is additionally possible to misuse in release mode.

Fix this by an API face lift:
1. The class is turned into a handle, which can be empty.
2. The only way of getting a non-empty PlatformThread is by calling
SpawnJoinable or SpawnDetached, clearly conveying the semantics to the
code reader.
3. Handles can be Finalized, which works differently for joinable and
detached threads:
  a) Handles for detached threads are simply closed where applicable.
  b) Joinable threads are joined before handles are closed.
4. The destructor finalizes handles. No explicit call is needed.

Fixed: webrtc:12727
Change-Id: Id00a0464edf4fc9e552b6a1fbb5d2e1280e88811
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215075
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33923}
2021-05-05 09:59:07 +00:00
Johannes Kron
f7de74c58c Use Timestamp to represent packet receive timestamps
Before this CL, timestamps of received packets were rounded
to the nearest millisecond and stored as int64_t. Due to the
rounding it sometimes happened that timestamps later in the
pipeline that are not rounded seem to occur even before the
video frame was received.

Change-Id: I92d8f3540b23baae2d4a1dc6a7cb3f58bcdaad18
Bug: webrtc:12722
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216398
Reviewed-by: Chen Xing <chxg@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33916}
2021-05-04 13:16:54 +00:00
Philipp Hancke
b3bb13c572 red: make red encoder more generic
potentially allowing distances of more than 2.

BUG=webrtc:11640

Change-Id: I0d8c831218285d57cf07f0a8e5829810afd4ab3f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188383
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33913}
2021-05-04 10:51:36 +00:00
Andrey Logvin
1a5f36b9b9 Make isac_fix_test an rtc_test
NOPRESUBMIT=true

Bug: None
Change-Id: Idc23110859a3a0a11c2635ac3bf74560c0b985b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/216390
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33865}
2021-04-28 15:06:11 +00:00
Tommi
87f7090fd9 Replace more instances of rtc::RefCountedObject with make_ref_counted.
This is essentially replacing `new rtc::RefCountedObject` with
`rtc::make_ref_counted` in many files. In a couple of places I
made minor tweaks to make things compile such as adding parenthesis
when they were missing.

Bug: webrtc:12701
Change-Id: I3828dbf3ee0eb0232f3a47067474484ac2f4aed2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215973
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33852}
2021-04-27 17:01:59 +00:00
Artem Titov
dbcf8afbcd Fix documentation owners formating
Bug: None
Change-Id: I8f52c08d14b826192830b395f8e63e24809224f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215972
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33817}
2021-04-23 11:07:28 +00:00
Markus Handell
97c4458c8f PlatformThread: add support for detached threads.
The change introduces support for detachable PlatformThreads, for which
the Stop() call doesn't wait until the thread has finished executing.

The change also introduces rtc::ThreadAttributes that carries priority
and detachability thread attributes. It additionally refactors all
known use to use the new semantics.

Bug: b:181572711, webrtc:12659
Change-Id: Id96e87c2a0dafabc8047767d241fd5da4505d14c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214704
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33796}
2021-04-21 07:44:31 +00:00
Yura Yaroshevich
d46a174f0c Expose adaptive_ptime from iOS SDK.
Bug: None
Change-Id: I48fd0937f51dc972b3eccd66f99ae80378e32fe1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214968
Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33766}
2021-04-18 21:53:32 +00:00
Peter Thatcher
13cb722ac9
Update to WebRTC 4389 (e7d9f74)
Contains changes for M86 (4240), M87 (4280), M88 (4324), and M89 (4389).
2021-04-16 13:26:31 -07:00
Jakob Ivarsson
8181b4f1e0 Add conceptual documentation for NetEq.
Many things are omitted in this doc and it can definitely be improved,
but I hope it captures the most important parts.

Bug: webrtc:12568
Change-Id: I13097d633ca19cecc9dd43bdb777b0ca48f151dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215142
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33724}
2021-04-14 09:17:05 +00:00
Minyue Li
0498519844 Add g3doc for audio coding module.
Bug: webrtc:12567
Change-Id: I553ba45fe9d95f3471b2134c3631a74ed600dc3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215079
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33720}
2021-04-14 07:45:56 +00:00
Philipp Hancke
883fea1548 red: pass through calls to underlying encoder
BUG=webrtc:11640

Change-Id: I87e6f7c91c80d61e64127574485bbdcaedc8120c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181063
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33595}
2021-03-30 13:51:51 +00:00
Jakob Ivarsson
213dc2cfc5 Temporarily disable Opus decode test.
Bug: webrtc:12518, webrtc:12543
Change-Id: I5481ee96fe2a3f9fd549e17cd9424441223a8b63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211245
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33417}
2021-03-10 12:47:18 +00:00
Jakob Ivarsson
854d59f750 Temporarily disable remaining Opus bit exactness tests.
Bug: webrtc:12518
Change-Id: Ia006c4258404a6e124101cd4ebfd399008f82227
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209645
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33383}
2021-03-04 13:02:17 +00:00
Jakob Ivarsson
e7a55813f9 Temporarily disable some Opus bit exactness tests.
This is required to be able to update the Opus version and will be
rolled back after.

Bug: webrtc:12518
Change-Id: Icc649039787db44bd55a0dc8e5ba4089df3a9566
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209363
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33375}
2021-03-03 15:30:46 +00:00
Danil Chapovalov
e904161cec Replace RTC_DEPRECATED with ABSL_DEPRECATED
This remove webrtc-specific macro that has no reason to be webrtc specific
ABSL_DEPRECATED takes a message parameter encouraging to write text how class or function is deprecated.

Bug: webrtc:12484
Change-Id: I89f1398f91dacadc37f7db469dcd985e3724e444
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208282
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33314}
2021-02-22 12:53:23 +00:00
Pablo Barrera González
ff0e01f689 Implement audio_interruption metric for kCodecPlc
Audio interruption metric is not implemented for codecs doing their own PLC.

R=ivoc@webrtc.org, jakobi@webrtc.org

Bug: b/177523033 webrtc:12456
Change-Id: I0aca6fa5c0ff617e76ee1e4ed8d95703c7097223
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206561
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Pablo Barrera González <barrerap@google.com>
Cr-Commit-Position: refs/heads/master@{#33229}
2021-02-11 09:37:24 +00:00
Ivo Creusen
1142e0bfb2 Avoid crashing on error code 6450 in isac.
Isac is not able to effectively compress all types of signals. This
should be extremely rare with real audio signals, but mostly happens
with artificially created test signals. When this happens, we should
avoid crashing and just carry on.

Bug: chromium:1170167
Change-Id: I97b551fbbdcccb0186f3e6497991ac52d2301f68
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205626
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33193}
2021-02-08 16:16:55 +00:00
Jesús de Vicente Peña
3b9abd8dee Avoiding the noise pumping during DTX regions by just forwarding the refresh DTX packets that decrease the comfort noise level at the decoder.
Bug: webrtc:12380
Change-Id: I60e4684150cb4880224f402a9bf42a72811863b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202920
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33174}
2021-02-05 10:05:25 +00:00
Jakob Ivarsson
e7ded686d5 Fix integer overflow.
Bug: chromium:1172583
Change-Id: I72c6c07f6f5702311c1a73eb4551e92a34c87e47
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/205007
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33127}
2021-02-01 17:37:19 +00:00
Andrey Logvin
e7c79fd3d6 Remove from chromium build targets that are not compatible with it.
We need to be able build chromium with rtc_include_tests = true. It
reveals a lot of targets that are not compatible with chromium but
aren't marked so.

`rtc_include_tests=true` has been considered a way to disable targets for the Chromium build, causing an overload on rtc_include_tests while the meaning of the two GN args (rtc_include_tests and build_with_chromium) should be kept separated.

Bug: webrtc:12404
Change-Id: I2f72825445916eae7c20ef9338672d6a07a9b9ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203890
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33124}
2021-02-01 13:46:19 +00:00
Andrey Logvin
7864600a6e Add absl_deps field for rtc_test and rtc_executable
To be able to build these targets in chromium we need to replace all abseil dependencies with "//third_party/abseil-cpp:absl".

Bug: webrtc:12404
Change-Id: Ie0f6af73f2abc73e5744520cfd9a6414e2f948e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202762
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33108}
2021-01-29 16:40:49 +00:00
Peter Thatcher
52871c1f98
Avoid CHECK when decreasing the ptime (#44) 2021-01-22 11:08:46 -08:00
Peter Thatcher
22490bf0b9
Fix configuration of ptime so it's not overridden in the future (#43) 2021-01-22 09:41:43 -08:00
Peter Thatcher
84775e0ab6
Allow control of min and max bitrates (#42) 2021-01-21 10:49:55 -08:00
Ivo Creusen
6031b74664 Implement a Neon optimized function to find the argmax element in an array.
Finding the array element with the largest argmax is a fairly common
operation, so it makes sense to have a Neon optimized version. The
implementation is done by first finding both the min and max value, and
then returning whichever has the largest argmax.

Bug: chromium:12355
Change-Id: I088bd4f7d469b2424a7265de10fffb42764567a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201622
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33052}
2021-01-21 13:42:34 +00:00
Peter Thatcher
f3ce387c3b
Make audio encoder changes more resilient to BWE changes (#41) 2021-01-20 16:58:31 -08:00
Peter Thatcher
1ff88760c8
Add PeerConnection::ConfigureAudioEncoders (#40)
Allows more dynamic, easy, and precise control of OPUS from PeerConnection.
2021-01-20 11:52:27 -08:00
Ivo Creusen
812c73cdc2 Another ilbc cross correlation fix
To determine the appropriate amount of shifting to prevent overflow in a
cross correlation, it is necessary to have the max value of both
sequences. However, only one was calculated in the ilbc code. This CL
calculates the max of the other sequence and correctly takes both into
account.

Bug: chromium:1161837
Change-Id: I3ba8eee0814bb5eda3769c0ce6caf2681c7525e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202253
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33043}
2021-01-20 12:50:20 +00:00
Jakob Ivarsson
d723da1943 Reland "Default enable delay adaptation during DTX."
This is a reland of 59bdcbe3c9

Original change's description:
> Default enable delay adaptation during DTX.
>
> Bug: webrtc:10736
> Change-Id: I5dcc431211c6c1c89b4d7d1ab07b23d63c0550d3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201385
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32999}

Bug: webrtc:10736
Change-Id: I8fc83e8b3fa6c122dcf706f0cae1b1a2e28555aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202033
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33004}
2021-01-15 18:26:35 +00:00
Jakob Ivarsson
79d9c373c5 Revert "Default enable delay adaptation during DTX."
This reverts commit 59bdcbe3c9.

Reason for revert: Breaks downstream test.

Original change's description:
> Default enable delay adaptation during DTX.
>
> Bug: webrtc:10736
> Change-Id: I5dcc431211c6c1c89b4d7d1ab07b23d63c0550d3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201385
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32999}

TBR=ivoc@webrtc.org,jakobi@webrtc.org

Change-Id: Iac9eb5e1b8dd76523d841135160dbf547ae153cf
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10736
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/202031
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33000}
2021-01-15 16:34:47 +00:00
Jakob Ivarsson
59bdcbe3c9 Default enable delay adaptation during DTX.
Bug: webrtc:10736
Change-Id: I5dcc431211c6c1c89b4d7d1ab07b23d63c0550d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201385
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32999}
2021-01-15 15:29:57 +00:00
Danil Chapovalov
a86cef7e2c Replace RTC_WARN_UNUSED_RESULT with ABSL_MUST_USE_RESULT in audio_coding
Bug: webrtc:12336
Change-Id: Icae229b957c2bfcc410788179a504c576cfde151
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201736
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32995}
2021-01-15 10:58:20 +00:00
Ivo Creusen
fe06dbdfa2 Correction for the calculation of the abs max value
The abs max of a 16 bit integer cannot be represented as a 16 bit integer, because abs(-2^16) is too large. To work around this, we can instead use the index of the max element, convert it to a 32-bit int and then take the absolute value.

Bug: chromium:1158070, chromium:1146835, chromium:1161837
Change-Id: If56177c55ec62b4bd578986a5deae38a91bbc821
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/198123
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32950}
2021-01-12 16:28:00 +00:00
Timothy Gu
3111783aa1 Organize iLBC headers as per style guide
Prior to this commit, most .c files in modules/audio_coding/codecs/ilbc
don't include their corresponding headers, nor do they order #includes
as per the Google Style Guide [1]. The former is especially harmful,
since in C it can silently allow the function signature to diverge from
its prototype, thus causing disaster at runtime.

This CL fixes both issues. In effect, this allows the common_audio and
modules/audio_coding:ilbc targets to be compiled with Clang's
-Wmissing-prototypes, though this CL does not add that change.

[1]: https://google.github.io/styleguide/cppguide.html#Names_and_Order_of_Includes

Bug: webrtc:12314
Change-Id: I8299968ed3cc86ff35d9de045072b846298043af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/198362
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Timothy Gu <timothygu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#32896}
2020-12-31 20:57:18 +00:00
Ivo Creusen
0ff2b4cd42 Fix for overflow in iLBC code.
The calculation of the necessary number of shifts is not correct, leading to an overflow.

Bug: chromium:1158070
Change-Id: I6545e9da46debf33ce169c33d762915fe755d606
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/197981
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32855}
2020-12-17 11:06:01 +00:00
Mirko Bonadei
5686e3457e Optimize calls to std::string::find() and friends for a single char.
The character literal overload is more efficient.

No-Presubmit: True
No-Try: True
Bug: None
Change-Id: Ice0b8478accd8a252ab81a0496d46c0f71db3db6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/197810
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32841}
2020-12-16 09:01:44 +00:00
Henrik Lundin
6c80aebd00 Remove kwiberg@webrtc.org from OWNERS files
Bug: none
Change-Id: I7f399449026de58dee28abcede2630269c6b95b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196505
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32774}
2020-12-04 15:11:26 +00:00
Ivo Creusen
f65a003f7f Fix for 3 NetEq fuzzer issues.
I was not able to reproduce chromium:1146676 locally, so the change in merge.cc is a speculative fix.

Bug: chromium:1146835, chromium:1146676, chromium:1137226
Change-Id: I14472ba5b41e58b2d5f27d9833249c14505af18f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194264
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32759}
2020-12-03 14:50:18 +00:00
Ivo Creusen
7b463c5f67 Add a "Smart flushing" feature to NetEq.
Instead of flushing all packets, it makes sense to flush down to the target level instead. This CL also initiates a flush when the packet buffer is a multiple of the target level, instead of waiting until it is completely full.

Bug: webrtc:12201
Change-Id: I8775147624536824eb88752f6e8ffe57ec6199cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193941
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32701}
2020-11-26 11:20:28 +00:00
Mirko Bonadei
01719fbeb5 Reland "Rename FATAL() into RTC_FATAL()."
This is a reland of 9653d26f8e

Original change's description:
> Rename FATAL() into RTC_FATAL().
>
> No-Try: True
> Bug: webrtc:8454
> Change-Id: I9130487a92463a2128cf1493e6c5117b2fab313a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193703
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32620}

No-Try: True
Bug: webrtc:8454
Change-Id: Idb80125ac31ea307d1434bc9a65f148ac2017a3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193864
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32635}
2020-11-18 20:49:08 +00:00
Mirko Bonadei
a4fd641f51 Revert "Rename FATAL() into RTC_FATAL()."
This reverts commit 9653d26f8e.

Reason for revert: Breaks downstream project.

Original change's description:
> Rename FATAL() into RTC_FATAL().
>
> No-Try: True
> Bug: webrtc:8454
> Change-Id: I9130487a92463a2128cf1493e6c5117b2fab313a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193703
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32620}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org

Change-Id: I0ad01bcac60c87b30bd4575a9d631e7dd8f34992
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8454
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193863
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32627}
2020-11-18 07:03:54 +00:00
Garth Judge
73f481c454 Fixed incorrect assertion when performing iLBC decoder packet loss concealment
Bug: None
Change-Id: Ieff264a377e83a6ebf77d9903514264ceaff9f2d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192460
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32622}
2020-11-17 17:31:24 +00:00
Mirko Bonadei
9653d26f8e Rename FATAL() into RTC_FATAL().
No-Try: True
Bug: webrtc:8454
Change-Id: I9130487a92463a2128cf1493e6c5117b2fab313a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193703
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32620}
2020-11-17 16:12:40 +00:00
Jakob Ivarsson
7dff9f3a76 Add delay manager config options.
Add a new field trial with more flexible parsing and new options:
- Resample packet delays to only update histogram with maximum observed
 delay every X ms.
- Setting the maximum history size (in ms) used for calculating the
 relative arrival delay.

Legacy field trial used for configuration is maintained.

Bug: webrtc:10333
Change-Id: I35b004f5d8209c85b33cb49def3816db51650946
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192789
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32591}
2020-11-11 17:30:36 +00:00
Jakob Ivarsson
1f99551775 Remove check for WebRTC-SendSideBwe-WithOverhead in bitrate controller.
This was default enabled in:
https://webrtc-review.googlesource.com/c/src/+/191221

Bug: webrtc:6762
Change-Id: Ic8054136ed854866c0fdc71f9d747b8abcd9200e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192381
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32570}
2020-11-09 23:11:26 +00:00
Karl Wiberg
c95b939667 Introduce RTC_CHECK_NOTREACHED(), an always-checking RTC_NOTREACHED()
And use it in a few places that were using RTC_CHECK(false) or FATAL()
to do the exact same job. There should be no change in behavior.

Bug: none
Change-Id: I36d5e6bcf35fd41534e08a8c879fa0811b4f1967
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191963
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32567}
2020-11-09 10:47:55 +00:00
Ivo Creusen
5a78eae780 Initialize variables to measure preemptive expansion and acceleration
The variables that are used to track the amount of preemptive expansion
and acceleration are not initialized before being passed to their
respective functions. However, these function can fail in certain cases,
and when they do the uninitialized memory will pollute the NetEq statistics.

Bug: chromium:1140376
Change-Id: I004fbaaf8d24de01dd1997fb73bdf93ca88ceaaf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191480
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32544}
2020-11-04 08:35:28 +00:00
Minyue Li
c940870b72 Revert "opus: take SILK vad result into account for voice detection"
This reverts commit 686a3709ac.

Reason for revert: crbug.com/1144220

Original change's description:
> opus: take SILK vad result into account for voice detection
>
> BUG=webrtc:11643
>
> Change-Id: Idc3a9b6bb7bd1a33f905843e5d6067ae19d5172c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176508
> Commit-Queue: Minyue Li <minyue@webrtc.org>
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31743}

TBR=devicentepena@webrtc.org,minyue@webrtc.org,fippo@sip-communicator.org

Bug: webrtc:11643
Change-Id: I9c77e4f6e919c4b648a5783edf4188e1f8114602
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191485
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32542}
2020-11-04 07:29:48 +00:00
Niels Möller
42cafa5696 Delete legacy stats minWaitingTimeMs and medianWaitingTimeMs from ACM.
Bug: None
Change-Id: I0606e8d83f2920e290b40638c9172a0f4286a41a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190740
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32540}
2020-11-03 11:06:44 +00:00
Jakob Ivarsson
36274f9158 Reland "Reland "Default enable WebRTC-SendSideBwe-WithOverhead.""
This is a reland of 1dbe30c7e8

Original change's description:
> Reland "Default enable WebRTC-SendSideBwe-WithOverhead."
>
> This is a reland of 87c1950841
>
> Original change's description:
> > Default enable WebRTC-SendSideBwe-WithOverhead.
> >
> > Bug: webrtc:6762
> > Change-Id: I18ace06a33b3b60d5a19796d4769f70cd977d604
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188801
> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Reviewed-by: Ali Tofigh <alito@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32472}
>
> Bug: webrtc:6762
> Change-Id: Icf096a8755d29600a13bd08b1f22f5a79de21e90
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190143
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32492}

Bug: webrtc:6762
Change-Id: I6d79894a213fc42d2338409e7513247725881b1a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191221
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32534}
2020-11-02 11:05:56 +00:00
Mirko Bonadei
8cc6695652 Reformat python files checked by pylint (part 1/2).
After recently changing .pylintrc (see [1]) we discovered that
the presubmit check always checks all the python files when just
one python file gets updated.

This CL moves all these files one step closer to what the linter
wants.

Autogenerated with:

# Added all the files under pylint control to ~/Desktop/to-reformat
cat ~/Desktop/to-reformat | xargs sed -i '1i\\'
git cl format --python --full

This is part 1 out of 2. The second part will fix function names and
will not be automated.

[1] - https://webrtc-review.googlesource.com/c/src/+/186664

No-Presubmit: True
Bug: webrtc:12114
Change-Id: Idfec4d759f209a2090440d0af2413a1ddc01b841
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190980
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32530}
2020-10-30 10:13:11 +00:00
Ivo Creusen
b9b74569df Reset NetEq simulation step time if a large gap is detected.
Large gaps can cause issues in NetEq simulations, so the simulation is
ended whenever we encounter one. However, the time span of the gap is
still included in the simulation time, leading to incorrect results.

Bug: webrtc:10337
Change-Id: I94a1a0b46259e3718b1b73522a3886a17bedbb7d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190287
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32514}
2020-10-28 16:24:41 +00:00
Niels Möller
84d360771b Fix locking in RTPFile class
This code used to have a reader-writer lock, and call
std::queue::pop() with only a reader lock, which appears unsafe. Code
changed to use a plain webrtc::Mutex.

Bug: webrtc:12102
Change-Id: Icbea17a824c91975dfebd4d05bbd0c21e1abeadc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190700
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32511}
2020-10-28 15:19:06 +00:00
Ivo Creusen
2963d303b0 Remove deprecated PacketArrived method from NetEqController interface.
A new version of this method was added in https://webrtc-review.googlesource.com/c/src/+/188385

Bug: webrtc:11005
Change-Id: I8ee959b6b0239462ee3caf784962ed2bb2d349ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188622
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32508}
2020-10-27 14:58:52 +00:00
Björn Terelius
d546186b89 Revert "Reland "Default enable WebRTC-SendSideBwe-WithOverhead.""
This reverts commit 1dbe30c7e8.

Reason for revert: Speculative revert due to failing tests.

Original change's description:
> Reland "Default enable WebRTC-SendSideBwe-WithOverhead."
>
> This is a reland of 87c1950841
>
> Original change's description:
> > Default enable WebRTC-SendSideBwe-WithOverhead.
> >
> > Bug: webrtc:6762
> > Change-Id: I18ace06a33b3b60d5a19796d4769f70cd977d604
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188801
> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Reviewed-by: Ali Tofigh <alito@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32472}
>
> Bug: webrtc:6762
> Change-Id: Icf096a8755d29600a13bd08b1f22f5a79de21e90
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190143
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32492}

TBR=stefan@webrtc.org,jakobi@webrtc.org,alito@webrtc.org

Change-Id: I7e0378788576236059627cf8c3bad58cd70aff7e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190500
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32504}
2020-10-27 10:51:46 +00:00
Jakob Ivarsson
1dbe30c7e8 Reland "Default enable WebRTC-SendSideBwe-WithOverhead."
This is a reland of 87c1950841

Original change's description:
> Default enable WebRTC-SendSideBwe-WithOverhead.
>
> Bug: webrtc:6762
> Change-Id: I18ace06a33b3b60d5a19796d4769f70cd977d604
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188801
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32472}

Bug: webrtc:6762
Change-Id: Icf096a8755d29600a13bd08b1f22f5a79de21e90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190143
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32492}
2020-10-26 12:35:47 +00:00
Niels Möller
7c85d395d7 Delete unneeded includes of system_wrappers/include/sleep.h
Non-test usage is in modules/audio_device and modules/desktop_capture.

Bug: None
Change-Id: Ie7dd89aa40e6dcfa9e49e1956b87b50fd9f1c227
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190140
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32484}
2020-10-26 09:55:26 +00:00
Jakob Ivarsson
27af3c4c24 Revert "Default enable WebRTC-SendSideBwe-WithOverhead."
This reverts commit 87c1950841.

Reason for revert: breaks downstream tests

Original change's description:
> Default enable WebRTC-SendSideBwe-WithOverhead.
>
> Bug: webrtc:6762
> Change-Id: I18ace06a33b3b60d5a19796d4769f70cd977d604
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188801
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32472}

TBR=stefan@webrtc.org,jakobi@webrtc.org,alito@webrtc.org

Change-Id: If59fd41dcd8f6db76ea297c34c25fe19ae2ae973
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/189973
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32474}
2020-10-22 16:57:18 +00:00
Jakob Ivarsson
87c1950841 Default enable WebRTC-SendSideBwe-WithOverhead.
Bug: webrtc:6762
Change-Id: I18ace06a33b3b60d5a19796d4769f70cd977d604
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188801
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32472}
2020-10-22 13:37:18 +00:00
Jakob Ivarsson
609b047b07 Add NetEq decision logic unit tests.
- Add buffer level filter and delay manager mocks and make them
 injectable for easier testing.
- Add a basic set of tests for simple cases and recently added features.

Bug: webrtc:10333
Change-Id: I8b6f73b8ad99ad6859ed1279086c0bd68b7687be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188623
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32433}
2020-10-19 08:38:02 +00:00
Ivo Creusen
a2b31c35ff Signal to NetEq Controller if arrived packets are DTX packets.
This CL also puts the arguments in a struct to allow for easier future additions.

Bug: webrtc:11005
Change-Id: I47bf664e7106b724eb1fc42299c42bbf022393ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188385
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32409}
2020-10-15 08:22:03 +00:00
Jakob Ivarsson
80fb978990 Reland "Reland "Refactor NetEq delay manager logic.""
This is a reland of 2a7c57c34f

Original change's description:
> Reland "Refactor NetEq delay manager logic."
>
> This is a reland of f8e62fcb14
>
> Original change's description:
> > Refactor NetEq delay manager logic.
> >
> > - Removes dependence on sequence number for calculating target delay.
> > - Changes target delay unit to milliseconds instead of number of
> >   packets.
> > - Moves acceleration/preemptive expand thresholds to decision logic.
> >   Tests for this will be added in a follow up cl.
> >
> > Bug: webrtc:10333
> > Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32326}
>
> Bug: webrtc:10333
> Change-Id: Iad5e7063f63b84762959ee5b412f5f14a7b2cd06
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186943
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32332}

Bug: webrtc:10333
Change-Id: If2244ee9a3d56a0cfa9b602e7bdf448dc6340147
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187356
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32367}
2020-10-09 13:05:46 +00:00
Jakob Ivarsson
ff9f6461b6 Revert "Reland "Refactor NetEq delay manager logic.""
This reverts commit 2a7c57c34f.

Reason for revert: unexpected big changes in behavior.

Original change's description:
> Reland "Refactor NetEq delay manager logic."
>
> This is a reland of f8e62fcb14
>
> Original change's description:
> > Refactor NetEq delay manager logic.
> >
> > - Removes dependence on sequence number for calculating target delay.
> > - Changes target delay unit to milliseconds instead of number of
> >   packets.
> > - Moves acceleration/preemptive expand thresholds to decision logic.
> >   Tests for this will be added in a follow up cl.
> >
> > Bug: webrtc:10333
> > Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> > Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32326}
>
> Bug: webrtc:10333
> Change-Id: Iad5e7063f63b84762959ee5b412f5f14a7b2cd06
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186943
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32332}

TBR=ivoc@webrtc.org,jakobi@webrtc.org

Change-Id: Iffda0e8a7b647392d8dfc6724d49439fa13d71b2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10333
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187100
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32341}
2020-10-07 12:47:01 +00:00
Jakob Ivarsson
2a7c57c34f Reland "Refactor NetEq delay manager logic."
This is a reland of f8e62fcb14

Original change's description:
> Refactor NetEq delay manager logic.
>
> - Removes dependence on sequence number for calculating target delay.
> - Changes target delay unit to milliseconds instead of number of
>   packets.
> - Moves acceleration/preemptive expand thresholds to decision logic.
>   Tests for this will be added in a follow up cl.
>
> Bug: webrtc:10333
> Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32326}

Bug: webrtc:10333
Change-Id: Iad5e7063f63b84762959ee5b412f5f14a7b2cd06
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186943
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32332}
2020-10-06 18:33:53 +00:00
Ivo Creusen
43546869d6 Notify NetEqController during muted state.
During muted state NetEq shortcircuits a large part of the internals to
quickly return a buffer filled with zeros. It can be beneficial for the
controller to be aware that it is in muted state.

Bug: webrtc:11005
Change-Id: I5fe24b4a3704d953cbd68b5a24bbb7ef58b30be0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186760
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32330}
2020-10-06 16:32:04 +00:00
Jakob Ivarsson
b1ae5ccd16 Revert "Refactor NetEq delay manager logic."
This reverts commit f8e62fcb14.

Reason for revert: breaks downstream test.

Original change's description:
> Refactor NetEq delay manager logic.
>
> - Removes dependence on sequence number for calculating target delay.
> - Changes target delay unit to milliseconds instead of number of
>   packets.
> - Moves acceleration/preemptive expand thresholds to decision logic.
>   Tests for this will be added in a follow up cl.
>
> Bug: webrtc:10333
> Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
> Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32326}

TBR=ivoc@webrtc.org,jakobi@webrtc.org

Change-Id: I1bdeacce61b902a0003a40c740f6acccf1443e3e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10333
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186942
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32329}
2020-10-06 15:37:45 +00:00
Jakob Ivarsson
f8e62fcb14 Refactor NetEq delay manager logic.
- Removes dependence on sequence number for calculating target delay.
- Changes target delay unit to milliseconds instead of number of
  packets.
- Moves acceleration/preemptive expand thresholds to decision logic.
  Tests for this will be added in a follow up cl.

Bug: webrtc:10333
Change-Id: If690aae4abf41ef1d9353f0ff01fb7d121cf8a26
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186265
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32326}
2020-10-06 13:22:45 +00:00
Per Åhgren
a43178c871 Reland "Activating AVX2 support by default"
This is a reland of ad148272b8

Original change's description:
> Activating AVX2 support by default
>
> This CL activates the newly added AVX2 support by default.
> The activation is done beneath a kill-switch.
>
> Beyond the above, the CL also changes an incorrect DCHECK_GT
> to a DCHECK_GE.
>
> Bug: webrtc:11663
> Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32193}

Bug: webrtc:11663, chromium:1134234
Change-Id: I0cb34cf08d4d14bc3aee055254493c9c9ee8faa0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186401
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32303}
2020-10-03 22:37:13 +00:00
Andrey Logvin
082fac73be Revert "Reland "Activating AVX2 support by default""
This reverts commit a0ad0bbf8f.

Reason for revert: Speculative revert. I suspect it breaks downstream project

Original change's description:
> Reland "Activating AVX2 support by default"
>
> This is a reland of ad148272b8
>
> Original change's description:
> > Activating AVX2 support by default
> >
> > This CL activates the newly added AVX2 support by default.
> > The activation is done beneath a kill-switch.
> >
> > Beyond the above, the CL also changes an incorrect DCHECK_GT
> > to a DCHECK_GE.
> >
> > Bug: webrtc:11663
> > Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
> > Commit-Queue: Per Åhgren <peah@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#32193}
>
> Bug: webrtc:11663
> Change-Id: Ib41dc1d1c5865f2828699c462939d15d5562df47
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186262
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32270}

TBR=mbonadei@webrtc.org,saza@webrtc.org,peah@webrtc.org,kwiberg@webrtc.org

Change-Id: I1305fad8d19ba0bd69a38b9e2959af54f900535d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11663
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186304
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32273}
2020-10-01 13:39:07 +00:00
Per Åhgren
a0ad0bbf8f Reland "Activating AVX2 support by default"
This is a reland of ad148272b8

Original change's description:
> Activating AVX2 support by default
>
> This CL activates the newly added AVX2 support by default.
> The activation is done beneath a kill-switch.
>
> Beyond the above, the CL also changes an incorrect DCHECK_GT
> to a DCHECK_GE.
>
> Bug: webrtc:11663
> Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32193}

Bug: webrtc:11663
Change-Id: Ib41dc1d1c5865f2828699c462939d15d5562df47
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186262
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32270}
2020-10-01 12:19:19 +00:00
Per Åhgren
80907be915 Revert "Activating AVX2 support by default"
This reverts commit ad148272b8.

Reason for revert: Speculative revert to investigate test failures

Original change's description:
> Activating AVX2 support by default
>
> This CL activates the newly added AVX2 support by default.
> The activation is done beneath a kill-switch.
>
> Beyond the above, the CL also changes an incorrect DCHECK_GT
> to a DCHECK_GE.
>
> Bug: webrtc:11663
> Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32193}

TBR=mbonadei@webrtc.org,saza@webrtc.org,peah@webrtc.org,kwiberg@webrtc.org

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

Bug: webrtc:11663
Change-Id: Ibb019e8c702dce45ebf47f1c1e8db19069b4964d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/186081
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32259}
2020-09-30 15:30:04 +00:00
Henrik Lundin
df2a4654a0 Improve neteq_rtp_fuzzer
This change lets the fuzzer modify the first few bytes of the RTP
payload. One of the benefits is that it can cover the RED header
splitter functionality.

The CL also fixes an issue found while running the fuzzer locally.

Bug: webrtc:11640
Change-Id: I7ca73676440897a14a0aaca796f70d381e016575
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185819
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32242}
2020-09-29 20:24:07 +00:00
Philipp Hancke
2291fb36cf red: ensure minimum amount of header bytes
avoids out-of-bounds reads when splitting RED packets.

Bug: webrtc:11640
Change-Id: I38beb5b373c4faa878f627a5df17dd4db9ea20cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185804
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#32239}
2020-09-29 17:07:08 +00:00
Niels Möller
de95329daa Delete macros RTC_DISALLOW_ASSIGN and RTC_DISALLOW_IMPLICIT_CONSTRUCTORS
The former was unused, the latter is replaced with the explicit C++11
deletions. The related RTC_DISALLOW_COPY_AND_ASSIGN is left for now,
it is used in a lot more places.

Bug: None
Change-Id: I49503e7f2b9ff43c6285f8695833479bbc18c380
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185500
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32224}
2020-09-29 10:19:20 +00:00
Per Åhgren
e5d669ed28 Reland "Activating AVX2 support by default"
This is a reland of ad148272b8

Original change's description:
> Activating AVX2 support by default
>
> This CL activates the newly added AVX2 support by default.
> The activation is done beneath a kill-switch.
>
> Beyond the above, the CL also changes an incorrect DCHECK_GT
> to a DCHECK_GE.
>
> Bug: webrtc:11663
> Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32193}

Bug: webrtc:11663
Change-Id: I669435c2f4e451ee0766d809443484f2dde09d8d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185482
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32200}
2020-09-25 14:46:20 +00:00
Per Åhgren
9ccbe17abb Revert "Activating AVX2 support by default"
This reverts commit ad148272b8.

Reason for revert: Causing test failures downstream.

Original change's description:
> Activating AVX2 support by default
>
> This CL activates the newly added AVX2 support by default.
> The activation is done beneath a kill-switch.
>
> Beyond the above, the CL also changes an incorrect DCHECK_GT
> to a DCHECK_GE.
>
> Bug: webrtc:11663
> Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32193}

TBR=mbonadei@webrtc.org,saza@webrtc.org,peah@webrtc.org,kwiberg@webrtc.org

Change-Id: If2287a0a4b37931ce5f85baae093a66b19d0a78b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11663
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/185481
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32196}
2020-09-25 12:13:46 +00:00
Per Åhgren
ad148272b8 Activating AVX2 support by default
This CL activates the newly added AVX2 support by default.
The activation is done beneath a kill-switch.

Beyond the above, the CL also changes an incorrect DCHECK_GT
to a DCHECK_GE.

Bug: webrtc:11663
Change-Id: I231ccb2f5efabf74cd8190411daa954b2b94a2a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183042
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32193}
2020-09-25 11:30:22 +00:00
Niels Möller
4461f059d1 Delete unused NetEq stats currentPacketLossRate, currentDiscardRate and addedSamples
Bug: webrtc:11622
Change-Id: I097bb7284d952ada41f4f38dd7adf3536bd040ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183620
Reviewed-by: Minyue Li <minyue@google.com>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32148}
2020-09-21 12:19:16 +00:00
Niels Möller
6b4d962947 Fix standard GetStats to not modify NetEq state.
Add a get_and_clear_legacy_stats flag to AudioReceiveStream::GetStats,
to distinguish calls from standard GetStats and legacy GetStats.

Add const method NetEq::CurrentNetworkStatistics to get current
values of stateless NetEq stats. Standard GetStats will then call this
method instead of NetEq::NetworkStatistics.

Bug: webrtc:11622
Change-Id: I3833a246a9e39b18c99657a738da22c6e2bd5f5e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183600
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32092}
2020-09-14 09:51:21 +00:00
Jeremy Leconte
c8850cbf55 Change gtest name to allow filtering based on the story name.
It is meant for Pinpoint to run only the relevant tests when running a bisection.
The Pinpoint side of this change can be found here:
https://crrev.com/c/2404161

Bug: webrtc:11084
Change-Id: I466f39816b83e2f83a3a49845c99605f4d5a857b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183763
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32082}
2020-09-11 14:11:27 +00:00
Niels Möller
673027b4a5 Make NetEqController::TargetLevelMs const, part 2
Followup to https://webrtc-review.googlesource.com/c/src/+/183881.

Bug: webrtc:11622
Change-Id: I8d76bf082e81ba1217d20e57c6ae6555eca2fc7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183883
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32078}
2020-09-11 09:34:55 +00:00
Hidehiko Abe
f264e70a47 Expand is_linux to is_linux || is_chromeos.
Currently is_linux is set to true on Chrome OS build,
but it is planned to be set false. This CL is the preparation
to keep the compatibility.

Bug: chromium:1110266
Test: Build locally.
Change-Id: Ic79a202b0b3baeff157955cd03a07556bfb958a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183860
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Hidehiko Abe <hidehiko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#32073}
2020-09-10 17:01:16 +00:00
Niels Möller
fd71e799cb Delete unused counters added_zero_samples_ and discarded_packets_
Bug: webrtc:11622
Change-Id: I15010f7ebf59377c266863cc67c7ffe0dcb78ace
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183540
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32052}
2020-09-07 14:40:21 +00:00
Mirko Bonadei
bef022bde0 Refactor cpu_features_wrapper.h functions from C to C++.
As mentioned on https://webrtc-review.googlesource.com/c/src/+/183380,
then relanded as https://webrtc-review.googlesource.com/c/src/+/183444,
functions in cpu_features_wrapper.h should be refactored to use
C++ features like namespaces and drop the WebRtc_ prefix.

Bug: None
Change-Id: I3e83e1668f9bf48a5d8e85d809f006666b7fa45e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183445
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32045}
2020-09-07 08:44:24 +00:00
Mirko Bonadei
66e7338617 Reland "Merge cpu_features build targets into //system_wrappers."
This is a reland of 2b242d8fba

Original change's description:
> Merge cpu_features build targets into //system_wrappers.
>
> Before this CL, functions declared in cpu_features_wrapper.h where
> not defined in the same build target, causing brittle builds that
> might fail at link time if the binary was not depending on
> //system_wrappers (the target with the definitions), violating [1].
>
> This CL moves everything into //system_wrappers and also moves
> cpu_features_wrapper.h definitions from C to C++ (in order to be able
> to add the definitions to a C++ build target like //system_wrappers).
>
> [1] - https://webrtc.googlesource.com/src/+/refs/heads/master/style-guide.md#h-cc-pairs
>
> Bug: None
> Change-Id: I5a0009cddb17206b19f2a71eeba722faacc4bcae
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183380
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32039}

TBR=kwiberg@webrtc.org

Bug: None
Change-Id: I1695b9a34d3ec20c50c1202a745f64fac58edef0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183444
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32042}
2020-09-06 10:38:23 +00:00
Mirko Bonadei
d156a0d061 Revert "Merge cpu_features build targets into //system_wrappers."
This reverts commit 2b242d8fba.

Reason for revert: Breaks downstream project.

Original change's description:
> Merge cpu_features build targets into //system_wrappers.
> 
> Before this CL, functions declared in cpu_features_wrapper.h where
> not defined in the same build target, causing brittle builds that
> might fail at link time if the binary was not depending on
> //system_wrappers (the target with the definitions), violating [1].
> 
> This CL moves everything into //system_wrappers and also moves
> cpu_features_wrapper.h definitions from C to C++ (in order to be able
> to add the definitions to a C++ build target like //system_wrappers).
> 
> [1] - https://webrtc.googlesource.com/src/+/refs/heads/master/style-guide.md#h-cc-pairs
> 
> Bug: None
> Change-Id: I5a0009cddb17206b19f2a71eeba722faacc4bcae
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183380
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32039}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org

Change-Id: I4daa7582e55a0343eef72f08ed023c73e0b6456b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183443
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32040}
2020-09-05 21:18:40 +00:00
Mirko Bonadei
2b242d8fba Merge cpu_features build targets into //system_wrappers.
Before this CL, functions declared in cpu_features_wrapper.h where
not defined in the same build target, causing brittle builds that
might fail at link time if the binary was not depending on
//system_wrappers (the target with the definitions), violating [1].

This CL moves everything into //system_wrappers and also moves
cpu_features_wrapper.h definitions from C to C++ (in order to be able
to add the definitions to a C++ build target like //system_wrappers).

[1] - https://webrtc.googlesource.com/src/+/refs/heads/master/style-guide.md#h-cc-pairs

Bug: None
Change-Id: I5a0009cddb17206b19f2a71eeba722faacc4bcae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/183380
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32039}
2020-09-05 20:43:27 +00:00
Peter Thatcher
e502386463
Merge with 4183 (M85) (#25) 2020-09-01 14:43:30 -07:00
Ivo Creusen
876a3dc88a Fix for NetEq simulations containing large gaps and multiple SSRCs.
This CL fixes 2 issues that affect NetEq simulations.
- When using event logs with multiple SSRCs, it does not make sense to
  use more than a single SSRC. If the user does not provide an SSRC
  filter, we should use the first SSRC we find and no others.
- It is possible for event logs to have a gap in the middle, and
  sometimes we don't store/mark the gap properly. If is possible to
  detect gaps by looking at the wallclock time delta between getAudio
  events. These should be 10 ms nominally, so values greater than 1000
  should never happen and indicate an error.

Bug: webrtc:11855
Change-Id: Idc3b8a7902be4159da48b063ef5c5c82fd484071
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181940
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31960}
2020-08-19 09:11:10 +00:00
Philipp Hancke
c908c5575f red: do not generate packets which are > 1200 bytes
and do not generate redundancy for packets that are larger
than 1024 bytes which is the maximum size red can encode.

Bug: webrtc:11640
Change-Id: I211cb196eee2a0659f22a601a6dee4b7dd4e5116
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178781
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31846}
2020-08-04 09:53:47 +00:00
Peter Thatcher
8f41923c9d
Update to M84 (4147) (#14)
Merge branch-heads/4147 into master
2020-07-21 19:48:32 -07:00
Philipp Hancke
fc4668dae2 configure target bitrate in opus dtx tests
This avoids a difference in behaviour between mobile and
desktop platforms since the bitrate is now too low for
CELT mode.

BUG=webrtc:11643

Change-Id: I9ac1439bea0ccbbfee7388516932e30d6cb06bf4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179522
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#31757}
2020-07-17 11:43:45 +00:00
Philipp Hancke
686a3709ac opus: take SILK vad result into account for voice detection
BUG=webrtc:11643

Change-Id: Idc3a9b6bb7bd1a33f905843e5d6067ae19d5172c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176508
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31743}
2020-07-16 11:37:35 +00:00
Niels Möller
e51d6ac5d2 Fix override declarations and delete related TODOs
Bug: webrtc:10198, chromium:428099
Change-Id: Ic7b0dd3c58c3daa5ade4d2c503b77a51b29c716e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/179380
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31739}
2020-07-16 07:42:02 +00:00
Markus Handell
0df0faefd5 Migrate modules/audio_coding, audio_mixer/ and audio_processing/ to webrtc::Mutex.
Bug: webrtc:11567
Change-Id: I03b78bd2e411e9bcca199f85e4457511826cd17e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176745
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31649}
2020-07-07 14:35:58 +00:00
Ivo Creusen
9030994e91 Update default max nr of packets to 200.
In production code, the maximum number of packets is by default set to
200, so we should adopt the same behavior in tests.

Bug: None
Change-Id: I415790b7cd9fb170ea7ac94685cc6bbe14efac4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178744
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31646}
2020-07-07 13:07:26 +00:00
Philipp Hancke
41525d0cc0 red: implement RED with distance 2
Extends the RED implementation to support a distance of two, i.e. two
packets redundancy.

BUG=webrtc:11640

Change-Id: I5113a97a4e3d45d836d7952a0c19c5381069c158
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178565
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31625}
2020-07-03 13:53:28 +00:00
Henrik Lundin
11b6f6857f Replace slave -> helper, master -> reference
A slight simplification of the NetEq code is also included.

The subtrees below common_audio, modules/audio_coding and
modules/audio_processing were scanned while making this CL.

Bug: webrtc:11680
Change-Id: I33bb1c75b2e3d1c6793fd1c5741ca59f4b6e8455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178361
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31578}
2020-06-29 12:18:05 +00:00
Peter Thatcher
9aeaa25d4c
Update to WebRTC 4103 (M83) (#12)
* Merge in branch-heads/4103 (M83)

* Disable legacy DTLS protocols (before 1.2)

* Update sdk/objc modifications for upstream changes

* Update ios and mac deployment targets

Co-authored-by: Jim Gustafson <jim@signal.org>
2020-06-25 11:14:34 -07:00
Philipp Hancke
603cc3a31e red: modify the encoder to send RFC 2198
modifies the RED encoder to send the actual RFC 2198 format
described in
  https://tools.ietf.org/html/rfc2198
Decoding is handled in neteq, see red_payload_splitter.h

BUG=webrtc:11640

Change-Id: Ib3005882a3ceee49d2b05c43357f552432a984ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176371
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31560}
2020-06-24 21:25:05 +00:00
Jakob Ivarsson
d95138b684 Make stable target adaptation enabled by default.
This will result in slightly higher encode bitrates and longer frame
lengths compared to using the smoothing filter.

Bug: webrtc:10981
Change-Id: I64704196c56b0ad910895c908baad38c994a971b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177425
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31556}
2020-06-24 11:22:21 +00:00
Mirko Bonadei
24762f207f Fix missing dependencies.
Setting gtest_enable_absl_printers to false in .gn uncovers some missing
dependencies that were pulled in by gtest.

Bug: None
Change-Id: Ibd7772f6e2af9c798c97161c24f70b1658e3723c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177843
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31551}
2020-06-23 15:46:34 +00:00
Karl Wiberg
30a3e78794 iSAC encoder: Make it possible to change target bitrate at any time
Not just at construction time.

Bug: webrtc:11704
Change-Id: I952c7dbe20774cc976065c7d2f992a80074ebf63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177663
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31550}
2020-06-22 14:59:22 +00:00
Jakob Ivarsson
af0d5bca34 Remove ANA FEC control in Opus encoder.
This has been proven to not be useful.

Bug: chromium:1086942
Change-Id: Ib71b194f59301851791a1a056f5f10b98c5a1d57
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177520
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31548}
2020-06-22 11:18:26 +00:00
Jakob Ivarsson
f46902c540 Add a simple frame length controller.
This will be used when adaptivePtime is enabled.

Bug: chromium:1086942
Change-Id: I63c947c53a8c5b8e0825b78b847c3f7900197d6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177421
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31544}
2020-06-18 15:21:48 +00:00
Henrik Lundin
f7cba9f132 Add field trial and test for NetEq extra delay
Adding field trial WebRTC-Audio-NetEqExtraDelay with a parameter value
to set the extra delay in NetEq. This overrides the
extra_output_delay_ms parameter in NetEq::Config.

Bug: b/156734419
Change-Id: Iae7d439fafa3059494249959ac13a02de63d6b7a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176858
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31493}
2020-06-10 17:37:59 +00:00
Philipp Hancke
0fd1ef135c opus: add helper function to extract voice activity information
BUG=webrtc:11643

Change-Id: I3cebc40916de0e4b0f5e41f5fda97dd53f76e4e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176740
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31490}
2020-06-10 14:21:01 +00:00
Jakob Ivarsson
7649006692 Remove packet loss rate optimization and minimum field trial.
Bug: webrtc:11664
Change-Id: I63fab70e5ae85e2971bed4998ab3b15f61f9e1c0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176752
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31480}
2020-06-10 08:37:30 +00:00
Mirko Bonadei
2dcf348011 Use absl_deps in order to preapre to the Abseil component build release.
Bug: webrtc:1046390
Change-Id: Ia35545599de23b1a2c2d8be2d53469af7ac16f1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176502
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31463}
2020-06-08 12:59:40 +00:00
Philipp Hancke
abbefba909 build: remove WEBRTC_CODEC_RED
gone for a while

BUG=webrtc:5922

Change-Id: Ie5d2f6dbffbc349686dbaf05a378375dbff0dce0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175914
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31352}
2020-05-26 11:01:26 +00:00
Henrik Lundin
c49e9c253f Adding a delay line to NetEq's output
This change adds an optional delay to NetEq's output. Note, this is not
equivalent to increasing the jitter buffer with the same extra length.

Bug: b/156734419
Change-Id: I8b70b6b3bffcfd3da296ccf29853864baa03d6bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175110
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31343}
2020-05-25 12:03:39 +00:00
Danil Chapovalov
704fb55255 In common_audio/ and modules/audio_* replace mock macros with unified MOCK_METHOD macro
Bug: webrtc:11564
Change-Id: Ib0ffce4de50a13b018926f6ea2865a2ec2fb2ec7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175621
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31333}
2020-05-20 13:17:31 +00:00
Tommi
909f3a5339 Rename several more tests that use EXPECT_DEATH to *DeathTest.
Bug: webrtc:11577
Change-Id: I0397ee933464496e4885bb0f8030f3d669e5e612
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175641
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31309}
2020-05-18 16:10:04 +00:00
Mirko Bonadei
a81e9c82fc Wrap WebRTC OBJC API types with RTC_OBJC_TYPE.
This CL introduced 2 new macros that affect the WebRTC OBJC API symbols:

- RTC_OBJC_TYPE_PREFIX:
  Macro used to prepend a prefix to the API types that are exported with
  RTC_OBJC_EXPORT.

  Clients can patch the definition of this macro locally and build
  WebRTC.framework with their own prefix in case symbol clashing is a
  problem.

  This macro must only be defined by changing the value in
  sdk/objc/base/RTCMacros.h  and not on via compiler flag to ensure
  it has a unique value.

- RCT_OBJC_TYPE:
  Macro used internally to reference API types. Declaring an API type
  without using this macro will not include the declared type in the
  set of types that will be affected by the configurable
  RTC_OBJC_TYPE_PREFIX.

Manual changes:
https://webrtc-review.googlesource.com/c/src/+/173781/5..10

The auto-generated changes in PS#5 have been done with:
https://webrtc-review.googlesource.com/c/src/+/174061.

Bug: None
Change-Id: I0d54ca94db764fb3b6cb4365873f79e14cd879b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173781
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31153}
2020-05-04 15:01:26 +00:00
Mirko Bonadei
9621377730 Remove WebRTC-Audio-NewOpusPacketLossRateOptimization.
This field trial is unused.

Bug: webrtc:11503
Change-Id: I34262ea4ab169479ceded820c1aa309981731f1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173338
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31059}
2020-04-14 10:02:52 +00:00
Patrik Höglund
36b35d528c Reland "Flip histograms to true by default, fix unit in isac_fix_test."
This reverts commit c59a304901.

Reason for revert: Other perf tests greening up, can now land this

Original change's description:
> Revert "Flip histograms to true by default, fix unit in isac_fix_test."
> 
> This reverts commit 7b201012bc.
> 
> Reason for revert: Seems to work, but need to get low bw tests working first
> 
> Original change's description:
> > Flip histograms to true by default, fix unit in isac_fix_test.
> > 
> > Requires downstream changes for all WebRTC perf tests, and
> > a corresponding recipe change so isac_fix_test starts using the new
> > flow.
> > 
> > Bug: chromium:1029452
> > Change-Id: I8918fca9bef003d365037c1c6bf7c55747dfed99
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170633
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30906}
> 
> TBR=phoglund@webrtc.org,mbonadei@webrtc.org
> 
> Change-Id: I96c2309cd71be14c5a27b515736a32f1b256453c
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029452
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171865
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30913}

TBR=phoglund@webrtc.org,mbonadei@webrtc.org

Change-Id: If39500beeca74b8e0ed9e97724a55529125a2253
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029452
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171876
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30920}
2020-03-27 13:05:34 +00:00
Patrik Höglund
c59a304901 Revert "Flip histograms to true by default, fix unit in isac_fix_test."
This reverts commit 7b201012bc.

Reason for revert: Seems to work, but need to get low bw tests working first

Original change's description:
> Flip histograms to true by default, fix unit in isac_fix_test.
> 
> Requires downstream changes for all WebRTC perf tests, and
> a corresponding recipe change so isac_fix_test starts using the new
> flow.
> 
> Bug: chromium:1029452
> Change-Id: I8918fca9bef003d365037c1c6bf7c55747dfed99
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170633
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30906}

TBR=phoglund@webrtc.org,mbonadei@webrtc.org

Change-Id: I96c2309cd71be14c5a27b515736a32f1b256453c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029452
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171865
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30913}
2020-03-27 07:57:09 +00:00
Patrik Höglund
7b201012bc Flip histograms to true by default, fix unit in isac_fix_test.
Requires downstream changes for all WebRTC perf tests, and
a corresponding recipe change so isac_fix_test starts using the new
flow.

Bug: chromium:1029452
Change-Id: I8918fca9bef003d365037c1c6bf7c55747dfed99
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170633
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30906}
2020-03-26 19:36:44 +00:00
Ali Tofigh
7e5dfdbca3 Implement AudioEncoder::GetFrameLengthRange() for all audio encoders.
The WebRTC-SendSideBwe-WithOverhead field trial requires audio
encoders to properly implement the
AudioEncoder::GetFrameLengthRange() function. Thic CL implements
the function for all audio encoders in WebRTC in preparation for
making that function pure virtual in the interface.


Bug: webrtc:11427
Change-Id: Ieab6b6c72c62af6ac9525a20fcb39bd477079551
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171503
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30890}
2020-03-25 22:19:21 +00:00
Per Åhgren
85c2dafbf3 [Merge M81] - ACM: Corrected temporary buffer size
This CL corrects the temporary buffers size in the
pre-processing of the capture audio before encoding.

As part of this it removes the ACM-specific hardcoding
of the size and instead ensures that the size of the
temporary buffer matches that of the AudioFrame.

(cherry picked from commit d82a02c837)

No-Try: True
TBR: kwiberg@webrtc.org
Bug: webrtc:11242, chromium:1060647
Change-Id: I56dd6cadfd4e140e8e159966c33d1027383ea9fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170340
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Original-Commit-Position: refs/heads/master@{#30775}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170780
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/branch-heads/4044@{#10}
Cr-Branched-From: be99ee8f17f93e06c81e3deb4897dfa8253d3211-refs/heads/master@{#30432}
2020-03-18 20:22:23 +00:00
Per Åhgren
d82a02c837 ACM: Corrected temporary buffer size
This CL corrects the temporary buffers size in the
pre-processing of the capture audio before encoding.

As part of this it removes the ACM-specific hardcoding
of the size and instead ensures that the size of the
temporary buffer matches that of the AudioFrame.

Bug: webrtc:11242
Change-Id: I56dd6cadfd4e140e8e159966c33d1027383ea9fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170340
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30775}
2020-03-12 12:23:20 +00:00
Patrik Höglund
b8e69efcee Write protos as binary.
We need to write protos as "wb" and not "w", otherwise we get CRLF
on Windows which corrupts the proto.

Bug: chromium:1029452
Change-Id: Iabf841405134d7bc2523ac48219ca7cb9d8214c1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170320
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30772}
2020-03-12 09:43:57 +00:00
Artem Titov
e618cc9c1e Add jitterBufferTargetDelay as RTCNonStandardStatsMember to new GetStats API
Bug: webrtc:11381
Change-Id: I7df3450e50da49d178e1e3a5d9f4970672d91aac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169120
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30758}
2020-03-11 12:08:32 +00:00
Niels Möller
3bdc5e9a5f Delete ACMVADCallback
This callback is enabled via the method
AudioCodingModule::RegisterVADCallback, which is unused, and deleted
in this cl.

Bug: None
Change-Id: I04c8690fbb673305e69fe5b1c32d88efd6c72d1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148420
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30735}
2020-03-10 09:53:46 +00:00
Ivo Creusen
16ddae924e Update Opus tests for Opus 1.3
This updates various bitexactness tests and other tests that no longer
pass.

Bug: webrtc:11325
Change-Id: Ifa3e4b42e303f5573e028dfdf8a108a76f6318ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168952
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30688}
2020-03-05 08:53:37 +00:00
Alessio Bazzica
a7382f7879 iSAC API wrapper unit test fix
Use speech content instead of white noise and enable target vs measured
bitrate tests.

Bug: webrtc:11360
Change-Id: If8c8e73f943eda14efeb22ba406c7a1bed7d32b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168660
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30630}
2020-02-27 14:27:23 +00:00
Tom Anderson
422f9dd5df Conditionally use OPUS_GET_IN_DTX if available
OPUS_GET_IN_DTX was added 2019-04-15, but we still need to support
building on systems with older versions of the Opus headers (eg. Debian
Jessie, released 2015-04-25).  This is needed to fix the "Build From
Tarball" bot [1].

[1] https://ci.chromium.org/p/infra/builders/cron/Build%20From%20Tarball

BUG=chromium:1047860,webrtc:11085
R=minyue@webrtc.org,henrick.lundin@webrtc.org

Change-Id: I5418c3caf4d2c7da9b9ba43ce85879b1e0eec6e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168560
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#30612}
2020-02-25 18:10:42 +00:00
Niels Möller
dbf5416a80 Delete header file rtc_base/memory/aligned_array.h
Move definition of AlignedArray to the only code using it, the
test-only LappedTransform class, and delete unused methods.

Bug: webrtc:6424, webrtc:9577
Change-Id: I1bb5f57400f7217345b7ec7376235ad4c4bae858
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168701
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30576}
2020-02-20 14:55:25 +00:00
Mirko Bonadei
4a14f4997c Remove wildcard ownership for build files.
No-Try: True
Bug: webrtc:10381
Change-Id: I852d9a2da7e0c5c12f508a1c788b0b5753503aba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168769
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30558}
2020-02-19 14:05:46 +00:00
Mirko Bonadei
e52115a33e Remove inactive OWNERS.
No-Try: True
Bug: webrtc:10381
Change-Id: I3b56c74d913a47e4297518005b0cb19de8fafbff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168421
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30556}
2020-02-19 13:37:36 +00:00
Minyue Li
dea73ee8f9 Pass absolute capture time from WebRtcVoiceEngine to ACM.
Bug: webrtc:10739
Change-Id: I6f264cb89ce340db642db3ef7dfc2b5d459f749e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167211
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Chen Xing <chxg@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30547}
2020-02-18 16:54:48 +00:00
Alessio Bazzica
08b11cafae iSAC config: target bitrate exposed for fixed impl
It is now possible to set the target bitrate for iSAC for the fixed
point implementation. Unit tests added.

Bug: webrtc:11360
Change-Id: I60225d4ca1363cdacf18931e7cf412c5aec8d8fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168529
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30526}
2020-02-14 14:08:21 +00:00
Alessio Bazzica
b3548bf287 iSAC unit test: test encode/decode via API wrapper
Unit test to test the iSAC webrtc API wrapper, plus a minor
change in the c iSAC wrapper.

Bug: webrtc:10584
Change-Id: Iecbf6f3e7db5b3bdba41f8428254ae6a6a73e24a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168492
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30514}
2020-02-13 11:29:01 +00:00
Alessio Bazzica
d428ddd8f1 iSAC fixed point: fix int overflows
Bug: webrtc:11137
Change-Id: If9276457b39285191ee2d9a0fbcb7e0a7a379be8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168523
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30513}
2020-02-13 11:14:41 +00:00
Alessio Bazzica
b28e57e725 NetEQ audio decoder unit test: use ParsePayload
AudioDecoder::Decode() is obsolete. This CL replaces it with
ParsePayload() in the audio decoder NetEQ unit tests.

Bug: webrtc:10098
Change-Id: I602b0330adbe1d0921b0c4524aa7305b500f2ebf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168486
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30511}
2020-02-13 09:05:55 +00:00
Danil Chapovalov
5528402ef8 Use newer version of TimeDelta and TimeStamp factories in modules/
This change generated with following commands:
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::Micros<\(.*\)>()/TimeDelta::Micros(\1)/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::Millis<\(.*\)>()/TimeDelta::Millis(\1)/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::Seconds<\(.*\)>()/TimeDelta::Seconds(\1)/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::us/TimeDelta::Micros/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::ms/TimeDelta::Millis/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::seconds/TimeDelta::Seconds/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::Micros<\(.*\)>()/Timestamp::Micros(\1)/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::Millis<\(.*\)>()/Timestamp::Millis(\1)/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::Seconds<\(.*\)>()/Timestamp::Seconds(\1)/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::us/Timestamp::Micros/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::ms/Timestamp::Millis/g"
find modules -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::seconds/Timestamp::Seconds/g"
git cl format

Bug: None
Change-Id: I117d64a54950be040d996035c54bc0043310943a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168340
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30489}
2020-02-10 11:49:57 +00:00
Oskar Sundbom
2fe31a47b6 Remove ossu@ from audio/ and audio_coding/ OWNERS
I've not worked in these parts for years!

Bug: webrtc:10381
Change-Id: Ie78947b3d5ed9106bc05749ab21b4dbca1da88d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168346
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30488}
2020-02-10 11:05:27 +00:00
Ivo Creusen
c31a4ec66a Disable opus tests to allow upgrade to opus 1.3
The upgrade to opus 1.3 is easier to carry out while the opus
bitexactness tests are temporarily disabled.

Bug: webrtc:11325
Change-Id: I96eecdbc93a01da88b92ae7f6473034c9795f3a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167726
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30425}
2020-01-30 14:57:15 +00:00
Sebastian Jansson
c3eb9fd49f Reland "Reland "Only include overhead if using send side bandwidth estimation.""
This is a reland of 086055d0fd

ANA was accitendly disabled even when transport sequence numbers were
negotiated due to a bug in how the audio send stream is configured. To
solve this we simply continue to always allow enabling ANA and leave it
up to the application to ensure that it's not used together with receive
side estimation.

Original change's description:
> Reland "Only include overhead if using send side bandwidth estimation."
>
> This is a reland of 8c79c6e1af
>
> Original change's description:
> > Only include overhead if using send side bandwidth estimation.
> >
> > Bug: webrtc:11298
> > Change-Id: Ia2daf690461b55d394c1b964d6a7977a98be8be2
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166820
> > Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Reviewed-by: Ali Tofigh <alito@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30382}
>
> Bug: webrtc:11298
> Change-Id: I33205e869a8ae27c15ffe991f6d985973ed6d15a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167524
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30390}

Bug: webrtc:11298
Change-Id: If2ad91e17ebfc85dc51edcd9607996e18c5d1f13
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167883
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30413}
2020-01-29 18:42:34 +00:00
Mirko Bonadei
4356490b7b Revert "Reland "Only include overhead if using send side bandwidth estimation.""
This reverts commit 086055d0fd.

Reason for revert: Causes some perf regressions.

Original change's description:
> Reland "Only include overhead if using send side bandwidth estimation."
> 
> This is a reland of 8c79c6e1af
> 
> Original change's description:
> > Only include overhead if using send side bandwidth estimation.
> > 
> > Bug: webrtc:11298
> > Change-Id: Ia2daf690461b55d394c1b964d6a7977a98be8be2
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166820
> > Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Reviewed-by: Ali Tofigh <alito@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30382}
> 
> Bug: webrtc:11298
> Change-Id: I33205e869a8ae27c15ffe991f6d985973ed6d15a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167524
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30390}

TBR=saza@webrtc.org,ossu@webrtc.org,sprang@webrtc.org,srte@webrtc.org,alito@webrtc.org

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

Bug: webrtc:11298
Change-Id: Id38de92ac25a1ce9a1360f0e37f65747d4cfb31b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167881
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30411}
2020-01-29 16:38:57 +00:00
Ivo Creusen
182c2b8334 Expose run function to NetEqSimulator
Bug: webrtc:11005
Change-Id: I84f01536b40ba17e66877cdced194e05b882b5c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167537
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30405}
2020-01-29 11:55:05 +00:00
Sebastian Jansson
086055d0fd Reland "Only include overhead if using send side bandwidth estimation."
This is a reland of 8c79c6e1af

Original change's description:
> Only include overhead if using send side bandwidth estimation.
> 
> Bug: webrtc:11298
> Change-Id: Ia2daf690461b55d394c1b964d6a7977a98be8be2
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166820
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30382}

Bug: webrtc:11298
Change-Id: I33205e869a8ae27c15ffe991f6d985973ed6d15a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167524
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30390}
2020-01-28 10:36:39 +00:00
Sebastian Jansson
c709412c76 Revert "Only include overhead if using send side bandwidth estimation."
This reverts commit 8c79c6e1af.

Reason for revert: Introduced a Bug that can happen if the include overhead state changes between pushing and poping a packet from the pacer packet queue.

Original change's description:
> Only include overhead if using send side bandwidth estimation.
> 
> Bug: webrtc:11298
> Change-Id: Ia2daf690461b55d394c1b964d6a7977a98be8be2
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166820
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30382}

TBR=saza@webrtc.org,ossu@webrtc.org,sprang@webrtc.org,srte@webrtc.org,alito@webrtc.org

Change-Id: I0cacbc26408b7bec5bc3855a628e62407c081117
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11298
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167523
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30383}
2020-01-27 15:09:49 +00:00
Sebastian Jansson
8c79c6e1af Only include overhead if using send side bandwidth estimation.
Bug: webrtc:11298
Change-Id: Ia2daf690461b55d394c1b964d6a7977a98be8be2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166820
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30382}
2020-01-27 14:19:54 +00:00
Minyue Li
ff0e4dbd1f Reland "Send absolute capture time through audio coding module."
This is a reland of 48655cfdbf

Original change's description:
> Send absolute capture time through audio coding module.
>
> Bug: webrtc:10739
> Change-Id: I44e0305be7c84b253172511c2977b1d700e40c1b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167067
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Chen Xing <chxg@google.com>
> Commit-Queue: Minyue Li <minyue@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30363}

Bug: webrtc:10739
Change-Id: I10086d239ad3f1efb8485098bf3b0ad23110962b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167213
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Chen Xing <chxg@google.com>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30380}
2020-01-27 13:18:27 +00:00
Ivo Creusen
88636c6dac Improvements for NetEqControllers
When creating a NetEqController it can be useful to have access to a
webrtc::Clock*. Also, NetEqControllers should have access to the
contents of the sync buffer when making decisions.

Bug: webrtc:11005
Change-Id: I7fdba75ce661b2ace52458620a8c1f3c990e5ac2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167208
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30368}
2020-01-24 11:39:52 +00:00
Minyue Li
4175914f41 Revert "Send absolute capture time through audio coding module."
This reverts commit 48655cfdbf.

Reason for revert: failing upstream tests

Original change's description:
> Send absolute capture time through audio coding module.
> 
> Bug: webrtc:10739
> Change-Id: I44e0305be7c84b253172511c2977b1d700e40c1b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167067
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Chen Xing <chxg@google.com>
> Commit-Queue: Minyue Li <minyue@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30363}

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

Change-Id: Ia36b9ae899563c9afd8612ffd83871b8a5778a2b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10739
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167212
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30364}
2020-01-23 16:21:06 +00:00
Minyue Li
48655cfdbf Send absolute capture time through audio coding module.
Bug: webrtc:10739
Change-Id: I44e0305be7c84b253172511c2977b1d700e40c1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167067
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Chen Xing <chxg@google.com>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30363}
2020-01-23 16:06:12 +00:00
Ivo Creusen
cee751abff Reland "Enable using a custom NetEqFactory in simulations"
This is a reland of 2a11b2451a
There are no changes compared to the first attempt.

Original change's description:
> Enable using a custom NetEqFactory in simulations
>
> Bug: webrtc:11005
> Change-Id: I8a15f77953cbd3c29a75c7cfc77f926b138994b9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165580
> Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30286}

TBR=kwiberg

Bug: webrtc:11005
Change-Id: I4aa377e05916bd23f8f63aece9d0e27731c80d3e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166465
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30319}
2020-01-20 12:46:34 +00:00
Sandeep Siddhartha
3f0bc2c176 Revert "Enable using a custom NetEqFactory in simulations"
This reverts commit 2a11b2451a.

Reason for revert: Causes b/147826709

Original change's description:
> Enable using a custom NetEqFactory in simulations
> 
> Bug: webrtc:11005
> Change-Id: I8a15f77953cbd3c29a75c7cfc77f926b138994b9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165580
> Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30286}

TBR=kwiberg@webrtc.org,ivoc@webrtc.org

Change-Id: I14a0bd6ad2a90f1686b8b1a78f18aea9325871fe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11005
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166403
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Sandeep Siddhartha <sansid@google.com>
Cr-Commit-Position: refs/heads/master@{#30288}
2020-01-16 22:56:21 +00:00
Ivo Creusen
2a11b2451a Enable using a custom NetEqFactory in simulations
Bug: webrtc:11005
Change-Id: I8a15f77953cbd3c29a75c7cfc77f926b138994b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165580
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30286}
2020-01-16 18:26:44 +00:00
Danil Chapovalov
64f1f3f04e Replace RTC_FALLTHROUGH with ABSL_FALLTHROUGH_INTENTED
Bug: None
Change-Id: I7287403f3fb13b8e30f92ca3cf1882b03bb53a6e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166176
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30283}
2020-01-16 15:20:35 +00:00
Jonas Olsson
b2b2031457 Concatenate string literals at compile time.
This CL was generated by running:
git ls-files | grep ".cc" | xargs perl -i -ne 'BEGIN {undef $/}; s/("[\s\n]*<<[\s\n]*")/" "/g; print;'; git cl format

After that I manually edited modules/audio_processing/gain_controller2.cc to preserve its original
formatting.

This primary benefit of this change is a small reduction in binary size.

Bug: None
Change-Id: I689fa7ba9c717c314bb167e5d592c3c4e0871e29
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165961
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30251}
2020-01-14 14:47:48 +00:00
Jerome Humbert
3e3c551ac6 Suppress C5041 constexpr warning for MSVC 2019
Disable the C5041 warning which makes the build fail. This is a
C++17-only change and WebRTC doesn't support C++17 yet, so the code is
technically correct, but fails to build on MSVC 2019 and
warning-as-error active.

Also fix another warning-as-error build error with MSVC 2019 due to
ignoring the result of a [[nodiscard]] function.

No-Presubmit: True
Bug: webrtc:11275,webrtc:11276
Change-Id: I891a894ee87252f96e84fd8d282576f46907256f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165781
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30244}
2020-01-14 07:44:35 +00:00
Jakob Ivarsson
2ee15eb4fa Remove extra delay field trial.
Bug: webrtc:10817
Change-Id: I704a8ea0dc774f242f8d5d88b140f850cf23d518
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164539
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30182}
2020-01-08 14:39:27 +00:00
Jakob Ivarsson
bd5874accf Remove inter-arrival delay mode from DelayManager.
Also remove the delay peak detector which is no longer used.

This should be a no-op since relative arrival delay mode is used by default.

Bug: webrtc:10333
Change-Id: Ifa326b762d52f16f9dc5f3da2874139faf1022da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164462
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30179}
2020-01-08 13:20:36 +00:00
Niels Möller
0aa7e37363 Add include of <cstdlib>
Needed since opus_interface.cc uses the C functions calloc and free.

Bug: None
Change-Id: Iad30be533d7f6d8234c8e49efd461dc6ce0e2442
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164534
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30168}
2020-01-07 14:46:03 +00:00
Jerome Humbert
9338bbcd90 Replace assert() with RTC_DCHECK
Remove some uses of assert() breaking MSVC compiling, use RTC_DCHECK
instead.

Bug: webrtc:11201
Change-Id: Ie6c3607e422ea17d3393352b4915da3fa24779f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161949
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@google.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30081}
2019-12-13 10:06:07 +00:00
Sam Zackrisson
184da528a7 Fix ASAN bug in iSAC codec
There is a value missing in an array, causing indexing to sometimes be off by one.
The result is never used anyway, so the "solution" is to insert an extra zero at the end.

Details:

In an old refactoring CL, the corresponding array in the floating point version of iSAC is declared with 578 elements, the fixed point version has 577.
See WebRtcIsac_kQKltCodeLenShape:
https://webrtc-codereview.appspot.com/548004/patch/10002/11005
Perhaps the entire array was not carried over to fixed point.

However, the floating point version does not actually have 578 elements in its definition, it has 568. The remaining 10 elements are initialized to 0. So there is no value to use from there, and using a zero instead will mimic the behavior of the floating point code.


Use of the value:
WebRtcIsacfix_kCodeLenShapeQ11 is only accessed in one place [0].
The value sumQQ is set to is only used to compute the BitsQQ,
which is only used to populate the sizeQ11 param of EstCodeLpcCoef,
which is never used anywhere. Not within EstCodeLpcCoef, not within the calling function WebRtcIsacfix_EncodeLpc [1], not in the calling function's calling function [2]. Then it falls out of scope.

[0] https://cs.chromium.org/chromium/src/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c?l=1223&rcl=3c4fda2ed8140a330634c0a2704a3cf0311a89de
[1] https://cs.chromium.org/chromium/src/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.c?l=1468&rcl=3c4fda2ed8140a330634c0a2704a3cf0311a89de
[2] https://cs.chromium.org/chromium/src/third_party/webrtc/modules/audio_coding/codecs/isac/fix/source/encode.c?l=214&rcl=3c4fda2ed8140a330634c0a2704a3cf0311a89de

Tested: Instructions in linked bug. No longer repro after applying this CL.
Bug: webrtc:10584
Change-Id: I87a90e8cf58d82f615217e05ea401d3259887769
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161942
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30065}
2019-12-11 15:59:14 +00:00
Henrik Lundin
21021f022b NetEq: Fix bug in PLC for multi-channel audio
There is currently a bug in NetEq that causes audio to leak from the
first channel to all others during loss concealment. This CL fixes the
problem and also adds a unit test to verify.

Bug: webrtc:11145
Change-Id: Ia6c4a234ff7f78e9a6080f1cb17eb80af671c3dc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161091
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29974}
2019-12-02 17:44:58 +00:00
Ivo Creusen
39cf3c723e Clean up the NetEqFactory API.
This CL decouples NetEqFactory and AudioDecoderFactory.
AudioDecoderFactory is used in more places than just inside of NetEq, so
decoupling these makes sense.

Bug: webrtc:11005
Change-Id: I78dd856e4248e398e69a65816b062ef30555b055
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161005
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29961}
2019-11-29 14:04:44 +00:00
Alessio Bazzica
2d02c943b2 NetEQ: fix initial decoder frame length.
Bug: webrtc:10548
Change-Id: If020ce0e5bef57f4f783dbc47995fd0c9f7e2137
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161046
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29960}
2019-11-29 13:43:41 +00:00
Artem Titov
9dc209a23a Add ability to disable detailed error message in RTC_CHECKs
Bug: webrtc:11133
Change-Id: I989654f1fb97b476a17956d69ee374406439ea8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160653
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29952}
2019-11-28 17:51:00 +00:00
Ivo Creusen
68c6572980 Add a CreateNetEq method that takes an AudioDecoderFactory
The NetEqFactory is currently expected to wrap the AudioDecoderFactory,
but this turns out not to be a good idea. Instead, it makes more sense
to pass the AudioDecoderFactory through the CreateNetEq method.

Bug: webrtc:11005
Change-Id: I8027ff6593f40c92072e7e88157631dcf329a984
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160644
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29918}
2019-11-26 14:43:49 +00:00
Alessio Bazzica
a88655daf9 NetEQ RTP play: textlog to stderr as option
Bug: webrtc:10548
Change-Id: I260b6c63621c61e33fcc38fd0a39cfb0dba3bc20
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160413
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29915}
2019-11-26 11:50:54 +00:00
Henrik Lundin
80b2806250 Fixing a buffer overflow in Merge::Downsample
In the unlikely event that the decoded audio is really short, the
downsampling would read outside of the decoded audio vector. This CL
fixes that, and adds a unit test that verifies the fix (when running
with ASan).

Bug: chromium:1016506
Change-Id: Ifb8071ce0550111cd66e7f7c1bed7f17b33f93c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160304
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29898}
2019-11-25 12:16:30 +00:00
Henrik Lundin
e835fc01b1 Add UMA counter for audio interruptions
The metric is added to Chromium histograms in
https://chromium-review.googlesource.com/c/chromium/src/+/1925066.

Bug: webrtc:10549
Change-Id: I2bf98f469547aa8621832fc4f8bd29c4805ac0b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160045
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29854}
2019-11-21 11:40:21 +00:00
Per Åhgren
4dd56a3830 ACM: Adding unittests for the remixing functionality
On top of adding unittests for the remixing, the CL
moves the code tested to a separate file in order
to allow it to be tested.

Bug: webrtc:11007
Change-Id: I531736517bbcc715b3c1bf3a4256c42208c5b778
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155740
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29839}
2019-11-20 06:20:22 +00:00
Minyue Li
332274dfef Adding GetInDtx to WebRTC Opus Interface.
Bug: webrtc:11085
Change-Id: Ie9152cbe3f3c70f6febafb877852d68a831bcae9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159708
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29834}
2019-11-19 14:14:06 +00:00
Henrik Lundin
fe047757d6 Fix a bug in interruption metrics
The reported audio interruption metrics are too high. If GetAudio
calls start before the first packets are arriving, and the sample rate
of the encoded audio is different from the one used to initialize
NetEq (default 16 kHz), the initial silent period of GetAudio calls
will be reported as an interruption.

Modifying a unit test to trigger the bug, and make sure it won't come
back.

Bug: webrtc:11094, b/144567257
Change-Id: Id540422cb7f35d3bef68b9e7c03c6e7c8bdb8d97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159980
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29831}
2019-11-19 12:58:50 +00:00
Per Åhgren
bb55c5e2ec Correct the upmixing of mono to stereo in ACM2
This CL is a correction to the former CL that changed the remixing for
surround. A bug in that CL caused the upmixing from mono to stereo to
place zeros in the right channel.

The unittest CL is present in https://webrtc-review.googlesource.com/c/src/+/155740

Bug: b/144458371
Change-Id: I192e587a1b083a7bb55dcac2343f8b6d3942b9ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159864
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29805}
2019-11-15 16:07:30 +00:00
Per Åhgren
048b10a9ec Correcting the ACM upmixing from mono/stereo to surround
This CL corrects the upmixing from mono/stereo to surround in the audio
coding module.


Bug: webrtc:11083
Change-Id: Ic529107d59ff54a8e48b0424cbdf2b49b7a65c12
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159705
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29792}
2019-11-13 15:23:19 +00:00
Yves Gerey
3a65f392a3 Expose NetEqDecodingTest for re-use in chromium tests.
This CL allows to trigger related tests when rolling opus
(at chromium side). Namely:
* TestOpusBitExactness
* TestOpusDtxBitExactness

This CL also prevents name clash for OpusTest:
* modules/audio_coding/test/opus_test.h: Helper class.
* modules/audio_coding/neteq/opus_unittest.cc: Local test fixture.

Bug: chromium:1002973
Change-Id: If8470b5f64fbdb1f7a84b838bde62d8c90390f2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159033
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29759}
2019-11-11 17:45:46 +00:00
Minyue Li
8e83c7ac09 Make Opus PLC always output 10ms audio.
BUG: b/143582588
Change-Id: I41ad5f4f91d9af3f595666a8f32b7ab5382605bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158672
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@{#29733}
2019-11-07 21:15:58 +00:00
Yves Gerey
82976bbdc2 Expose OpusTest class for re-use as chromium test.
This CL allows to trigger related tests when rolling opus
(at chromium side).

Bug: chromium:1002973
Change-Id: I811d17233367cabc8b4aa8ab5bbf3e92359afbce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158887
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29716}
2019-11-06 20:52:35 +00:00
Sergey Silkin
bd826152dd Suppress noisy logging from opus encoder.
Bug: none
Change-Id: Icc3d61f9dfe2582f8ae5de37de7ea148d272876c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158897
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29706}
2019-11-06 12:33:53 +00:00
Ivo Creusen
ca585bb457 Make some DecisionLogic functions virtual.
Bug: webrtc:11005
Change-Id: I86d1eadc85162abf77010d97917e5ab20f644d66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158783
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29684}
2019-11-04 16:29:17 +00:00
Björn Terelius
a06048a41e Return status instead of CHECKing in event log parser.
This CL adds ParseStatus/ParseStatusOr classes and returns those instead
of CHECKing that the log is well formed. Some refactoring was required.

We also add a allow_incomplete_logs parameter to the parser which by
default is false. Setting it to true will make the parser log a warning
but return success for errors that typically indicate that the log has
been truncated. "Deeper" errors indicating log corruption still return
an error.

Bug: webrtc:11064
Change-Id: Id5bd6e321de07e250662ae3aaa5ef15f48db6d55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158746
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29679}
2019-11-04 12:42:57 +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
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
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
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
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
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
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
Jakob Ivarsson
42b6e2d9eb Change failing rtc::dchecked_cast to rtc::saturated_cast.
Bug: chromium:1016147
Change-Id: I57106299694c379b112ca2dec95571fb82b4459c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157900
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29556}
2019-10-21 12:06:52 +00:00
Mirko Bonadei
3663ed3ad6 Move rtc_base/ignore_wundef.h to its own target.
Since rtc_base/ignore_wundef.h doesn't have any dependency, it is easy to
move it to its own target and allow its dependant to avoid to take a
dependency rtc_base:on rtc_base_approved.

Bug: webrtc:9419
Change-Id: I17f205b0cb2b21cad388b04e60082df9398dffdf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157428
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29548}
2019-10-19 10:50:36 +00:00
Mirko Bonadei
86d053c2db Use source_sets in component builds and static_library in release builds.
Static libraries don't guarantee that an exported symbol gets linked
into a shared library (and in order to support Chromium's component
build mode, WebRTC needs to be linked as a shared library).

Source sets always pass all the object files to the linker.

On the flip side, source_sets link more object files in release builds
and to avoid this, this CL introduces a the GN template "rtc_library" that
expands to static_library during release builds and to source_set during
component builds.

See: https://gn.googlesource.com/gn/+/master/docs/reference.md#func_source_set

Bug: webrtc:9419
Change-Id: I4667e820c2b3fcec417becbd2034acc13e4f04fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157168
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29525}
2019-10-17 21:17:18 +00:00
Karl Wiberg
4b64411406 NetEqImpl::GetDecoderFormat: Return RTP clockrate, not codec sample rate
Well, in fact we need to return both. But return codec sample rate
separately and let the SdpAudioFormat contain the RTP clockrate,
otherwise we're essentially lying to our callers.

Bug: webrtc:11028
Change-Id: I40f36cb9db6b9824404ade6b0515a8312ff97009
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156307
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29444}
2019-10-11 08:34:53 +00:00
Karl Wiberg
45eb135832 Remove the unused receive_timestamp arg to NetEq::InsertPacket
The implementation just ignores the provided timestamp, and gets the
time from the current clock instead.

Bug: webrtc:11028
Change-Id: I7a1fee36bef862c68d8f15fd19ee53b2bbb25892
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156164
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29434}
2019-10-10 13:34:30 +00:00
Ivo Creusen
99a2096248 Added support for skipping get_audio events, adding dummy packets and setting a field trial string.
Bug: webrtc:10337
Change-Id: I0507da4d955daa914af774c946be16a4168be21a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150780
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29392}
2019-10-07 12:26:44 +00:00
Per Åhgren
4f2e9406c9 ACM: Adding support for more than 2 channels in the send pipeline
This CL adds support in the audio coding module for sending more than
2 channels to the encoder.

Bug: webrtc:11007
Change-Id: I0909b5c37a54c9d2e1353b864e55008cda50ffae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155583
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29385}
2019-10-04 14:38:59 +00:00
Sebastian Jansson
62aee9379c Adds trial to calculate audio overhead based on available data.
This adds the ability to disable legacy overhead calculation so we'll
use the available data on per packet over head and frame length range
to set the min and max total  allocatable bitrate.

Bug: webrtc:11001
Change-Id: I2a94499433e15bad11a08f81fe7f1dfc27982cdf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155175
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29368}
2019-10-02 13:42:15 +00:00
Sebastian Jansson
f34116e356 Replacing bandwidth adaptation trial with stable target in Opus encoder.
This also means that the NetworkEstimate::bandwidth can be deprecated
as it's currently just a copy of the target_rate.

Bug: webrtc:10981
Change-Id: I1bc57b98480bd77ce052736b19d630c775428546
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153669
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29288}
2019-09-24 16:35:02 +00:00
Jakob Ivarsson
74344d2aa6 Support 2 byte payload size DTX packets in NetEq simulation.
Bug: none
Change-Id: I785f13555c650171e94e400cf15123e8cc17de22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154350
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29286}
2019-09-24 15:18:05 +00:00
Niels Möller
ef14f072a9 Delete AudioDecoder method IncomingPacket
Only the ISAC codec had an non-trivial implementation, for its unused
adaptive mode. This cl deletes that implementation, and the call
from NetEq, and the interface method.

Bug: webrtc:10098
Change-Id: Iaf7667e0ae867fc9d64286dff4c01a8ce0b6e2a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153882
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29279}
2019-09-24 08:30:24 +00:00
Niels Möller
834a554962 Include module_common_types.h only where needed
Bug: None
Change-Id: I73d493f8f186b429c7be808f4dfac0398f150931
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153891
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29277}
2019-09-24 08:22:38 +00:00
Niels Möller
544dfb5a97 Delete isac GetBandwidthInfo/SetBandwidthInfo
Bug: webrtc:10098
Change-Id: I4a56cdc6d081b15a1fc52cba2051783daf4e5ae3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153881
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29256}
2019-09-20 13:53:52 +00:00