393 Commits

Author SHA1 Message Date
philipel
ceac5d560e New FrameBuffer3.
FrameBuffer3 keep track of order, decodability and continuity of the inserted frames. Compared to FrameBuffer2 which schedule frames for decoding and is thread safe, FrameBuffer3 does not schedule decoding and is thread unsafe.

Change-Id: Ic3bd540c4f69cec26fce53a40425f3bcd9afe085
Bug: webrtc:13343
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/238985
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35494}
2021-12-07 18:31:37 +00:00
Evan Shrubsole
3d29efd279 Remove FrameBuffer::ReturnReason
This was a remenant leftover from a previous design, which was no longer
valid after the switch to TaskQueues. ReturnReason::kStopped was not
used at all, and so Timeout or FrameFound can be inferred from whether
the frame is null or not.

Bug: webrtc:13343, webrtc:13346
Change-Id: Ib0f847b1e1192e32ea11208e48f5a3892703521e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239651
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35490}
2021-12-07 14:16:17 +00:00
Alessio Bazzica
183c64ce19 APM: remove LevelEstimator
Only used in unit tests and a duplication of what `capture_output_rms_`
already does.

This CL also removes `AudioProcessingStats::output_rms_dbfs`, which is
now unused.

Bug: webrtc:5298
Fix: chromium:1261339
Change-Id: I6e583c11d4abb58444c440509a8495a7f5ebc589
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235664
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35246}
2021-10-20 10:52:17 +00:00
Emil Lundmark
823ba0b038 Cleanup WebRTC-Vp9DependencyDescriptor field trial
Bug: chromium:1178444
Change-Id: Ie2ec796e207fa427fdbe00c8ea41a6b4fefea155
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235374
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35241}
2021-10-19 14:29:29 +00:00
Alessio Bazzica
0b45462389 APM fuzzer: add SetConfig() to test builder
Also stop using ApplyConfig() and in [1] fix the build errors when
WEBRTC_EXCLUDE_AUDIO_PROCESSING_MODULE is defined.

[1] modules/audio_processing/test/audio_processing_builder_for_testing.cc

Bug: webrtc:5298
Change-Id: I50dc5668b952e7ca7fa83c7a5182c013e928c450
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/235365
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35228}
2021-10-18 14:53:37 +00:00
Alessio Bazzica
1ac4f2a29e AGC2: Remove unused parameters
- `NoiseEstimator` and `LevelEstimator` enums
- `vad_probability_attack`
- `level_estimator_adjacent_speech_frames_threshold`
- `use_saturation_protector`
- `gain_applier_adjacent_speech_frames_threshold`
- `initial_saturation_margin_db`
- `extra_saturation_margin_db`

Bug: webrtc:7494
Change-Id: I12e40c8efe2d2126d7597ec18a78cf9d5d39baf2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232903
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35096}
2021-09-27 11:14:35 +00:00
Danil Chapovalov
caef2b33b3 In vp9 encoder fuzzer exclude testing unsupported bitrate configurations
Bug: chromium:1251158, chromium:1250115
Change-Id: I8c96d7ea63dcde9ae8aeb4af9ea0543f67286062
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232612
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35065}
2021-09-22 16:20:56 +00:00
Danil Chapovalov
1ce585953c Fix integer underflow in BitstreamReader::ConsumeBits
Unlike ReadBits, ConsumeBits doesn't limit number of bits it may advance,
and thus should work when that number is close to the integer limit

Bug: chromium:1250730
Change-Id: Ia7847869ef9d3fc16450d572c9e2be6e1aa36741
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232332
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35042}
2021-09-20 19:37:49 +00:00
Danil Chapovalov
057f90b7cb Fix integer overflow in h264 pps parser
Bug: chromium:1250730
Change-Id: Idda8e92262af7c3190698e1fb5ba001f6de55c47
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232327
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35036}
2021-09-20 11:28:36 +00:00
Alessio Bazzica
be1b8989d1 ExperimentalNs removed + APM not depending anymore on webrtc::Config
Thanks to the elimination of `ExperimentalNs`, there is no need anymore
to pass `webrtc::Config` to build APM.
Hence, `AudioProcessingBuilder::Create(const webrtc::Config&)` is also
removed.

Bug: webrtc:5298
Change-Id: I0a3482376a7753434486fe564681f7b9f83939c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232128
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35025}
2021-09-17 10:53:43 +00:00
Alessio Bazzica
ff7e1bad1f APM config: remove ExperimentalAgc
Bug: webrtc:5298,webrtc:7494
Change-Id: Ic9bcb702603ec7900fbe9ae38ab49dff8fe99318
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219463
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35015}
2021-09-16 13:28:51 +00:00
philipel
10dc1a6d8b New H264PacketBuffer consolidating a bunch of H264 specific hacks into one class.
Bug: webrtc:12579
Change-Id: Idea35983e204e4a3f8628d5b4eb587bbdbff5877
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227286
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34999}
2021-09-15 09:57:29 +00:00
saza
99c6ca0e66 Add danilchap@webrtc.org as owner of test/fuzzers/
Bug: None
Change-Id: I11cc6c4a17c8d0c310816c87f1b67d0a338ebe24
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231941
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34988}
2021-09-14 08:48:03 +00:00
Per Kjellander
52b9e1ecfb Ensure RtpVideoLayersAllocationExtension::Parse validate sanity of the output
This is tested by a simple unit test and a new fuzzer that verify that all that can be parsed also can be written.

Bug: webrtc:12000
Change-Id: I461aedf97d3dec6e8916e72110fa097c3b31c27f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231642
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34986}
2021-09-14 06:43:13 +00:00
Emil Lundmark
7f876c8930 Allow full SVC to reference T0 frame only after it has been encoded
The VP9 encoder may drop a frame internally which will not advance the
frame pattern. Consider the following scenario where only spatial layer
0 and temporal layer 0 is active:

1. Key frame encoded
2. Spatial layer 1 is activated
3. Delta T0 dropped
4. Delta T0 encoded

No S1T0 frame is encoded in (1) since it's not active. When
NextFrameConfig is called in (3) it will say that future frames may
reference T0 on both S0 and S1, but it's then dropped.

On step (4), the SVC controller essentially thinks it's encoding a new
picture and will happily reference the T0 on what it thinks is the first
delta frame. However, this is actually still the key frame and since
there was no S1T0 frame produced it will reference an invalid buffer.

To fix this, only say it's possible to reference a T0 frame after it has
been successfully encoded.

Bug: webrtc:11999, webrtc:13142, chromium:1178444
Change-Id: Iab3d2042ce0b3fa7d952b2831d1a36b1a6613a86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231695
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34982}
2021-09-13 15:52:42 +00:00
Emil Lundmark
9103e8efaf Fuzz explicitly configured spatial layers with VP9 encoder
With the new SVC controller this will hopefully help uncover more subtle
bugs.

Bug: webrtc:11999
Change-Id: Iab76d38b3fb8dfbbeb269f4ba1e74f6f425501f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231694
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34981}
2021-09-13 15:40:06 +00:00
Emil Lundmark
5498676edd Revert "Reland "Enable WebRTC-Vp9DependencyDescriptor by default""
This reverts commit b062829311bf1962a7f264cecf36d17ef41951df.

Reason for revert: Still causes crashes in perf tests.

Original change's description:
> Reland "Enable WebRTC-Vp9DependencyDescriptor by default"
>
> This is a reland of 472707150662bc4e174072e445938e5c405aa884
>
> Original change's description:
> > Enable WebRTC-Vp9DependencyDescriptor by default
> >
> > Bug: chromium:1178444
> > Change-Id: I420e1e9b3c557b8b186cb08c15b962a779e1ca17
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226941
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#34584}
>
> Bug: chromium:1178444
> Change-Id: I874412b41e657179be6ffbe399617e18a29ec804
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/230121
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#34890}

Bug: chromium:1178444
Change-Id: I8a789ee60d0cca6db72612ef3660fe595255c537
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231221
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34928}
2021-09-06 13:11:51 +00:00
Emil Lundmark
b062829311 Reland "Enable WebRTC-Vp9DependencyDescriptor by default"
This is a reland of 472707150662bc4e174072e445938e5c405aa884

Original change's description:
> Enable WebRTC-Vp9DependencyDescriptor by default
>
> Bug: chromium:1178444
> Change-Id: I420e1e9b3c557b8b186cb08c15b962a779e1ca17
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226941
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34584}

Bug: chromium:1178444
Change-Id: I874412b41e657179be6ffbe399617e18a29ec804
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/230121
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34890}
2021-09-01 09:27:39 +00:00
Erik Språng
e57a493301 Reland "Rename vp9::FrameInfo to vp9::UncompressedHeader and add more fields."
This is a reland of 3097008de03b6260da5cfabb5cbac6f6a64ca810

Patchset 1 is a pure reland. Patchset 2 contains a bugfix plus a test
covering that case.

Bug: webrtc:12354, chromium:1230448

Original change's description:
> Rename vp9::FrameInfo to vp9::UncompressedHeader and add more fields.
>
> These fields will be used for bitstream validation in upcoming CLs.
> A new vp9_constants.h file is also added, containing common constants
> defined by the bitstream spec.
>
> Bug: webrtc:12354
> Change-Id: If04256d83409069c8bee43ad41aed41c3707dfd3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226060
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34476}

Bug: webrtc:12354
Change-Id: Ibd301eb458a6104b562cefbc0e616c39b54fb38b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229060
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34789}
2021-08-17 19:42:00 +00:00
Erik Språng
45b3e530cb Improve webrtc fuzzer coverage of VP9 bitstream parser.
Bug: webrtc:12354
Change-Id: Ia8e2c7f68eb6c21d386eaf919960cb67a9db9285
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/229027
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34786}
2021-08-17 13:41:04 +00:00
Niels Möller
4f776ac7de Use make_ref_counted in AudioProcessingBuilder
Bug: webrtc:12701
Change-Id: I51ca5a54f812a1620ee2e6605c9ff67b92e2a5f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224547
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34725}
2021-08-11 15:40:28 +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
Björn Terelius
53adc7b1c8 Revert "Enable WebRTC-Vp9DependencyDescriptor by default"
This reverts commit 472707150662bc4e174072e445938e5c405aa884.

Reason for revert: Suspected cause for crashes in perf tests.

Original change's description:
> Enable WebRTC-Vp9DependencyDescriptor by default
>
> Bug: chromium:1178444
> Change-Id: I420e1e9b3c557b8b186cb08c15b962a779e1ca17
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226941
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34584}

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

Bug: chromium:1178444
Change-Id: I582d6d1c9d2091ca37b0943235b5cea8d4e2790d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227282
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34619}
2021-08-02 09:52:24 +00:00
Emil Lundmark
4727071506 Enable WebRTC-Vp9DependencyDescriptor by default
Bug: chromium:1178444
Change-Id: I420e1e9b3c557b8b186cb08c15b962a779e1ca17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226941
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34584}
2021-07-28 12:08:36 +00:00
Artem Titov
1ee563d5e0 Use backticks not vertical bars to denote variables in comments for /test
Bug: webrtc:12338
Change-Id: I2a33903a79194bb092a17ea1e1505bf2a3377d8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227027
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34558}
2021-07-27 12:50:31 +00:00
Danil Chapovalov
623146cfe1 Delete remaining usage of RtpHeaderParser test helper.
Bug: None
Change-Id: Ia4f8c5dc212f25b1a507e13955973ce4aa6a7ddc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225550
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34525}
2021-07-22 10:15:07 +00:00
Mirko Bonadei
3b35fbcb66 Reland "Make webrtc_fuzzer_test use //:common_config."
This is a reland of 9e09831767995531ae1c2804e1c15fa2be4053f2

The field "additional_configs" needs to be used to set "configs"
for the "fuzzer_test" GN template. See
https://source.chromium.org/chromium/chromium/src/+/main:testing/libfuzzer/fuzzer_test.gni;l=18;drc=825f86aa594207bfc50f87495544b48014814c9d.

Original change's description:
> Make webrtc_fuzzer_test use //:common_config.
>
> Before this CL, the GN template webrtc_fuzzer_test was using a build
> config that was different from the one used by other WebRTC's targets.
>
> We discovered this in [1] where we detected that RTC_DCHECK_IS_ON had
> different values across translation units (1 everywhere and 0 in the
> one of the .cc file owned by the webrtc_fuzzer_test).
>
> This was because webrtc_fuzzer_test was not including the default
> config //:common_config in its "configs".
>
> [1] - https://webrtc-review.googlesource.com/c/src/+/226465
>
> Bug: None
> Change-Id: I5635d90281769c23c5d86ebc8cb494da029c2e85
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226540
> Reviewed-by: Andrey Logvin <landrey@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34509}

Bug: None
Change-Id: I56e2a7ea811a94762e09953acf3d33d3f46b1d24
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226542
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34511}
2021-07-20 09:06:48 +00:00
Mirko Bonadei
022567dc9c Revert "Make webrtc_fuzzer_test use //:common_config."
This reverts commit 9e09831767995531ae1c2804e1c15fa2be4053f2.

Reason for revert: The "fuzzer_test" GN template expanded by
"webrtc_fuzzer_test" still ignores the "configs" and another
field needs to be used.

Original change's description:
> Make webrtc_fuzzer_test use //:common_config.
>
> Before this CL, the GN template webrtc_fuzzer_test was using a build
> config that was different from the one used by other WebRTC's targets.
>
> We discovered this in [1] where we detected that RTC_DCHECK_IS_ON had
> different values across translation units (1 everywhere and 0 in the
> one of the .cc file owned by the webrtc_fuzzer_test).
>
> This was because webrtc_fuzzer_test was not including the default
> config //:common_config in its "configs".
>
> [1] - https://webrtc-review.googlesource.com/c/src/+/226465
>
> Bug: None
> Change-Id: I5635d90281769c23c5d86ebc8cb494da029c2e85
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226540
> Reviewed-by: Andrey Logvin <landrey@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#34509}

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

Change-Id: Iec13b411e7f027e78e731e3242e0557b6de38a2b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226541
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34510}
2021-07-20 08:33:28 +00:00
Mirko Bonadei
9e09831767 Make webrtc_fuzzer_test use //:common_config.
Before this CL, the GN template webrtc_fuzzer_test was using a build
config that was different from the one used by other WebRTC's targets.

We discovered this in [1] where we detected that RTC_DCHECK_IS_ON had
different values across translation units (1 everywhere and 0 in the
one of the .cc file owned by the webrtc_fuzzer_test).

This was because webrtc_fuzzer_test was not including the default
config //:common_config in its "configs".

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

Bug: None
Change-Id: I5635d90281769c23c5d86ebc8cb494da029c2e85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226540
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34509}
2021-07-20 08:01:56 +00:00
Danil Chapovalov
e09a174746 Fix ssl_certificate_fuzzer
Bug: webrtc:10395
Change-Id: Iba79f257c427545c36052e74296d3c07a166ee7d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225540
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34446}
2021-07-09 13:50:29 +00:00
Danil Chapovalov
00ca0044d4 Unify helpers IsRtpPacket and IsRtcpPacket
Bug: None
Change-Id: Ibe942de433435d256cd6827440136936d4b274d6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225022
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34419}
2021-07-06 10:39:00 +00:00
Danil Chapovalov
76a35d9ce2 Delete legacy RtpHeaderParser wrapper
Bug: None
Change-Id: I4deec4fab631488ef2d0706848cbbe4e085825bc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221617
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34341}
2021-06-21 09:17:52 +00:00
philipel
d354ced5ac Mark VideoSendTiming flags as invalid by default.
Bug: none
Change-Id: I962df8a55c022193cb3ec036c3cf35f34f9b2412
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222611
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34322}
2021-06-17 12:39:34 +00:00
Danil Chapovalov
8d3396dabe In vp9 encoder fuzzer reduce information stored for older frames
Making a copy of that information takes noticable amount of time
causing fuzzer timeout for larger inputs, but that extra information
is not even used.

Bug: chromium:1217944
Change-Id: Icf9d43ae4b8feddda972daf3a4743fb73f7766d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221962
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34271}
2021-06-11 15:46:00 +00:00
philipel
2182096e66 RtpFrameReferenceFinder return frames directly instead of via callback.
Bug: webrtc:12579
Change-Id: I41263f70a6f3dc60167e41f8b015a7d3b0dc3dd7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219633
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@google.com>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34136}
2021-05-26 15:47:03 +00:00
Doudou Kisabaka
ae0d117d51 Implement the mixer-to-client per CSRC audio level extension (RFC 6465).
This is loosely based on the similar implementation in gecko.

Bug: webrtc:9965
Change-Id: I5203a05e1c34ca6f97bd1b143790f95ff245e340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/219791
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Doudou Kisabaka <doudouk@google.com>
Cr-Commit-Position: refs/heads/master@{#34102}
2021-05-24 14:11:28 +00:00
Victor Boivie
3d2a3355e3 dcsctp: Add socket fuzzer
Bug: webrtc:12614
Change-Id: I43659e96fbd44a10b3e8d690602afa4673df1228
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218501
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34008}
2021-05-14 06:41:10 +00:00
Danil Chapovalov
1858995fa8 Reduce memory usage of vp9_encoder_references_fuzzer
Use cicular buffer instead of ever growing dynamic vector
That limits used memory and speed up fuzzing

Bug: chromium:1207177, chromium:1202535
Change-Id: Ia69ee7423f720942301b6d0b1a9c16a0cf1b3d55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/218602
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34002}
2021-05-13 10:15:05 +00:00
Per Kjellander
fe2063ebc7 Remove REMB throttling funcionality from PacketRouter
This removes PacketRouter inheritance from  RemoteBitrateObserver and TransportFeedbackSenderInterface.
Call binds methods for sending REMB and transport feedback messages from RemoteCongestionController to PacketRouter.
This is needed until the RTCPTranseiver is used instead of the RTP modules.

Bug: webrtc:12693
Change-Id: I7088de497cd6d1e15c98788ff3e6b0a2c8897ea8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215965
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33993}
2021-05-12 11:24:58 +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
Danil Chapovalov
e8080f4a43 Fix uninitialized variable in vp9_encoder_references_fuzzer
Bug: chromium:1201537
Change-Id: Ic900340ebb632a40ed8c34a6e226e83b7a000203
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215962
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33819}
2021-04-23 13:02:19 +00:00
Danil Chapovalov
e7b752b221 Add fuzzer to validate libvpx vp9 encoder wrapper
Fix simulcast svc controller to reuse dropped frame configuration,
same as full svc and k-svc controllers do.
This fuzzer reminded the issue was still there.

This is a reland of https://webrtc-review.googlesource.com/c/src/+/212281

Bug: webrtc:11999
Change-Id: Id3b2cd6c7e0923adfffb4e04c35ed2d6faca6704
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215921
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33802}
2021-04-21 14:29:04 +00:00
philipel
ce423ce12d Track last packet receive times in RtpVideoStreamReceiver instead of the PacketBuffer.
Bug: webrtc:12579
Change-Id: I4adb8c6ada913127b9e65d97ddce0dc71ec6ccee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214784
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33713}
2021-04-13 18:24:45 +00:00
Harald Alvestrand
c8cf0a6080 Remove MDNS message implementation
No customers have been identified.

Bug: chromium:1197965
Change-Id: Ia3063d0909c718ffb8e824225c8c60180551115a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214963
Reviewed-by: Taylor <deadbeef@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33700}
2021-04-12 22:24:56 +00:00
Victor Boivie
3928e8fdb1 dcsctp: Disable packet fuzzers
This causes build failures in the Chromium fuzzers, so let's disable it
for now.

Bug: none
Change-Id: I0a076c0cd5cfb7d62383d733f3934f8b58f8ad34
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215040
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33693}
2021-04-12 14:49:09 +00:00
Victor Boivie
50fc1dfbcc dcsctp: Add SCTP packet corpus
Each file is a SCTP packet (without any additional headers), all
extracted from a few Wireshark dumps that have been manually recorded.

Bug: webrtc:12614
Change-Id: I64bef0c563f1d83ae22735d702c8abafec6429b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214701
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33675}
2021-04-11 18:25:08 +00:00
Victor Boivie
9410217413 dcsctp: Add SCTP packet fuzzer
This fuzzer explores the SCTP parsing, as well as the individual
chunks, as a successfully parsed packet will have its chunks iterated
over and formatted using ToString.

Bug: webrtc:12614
Change-Id: I88f703c5f79e4775a069b1d5439d413870f6a629
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214490
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33670}
2021-04-09 12:23:42 +00:00
Mirko Bonadei
6e6411c099 Revert "Add fuzzer to validate libvpx vp9 encoder wrapper"
This reverts commit c184047fef005b86a6dd76f03b0eb5ec01de3c5c.

Reason for revert: Breaks the WebRTC->Chromium roll:

ERROR Unresolved dependencies.
//third_party/webrtc/test/fuzzers:vp9_encoder_references_fuzzer(//build/toolchain/win:win_clang_x64)
  needs //third_party/webrtc/modules/video_coding:mock_libvpx_interface(//build/toolchain/win:win_clang_x64)

We need to add tryjob to catch these. The fix is to make 
//third_party/webrtc/modules/video_coding:mock_libvpx_interface
visible in built_with_chromium builds by moving the target
out of this "if" https://source.chromium.org/chromium/chromium/src/+/master:third_party/webrtc/modules/video_coding/BUILD.gn;l=615;drc=3889de1c4c7ae56ec742fb9ee0ad89657f638169.

Original change's description:
> Add fuzzer to validate libvpx vp9 encoder wrapper
>
> Fix simulcast svc controller to reuse dropped frame configuration,
> same as full svc and k-svc controllers do.
> This fuzzer reminded the issue was still there.
>
> Bug: webrtc:11999
> Change-Id: I74156bd743124723562e99deb48de5b5018a81d0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212281
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33568}

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

Change-Id: I1676986308c6d37ff168467ff2099155e8895452
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11999
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212973
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33573}
2021-03-26 11:17:00 +00:00
Danil Chapovalov
c184047fef Add fuzzer to validate libvpx vp9 encoder wrapper
Fix simulcast svc controller to reuse dropped frame configuration,
same as full svc and k-svc controllers do.
This fuzzer reminded the issue was still there.

Bug: webrtc:11999
Change-Id: I74156bd743124723562e99deb48de5b5018a81d0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212281
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33568}
2021-03-25 18:52:38 +00:00
Jeremy Leconte
4f88a9d1c3 Create a VideoFrameTrackingId RTP header extension.
Bug: webrtc:12594
Change-Id: I518b549b18143f4711728b4637a4689772474c45
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212084
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/master@{#33567}
2021-03-25 17:25:18 +00:00