This CL adds a mode to simulate roughly what GoogCC could have been
doing during the recording of an rtc event log by using the logged
events as input to GoogCC and visualizing the resulting target rate.
This is similar to the existing simulated_sendside_bwe mode, but uses
the new NetworkControllerInterface to ensure more reliable GoogCC
simulation.
Bug: None
Change-Id: I57894aa666151efc8405407d928b5257fb9b7d61
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123924
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27095}
This is a partial fix for regression introduced in
https://webrtc-review.googlesource.com/c/src/+/125461
Currently, the OveruseFrameDetector::OnTargetFramerateUpdated is called
only then the encoder is reconfigured, with the default maxFramerate.
Changing it from default 5 to 60, or even 30 made the detector too
sensitive and it caused adaptation down due to CPU overuse even on
powerful machines.
Bug: webrtc:10310, chromium:940466
Change-Id: I7b0eabfc8f9b502e293af1a5b02fc5d4ab468c14
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127280
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27094}
MediaChannel accepted the RtpPacket buffers through non-const pointer.
This is both unclear and introduces questions regarding if the buffer is
actually copied or not.
This change modifies the method to accept by value to reduce ambiguity.
Usage of the non-const data() method which could potentially copy the
buffer contents is also reduced in favor of cdata() which never copies.
Bug: None
Change-Id: I3b2daef0d31cb6aacceb46c86da3a40ce836242b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127340
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27090}
This simple fuzzer is intended to detect potential issues in the field trial
parsing code. Since these can be set by the browser it is better to have some
fuzzing coverage around this area.
Bug: webrtc:10395
Change-Id: I1b8b859d2107a0bc99cb7520cf0ef96f3d110547
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127121
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27087}
Using simulated time implementation of TaskQueue with TaskQueueForTest.
Bug: webrtc:10365
Change-Id: I9f853133aa9fcd5858a5e2e1e0f47ab1a6a5ca18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127292
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27081}
This reverts commit 6330818ec8159ee476481ba4a89f884fb3653f3f.
Reason for revert: This breaks api/test/neteq_simulator_factory.cc, which unfortunately was not caught by our bots.
Original change's description:
> NetEQ RTP Play: Optionally write output audio file
>
> This CL makes the output audio file optional to more
> quickly run neteq_rtpplay when no audio output is needed.
> The CL also includes necessary adaptations because of pre-existing
> dependencies (e.g., the output audio file name is used to create
> the plotting script file names).
>
> The command line arguments are retro-compatible - i.e., same behavior
> when specifying the output audio file and the new flag
> --output_files_base_name is not used.
>
> This CL also includes a test script with which the retro-compatibility
> has been verified.
>
> Bug: webrtc:10337
> Change-Id: Ie3f301b3b2ed0682fb74426d9cf452396f2b112b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126224
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27067}
TBR=henrik.lundin@webrtc.org,alessiob@webrtc.org,ivoc@webrtc.org
Change-Id: I0c63a8ba9566ef567ee398f571f2a511916fa742
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10337
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127293
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27078}
This CL adds a field trial that lets us control the size of the initial probes, how we grow the following probes and how big and frequent our ALR probes are.
Bug: webrtc:10394
Change-Id: I6c7783dfada9aaf55cd836dd8991bb7b8ca4993b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126880
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27077}
Implicit bool conversions behave wierdly in a bunch of cases, so let's make it explicit.
Bug: None
Change-Id: I15933e90d57c57218eed9608407aace5a640a6ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127284
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27076}
Introduce a handle for route created with network emulation layer,
that can be used to remove it in future properly.
Bug: webrtc:10138
Change-Id: I9fb847caeee24333bafb328727711af005b09224
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127283
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27074}
This required a fairly extensive overhaul:
* Removed locks from the implementation.
The filter/pin architecture does use multiple threads,
but the state is controlled on one and synchronization
is done via flags that don't require locking.
Note though that the baseclasses used a lot of locking, it's unclear why,
but perhaps there are things I'm not aware of. The locking was not done
consistently though, which doesn't seem to have been a problem.
* Change the code to not mix AddRef/Release and use of explicit 'delete'.
* Removed implementations of interfaces we don't need/use.
* Similarly some methods now return E_NOTIMPL.
* Added some utilities to make use of COM interfaces and concepts, easier.
BUG=webrtc:10374
TBR=mbonadei@webrtc.org
Change-Id: Iaedb1157d37ef5d5c75f727dba3d7de75ce22cd8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125086
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Christian Fremerey <chfremer@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27072}
This CL makes the output audio file optional to more
quickly run neteq_rtpplay when no audio output is needed.
The CL also includes necessary adaptations because of pre-existing
dependencies (e.g., the output audio file name is used to create
the plotting script file names).
The command line arguments are retro-compatible - i.e., same behavior
when specifying the output audio file and the new flag
--output_files_base_name is not used.
This CL also includes a test script with which the retro-compatibility
has been verified.
Bug: webrtc:10337
Change-Id: Ie3f301b3b2ed0682fb74426d9cf452396f2b112b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126224
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27067}
This is not used in practice as there's functionality on
other levels that serves the same purpose.
Bug: None
Change-Id: I0488dc42459b07607363eba0f2b06f4c50f7cda4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125520
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27061}
The fuzzer times out on too long inputs.
This CL limits tests to 400 000 bytes, ~ 12 seconds of 8 kHz float audio.
Bug: chromium:940209
Change-Id: I86b772f9d8989a8b129d933d25ece3631a6a365f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126780
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27059}
This fixes an issue where the time between freezes dropped in
perf tests. This was triggered by resetting and updating the bitrates
immediately if the min allocatable bitrate changed, causing a drop in
target bitrate. With this CL, the change in min bitrate will not take
effect until we get more data.
Bug: chromium:940349
Change-Id: Ia680a5f1cfe71847ef90669987e7b89b240b9524
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126625
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27054}
That will avoid linkage error of targets that depend
on global_task_queue_factory without depending on rtc_task_queue
Bug: webrtc:10191
Change-Id: Ia67ea0a3abb715e28160e4e376133cc0309b14e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126621
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27053}