401 Commits

Author SHA1 Message Date
Per K
569849e885 Move call/simulated_network to test/network
Old target and call/simulated.h exist but refer to new target in test/network.

Bug: webrtc:14525
Change-Id: Ida04cef17913f2f829d7e925ae454dc40d5e8240
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349264
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Owners-Override: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42191}
2024-04-29 09:55:06 +00:00
Evan Shrubsole
db50b03553 Add perfetto build config
This adds Perfetto support to WebRTC with a GN flag rtc_use_perfetto.
The configuration of perfetto depends on whether or not webrtc is
build within Chrome or not. When in Chrome, WebRTC will depend on
//third_party/perfetto:libperfetto. When building standalone, specific includes required for Perfetto are exposed with the library webrtc_libperfetto.

The perfetto trace API is exposed with a header export in
trace_event.h which is used instead of the legacy API.

The addition of Perfetto means there are 4 compilation modes for
tracing in WebRTC,
1. No tracing implementation.
2. Legacy tracing (AddTraceEvent/GetCategoryEnabled).
3.a. Perfetto statically linked (webrtc_libperfetto).
3.b. Perfetto in Chrome (Chrome's libperfetto).

This CL removes the tracing expectations from
rtc_stats_integrationtest.cc because those directly used the old API.

Integration into Chrome is a follow up CL which depends on
https://chromium-review.googlesource.com/c/chromium/src/+/5471691.

Tested: Ran Chrome with Perfetto and traces appear. WebRTC Unit test tracing working: https://ui.perfetto.dev/#!?s=04ea2613ea36b814394639a1ec4b60be5b5097527f1a485995ecc13469885468
Bug: webrtc:15917
Change-Id: I537d79dc247c2b759689910c621087286a4d8fdc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347880
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Evan Shrubsole <eshr@google.com>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#42166}
2024-04-24 20:53:23 +00:00
Florent Castelli
f4673f97ed Move webrtc::AudioDeviceModule include to api/ folder
Bug: webrtc:15874
Change-Id: I5bdb19d5e710838b41e6ca283d406c9f1f21286b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/348060
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42137}
2024-04-22 08:56:31 +00:00
Danil Chapovalov
41b4bf97c1 Pass Environment instead of clock to Fake video encoders at construction
Some of the fake encoders, FakeVp8Encoder in particular, reuse structures that in turn rely on field trials. Thus fake encoders also can benefit from Environment passed at construction.

Bug: webrtc:15860
Change-Id: Ia1542b2663c75fd467e346aad9ead627ff9b3b0f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/346780
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42046}
2024-04-12 07:42:48 +00:00
Danil Chapovalov
c230da0f1b In IvfVideoFrameGenerator test helper allow to pass webrtc::Environment at construction
To reuse same environment in video encoder and thus avoid creating duplicated environment.

Bug: webrtc:15860, b/326933307
Change-Id: I1c56966301a9b453d615c45626407fede2a6d8b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/344143
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41956}
2024-03-22 16:39:54 +00:00
Danil Chapovalov
802552a803 Update test VideoEncoderFactories to pass Environment to construct VideoEncoder
Bug: webrtc:15860
Change-Id: If89593b75879183569cef603cede542f16262fa7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/343385
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41921}
2024-03-18 18:51:47 +00:00
Harald Alvestrand
afaae4e38a Remove remaining .cc files from rtc_media_base
Also remove all dependencies on rtc_media_base except for a few
that are suspected of being linker directives.

Bug: webrtc:14775
Change-Id: Ic0daf88b5422047d3ed7079ee6af9e689853310c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/341461
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41886}
2024-03-12 14:09:38 +00:00
Danil Chapovalov
329f0ead43 Provide Environment when creating VideoEncoder in test code
Bug: webrtc:15860
Change-Id: I8c79ff58619716842e02f33e78a0529c631494e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/342280
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41884}
2024-03-12 11:09:31 +00:00
Danil Chapovalov
4f63ea423f Deprecate VP8Decoder::Create
Migrate remaining usages inside webrtc (all are test only) to CreateVp8Decoder

Bug: webrtc:15791
Change-Id: I6a8317a8761953208ba746ac785fa1606217e6f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340300
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41792}
2024-02-23 13:31:53 +00:00
Dor Hen
94c3328b61 Provide unified solution for dir name randomization in tests
This approach actually wraps the unique identifier generation into the
function that provides the output path for a test.
This way we don't need to add `CreateRandomUuid()` everywhere that we
have `test::OutputPath` and instead just rename to
`test::OutputPathRandomDir`

Bug: webrtc:15833
Change-Id: Ic9b69b5b599727f07b2906569a84a40edeecd1a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338645
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41730}
2024-02-14 07:12:03 +00:00
Dor Hen
5ba4f2ab58 Make file/directory related tests safe for concurrent execution
Providing unique identifiers for files and directories created as part
of unit tests.

Bug: webrtc:15833
Change-Id: If2835c362c47a111aa99b0e3c6ad6a33be061978
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338260
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41704}
2024-02-09 08:13:38 +00:00
Tony Herre
9c6874607a Consolidate encoded transform mocks into api/test/
Includes removing the duplicate MockTransformableAudioFrame definition
in test/ in favour of the existing one in api/test/

Bug: webrtc:15802
Change-Id: Ib5f86b8b2095dd4e580cd9ff0038134f8a43cd93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336340
Auto-Submit: Tony Herre <herre@google.com>
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41622}
2024-01-26 12:46:34 +00:00
Danil Chapovalov
d213dd5517 Pass Environment to VideoDecoders through VideoCodecTester
Bug: webrtc:15791
Change-Id: I002734a17ece1d11b77a261aa8160c4afa1702b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336241
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41617}
2024-01-26 08:11:19 +00:00
Sergey Silkin
37e9b378fd Use default H264 SDP parameters
We lost H264 [1] in https://webrtc-review.googlesource.com/c/src/+/327260 where we started using QueryCodecSupport which is sensetive to SDP parameters.

Use CBP3.1, packetization_mode=1 (singlecast NALU) as defaults.

[1] https://chromeperf.appspot.com/report?sid=1e12d661147889123ddeea4ef88a87bcdd38cf09cb23c13ee130770be695ac83&start_rev=41064&end_rev=41226

Bug: webrtc:14852, webrtc:15779
Change-Id: I69137ac847ae3a79238abcfe2a76dc2ba097a06d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335081
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41576}
2024-01-19 15:01:12 +00:00
Danil Chapovalov
f49d96d6e4 Remove usage of the rtc::TaskQueue in test/
Bug: webrtc:14169
Change-Id: Ie95973e5f58ee203c13243866782696ed14de908
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335144
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41569}
2024-01-19 10:04:54 +00:00
Sergey Silkin
9e5c979743 Add simulcast support to the video codec tester
Create one decoder per simulcast stream and pass encoded frame to a dedicated decoder.

Bug: webrtc:14852
Change-Id: I2a0baaa1e28b38507993eb4269b15ae89695d670
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331381
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41439}
2023-12-22 14:40:36 +00:00
Sergey Silkin
66344aca9c Update video codec tester unit tests
* Add VideoCodecTesterTest and move Run[EncodeDecode]Test() into it. The class will be extended with functionality necessary for testing simulcast/SVC (it will collect and store decode input frame sizes in particular) in follow-up CLs, which will add simulcast/SVC support to the tester.
* Add TestVideoEncoder and TestVideoDecoder classes.
* Use frame size instead of timestamp in checks in Slice test. Unlike timestamp, which has the same value for spatial layer frames within a temporal unit, frame size is a unique frame property in these tests.

Bug: webrtc:14852
Change-Id: I2386183688dd4988ca56e0ab53edbb9f5fcf6c9f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331362
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41438}
2023-12-22 11:02:20 +00:00
Danil Chapovalov
c03d8b6cf3 Update CallTests to create Call using Environment
Bug: webrtc:15656
Change-Id: Ie7dd1a4db04ab7fde466b7f0483b09e3b31850d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329083
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41295}
2023-12-01 13:16:41 +00:00
Sergey Silkin
2d86b258e0 Reland "Added an encode/decode test parameterizable via command line"
This is a reland of commit 496893e89e5bc8139e50befcb1a26eadbd829b0d

Original change's description:
> Added an encode/decode test parameterizable via command line
>
> This enables testing different settings without updating code and rebuilding the test binary. Example of command:
>
> video_codec_perf_tests --gtest_also_run_disabled_tests --gtest_filter=*EncodeDecode --encoder=libaom-av1 --decoder=dav1d --scalability_mode=L1T3 --bitrate_kbps=100,200,300 --framerate_fps=30 --write_csv
>
> Also added writing per-frame stats to a CSV. It is more convenient to work with CSV than to parse metrics proto.
>
> Bug: webrtc:14852
> Change-Id: I1b3970f7ffa88c016133197aff585de5bc4e35c6
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327600
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41179}

Bug: webrtc:14852
Change-Id: Iccb9af8bf6a6c37704bc58b6e57238b55761b079
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327781
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41194}
2023-11-20 11:51:43 +00:00
Sergey Silkin
d431156c0e Move codecs handling from test to tester
* Pass codec factories to the video codec tester instead of creating and wrapping codecs into a tester-specific wrappers in video_codec_test.cc. The motivation for this change is to simplify the tests by moving complexity to the tester.

* Merge codec stats and analysis into the tester and move the tester. The merge fixes circular deps issues. Modularization is not strictly needed for testing framework like the video codec tester. It is still possible to unit test underlaying modules with rather small overhead.

* Move the video codec tester from api/ to test/. test/ is accessible from outside of WebRTC which enables reusing the tester in downstream projects.

Test output ~matches before and after this refactoring. There is a small difference that is caused by changes in qpMax: 63 -> 56 (kDefaultVideoMaxQpVpx). 56 is what WebRTC uses by default for VPx/AV1 encoders.

Bug: webrtc:14852
Change-Id: I762707b7144fcff870119ad741ebe7091ea109ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327260
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41144}
2023-11-13 16:48:49 +00:00
Sam Zackrisson
2e1f16d55c Make AEC3 json parsing code testonly
Reasons:
- the code is no longer used in Chrome
- it is conceptually weird for WebRTC to have JSON parsing in its API
- there are concerns around the reliability of the underlying JSON library

Additionally, this CL removes the rtc_json "poisonous" attribute: the scheme is incompatible and redundant with testonly.

Bug: webrtc:1493351
Change-Id: I0b621b0e3f183df7315919d9c89242fbe387928f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325062
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41014}
2023-10-26 12:03:02 +00:00
Jeremy Leconte
5f4efcf303 Update test_flags visibility.
Change-Id: Ic18fea850d77fce90316c4b7118331c459a15685
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/323080
Auto-Submit: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40916}
2023-10-12 09:59:33 +00:00
Danil Chapovalov
f2443a7971 Replace WebRTC-QuickPerfTest field trial with a flag
This field trial is configured via command line flag, so may use flag system directly, reducing dependency on global field trial string.

Bug: webrtc:7101, webrtc:10335
Change-Id: I1e48e0e3fdc251b73a375c6d7f1a46fa4f8a179b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/322624
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40897}
2023-10-10 08:59:10 +00:00
Arthur Sonzogni
47faf32287 Add rtc_common_public_deps
When built for chromium, some webrtc implementations are overridden and
are implemented by chrome's "//base". For instance webrtc::Location is
implemented by base::Location. So far so good, the affected targets are
correctly defined in GN to depend on base.

The problem: Most targets in webrtc do not declare correctly their
public_deps. When a public header of a target includes one from its
dependency, the dependency must be a public_deps. The public_deps
instruct GN to forward the capability to use code from the dependency
toward the dependent.

Unfortunately, it is not possible to fix the `public_deps` in webrtc,
because its is disallowed via a presubmit. See:
https://webrtc-review.googlesource.com/c/src/+/30262

WebRTC developers decided not to use `public_deps`, because GN config
are "translated" toward different kind of downstream build system who do
not really support the `public` dependencies concept. Instead WebRTC is
using some "common" configuration applied to all of its targets.

This patch add `rtc_common_public_deps` argument, to let embedders
add the dependencies WebRTC depends on.

Bug: chromium:1467773
Change-Id: I7de43372414a09886fcb07905451e6339c8ecc64
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/316660
Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40595}
2023-08-22 11:32:06 +00:00
Sergey Silkin
8efd93dd76 Encoder type agnostic resolution based fallback
WebRTC-Video-EncoderFallbackSettings/resolution_threshold_px:X sets resolution threshold to switch from primary to fallback encoder. When the field trial is present, VP8-specific resolution based fallback settings, provided by WebRTC-VP8-Forced-Fallback-Encoder-v2, are ignored.

Bug: none
Change-Id: I8f2e28438547f3896c7fc288ed6634720328f3a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/314760
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40526}
2023-08-08 14:18:31 +00:00
Mirko Bonadei
6143ec939a [iOS testing] - Cut dependency from test module and app code.
The following can lead to ODR violations with symbols present in the
app and in the test module:

gn path out/Perf //:webrtc_perf_tests_module //sdk:helpers_objc

//:webrtc_perf_tests_module --[public]-->
//:webrtc_perf_tests_module_loadable_module --[private]-->
//test:google_test_runner_objc --[private]-->
//test:test_support_objc --[private]-->
//sdk:helpers_objc

After this CL:

gn path out/Debug/ //:webrtc_perf_tests_module //sdk:helpers_objc
No non-data paths found between these two targets.

Bug: b/292472934
Change-Id: If8a6ecab9b34bea0f52fe91b3404d1afeca685fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/313520
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40481}
2023-07-27 12:50:48 +00:00
Jianhui Dai
cc6042d876 Let IvfVideoFrameGenerator support AV1 codec
This CL adds dav1d decoder into `IvfVideoFrameGenerator` to support IVF
input with AV1 codec.

Bug: webrtc:15210
Change-Id: I4cbc93fa62fdc346f3c647bbf26f033bf0cc34ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/311340
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jianhui J Dai <jianhui.j.dai@intel.com>
Cr-Commit-Position: refs/heads/main@{#40402}
2023-07-06 04:06:29 +00:00
Artem Titov
f92cc6d7b4 Reland: FrameGeneratorCapturer: don't generate video before Start is called
It is partial reland, which adds call to Start() to all relevant places,
but doesn't actually switches frame generator to not produce frames from
the moment it was created.

Bug: b/272350185
Change-Id: I6e3bd7af6f5cd8d9baff79c2aada7b2ddfae1c8d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310782
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40379}
2023-06-29 14:47:05 +00:00
Mirko Bonadei
2d7ccb4149 Revert "FrameGeneratorCapturer: don't generate video before Start is called"
This reverts commit 00a8576a67c9e37de52a9d0c18042b4d4fd339a2.

Reason for revert: Speculative rollback (performance metrics change)

Original change's description:
> FrameGeneratorCapturer: don't generate video before Start is called
>
> Bug: b/272350185
> Change-Id: I3c264df49e952c8f852feb08607b8d4e320b15fb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309860
> Reviewed-by: Jeremy Leconte <jleconte@google.com>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#40336}

Bug: b/272350185, b/288515909
Change-Id: I66fc61d5d4d1c17f46f1f5b4fc6ff64a9b2012f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310681
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40372}
2023-06-28 19:58:41 +00:00
Artem Titov
00a8576a67 FrameGeneratorCapturer: don't generate video before Start is called
Bug: b/272350185
Change-Id: I3c264df49e952c8f852feb08607b8d4e320b15fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309860
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40336}
2023-06-22 14:00:22 +00:00
Artem Titov
5246ae20a2 Fix TestVideoCapturer and subclasses to support pause/resume video
Bug: b/272350185
Change-Id: I8e2e1a833430f78627ec6301ea23f2f8337a01ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309622
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40329}
2023-06-21 17:46:33 +00:00
Rasmus Brandt
cde5354729 Implement DelayVariationCalculator for events analysis.
This CL implements {,Logging}DelayVariationCalculator, whose purpose is to calculate simple inter-arrival metrics for a sequence of RTP frames. Uses could include RtcEventLog analysis and ad hoc testing.

Want lgtm: asapersson

Bug: webrtc:15213
Change-Id: I3f9d13a2c4fa66b6f1229c1b6fcd66a6911070de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/306741
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40247}
2023-06-08 17:42:53 +00:00
Artem Titov
17d7eb4d52 Do not compile some test targets with chromium
Move copy_to_file_audio_capturer, copy_to_file_audio_capturer_unittest
and test_common under "!build_with_chromium"

Bug: b/272350185, webrtc:15081
Change-Id: Ie3f08e4ce5bec91647e802cc34040df2e01103d0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/303680
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39954}
2023-04-26 10:07:49 +00:00
Artem Titov
8a9f3a8f53 Reland "Remove dependency of video_replay on TestADM."
This reverts commit f9e3bdd2ce410b18ca7e03b3754f94a18eb7ef3a.

Reason for revert: reland with fix

Original change's description:
> Revert "Remove dependency of video_replay on TestADM."
>
> This reverts commit 01716663a9837a26fa292fe70fdea353cbd01a67.
>
> Reason for revert:  breaking CallPerfTest
> https://ci.chromium.org/ui/p/webrtc/builders/perf/Perf%20Android32%20(R%20Pixel5)/967/overview 
>
> Original change's description:
> > Remove dependency of video_replay on TestADM.
> >
> > This should remove requirement to build TestADM in chromium build.
> >
> > Bug: b/272350185, webrtc:15081
> > Change-Id: Iceb8862aa81099c22bd378ae692229f01ab3314c
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/302380
> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Commit-Queue: Artem Titov <titovartem@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#39934}
>
> Bug: b/272350185, webrtc:15081
> Change-Id: I73aa0fd3c3d8c244d20e5f29f5792a4c7d7e4165
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/303160
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: Jeremy Leconte <jleconte@google.com>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#39939}

Bug: b/272350185, webrtc:15081
Change-Id: I360ef3e140e60fc21d622480d1f3326e40a76f58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/303400
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Auto-Submit: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39946}
2023-04-25 09:39:22 +00:00
Jeremy Leconte
f9e3bdd2ce Revert "Remove dependency of video_replay on TestADM."
This reverts commit 01716663a9837a26fa292fe70fdea353cbd01a67.

Reason for revert:  breaking CallPerfTest
https://ci.chromium.org/ui/p/webrtc/builders/perf/Perf%20Android32%20(R%20Pixel5)/967/overview 

Original change's description:
> Remove dependency of video_replay on TestADM.
>
> This should remove requirement to build TestADM in chromium build.
>
> Bug: b/272350185, webrtc:15081
> Change-Id: Iceb8862aa81099c22bd378ae692229f01ab3314c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/302380
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39934}

Bug: b/272350185, webrtc:15081
Change-Id: I73aa0fd3c3d8c244d20e5f29f5792a4c7d7e4165
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/303160
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#39939}
2023-04-24 19:02:23 +00:00
Artem Titov
01716663a9 Remove dependency of video_replay on TestADM.
This should remove requirement to build TestADM in chromium build.

Bug: b/272350185, webrtc:15081
Change-Id: Iceb8862aa81099c22bd378ae692229f01ab3314c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/302380
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39934}
2023-04-24 13:17:45 +00:00
Artem Titov
eba7cee1da Extract TestADM into a separate target
Bug: b/272350185, webrtc:15104
Change-Id: I091b81d81506e0caad665522e872c5cccf45d8d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301980
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39906}
2023-04-20 10:45:37 +00:00
Artem Titov
239db68b17 Fix frame_generator_capturer dependencies
Bug: b/272350185
Change-Id: If1e9c60f407b1c9ceb5ccf426653419dbbf96851
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301261
Auto-Submit: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39855}
2023-04-13 18:22:19 +00:00
Artem Titov
d77f2212b0 Move FrameGeneratorCapturerConfig and Create family methods
Move FrameGeneratorCapturerConfig and Create family methods from
frame_generator_capturer.h to the create_frame_generator_capturer.h

Bug: b/272350185
Change-Id: I95674f5238ac0d0a5e395840bbab7f205b160c37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301220
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39850}
2023-04-13 13:59:46 +00:00
Artem Titov
fb8e3de0a8 Use AudioDeviceModule instead of TestAudioDeviceModule.
This is step to allow migration of Test ADM to the AudioDeviceModuleImpl
as a base class to include AudioDeviceBuffer into SUT.

Also it will allow to remove WaitForRecordingEnd() method from Test
ADM

Bug: b/272350185, webrtc:15081
Change-Id: If2aa43ec0c31f6ad9aab8aa3e36cabc4a7a73c22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300862
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39849}
2023-04-13 12:31:34 +00:00
Artem Titov
61684fc814 Start splitting frame_generator_capturer to extract Create set of functions
Bug: b/272350185
Change-Id: Id95d4f6264417595f292d2edcacc71bca93e2bd6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301102
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39846}
2023-04-13 11:25:44 +00:00
Artem Titov
82f63501cf Remove temporary header
Bug: b/272350185
Change-Id: Iea5095b4d1b48f3fdca74b60c29e2e29562b4b07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301160
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39842}
2023-04-13 09:12:14 +00:00
Artem Titov
d12582ae03 Move frame_generator_capturer.h|cc to the new target
Bug: b/272350185
Change-Id: I3b04e374acb626bec16df22bb63f198b45b790dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300963
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39831}
2023-04-12 17:13:13 +00:00
Artem Titov
e686b1fc8b Start extraction of frame_generator_capturer.h|cc into separate target
Introduce temporary header for downstream projects to migrate on a
separate target.

Bug: b/272350185
Change-Id: Ibeeae48395af4d7a06371b2d6d7ffc861dc479f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300864
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39821}
2023-04-12 10:22:34 +00:00
Artem Titov
86ad48cb37 Remove files from old targets
Bug: b/272350185
Change-Id: I9ea9d791ab348fcd6ff93cb291862a492411e085
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299073
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39677}
2023-03-25 15:22:14 +00:00
Artem Titov
a077c810a8 Extract test_video_capturer and test_video_capturer_video_track_source
Extract test_video_capturer and test_video_capturer_video_track_source
into a separate targets.

Bug: b/272350185
Change-Id: Iaeefdb58de94d3a25291bfd09c39b3277c18e18a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299060
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39672}
2023-03-24 18:38:53 +00:00
Artem Titov
ebce84a502 [DVQA] Add support for DVQA to pause/resume receiving of stream by peer
Bug: b/271542055, webrtc:14995
Change-Id: Ic02451347160f512588b6fef5d6ac4ad904b5e18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/297440
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39568}
2023-03-15 18:16:49 +00:00
Peter Kasting
ab456dd092 Always check out google_benchmark, part 5.
Remove use of google_benchmark/buildconfig.gni.

Bug: chromium:1404759
Change-Id: I06e225b1457dd50e3777c5fcd277f639471f453a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/297700
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/main@{#39560}
2023-03-15 07:52:04 +00:00
Peter Kasting
049f5ef9b9 Always check out google_benchmark, part 4.
Remove use of non-WebRTC-specific arg to control benchmark use.

Bug: chromium:1404759
Change-Id: If50b215ff6c7698d385d1271bc8b6c38ed443e32
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/297680
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39556}
2023-03-14 20:28:26 +00:00
Peter Kasting
1e6d77c29a Always check out google_benchmark, part 3.
Add a WebRTC-specific arg that can be used to control use of targets
that rely on //third_party/google_benchmarks, so the .gni in that
directory can eventually be removed.

Bug: chromium:1404759
Change-Id: I2a9422fae119ca13eb50028d962fc0a671b5fb33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/297460
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/main@{#39553}
2023-03-14 12:14:51 +00:00