These tests often fail in 'ExtrapolateLocalTime' because the result gives a negative Timestamp.
Here is the stack from https://chromium-swarm.appspot.com/task?id=6173230e67897b10:
PC: @ 0x7f03afdb8e87 (unknown) raise
...
@ 0x55f4a360ba71 352 webrtc::Timestamp::operator+()
@ 0x55f4a47ecaf3 160 webrtc::TimestampExtrapolator::ExtrapolateLocalTime()
Low-Coverage-Reason: coverage isn't that low.
Change-Id: If3e7cbf31d6c4800727b24352ed2c6edc425fc73
Bug: webrtc:15022
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300600
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#39853}
More or less bit-exact, only difference is that we don't seek in the
input file before returning silence for DTX packets.
Bug: webrtc:13322
Change-Id: I147b70d4a0f2c78719c9673b55df6617e064bd61
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301104
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39851}
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}
Since PacketRouter now is only used on the worker thread, there is no need for a lock.
Bug: webrtc:14502
Change-Id: I65778f68b7e211d7bc7388a4615888a49ceb5f59
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300964
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39848}
Set of codecs for testing is hardcoded to AV1, VP8, VP9, H264, H265. Some codecs may not be available due to lack of support on the platform or due to some issue in our code which would be a regression. Reporting zero metrics for failed tests would allow the perf tool to detect such a regression.
This also enables codec tests by default. The tests should not run on bots since video_codec_perf_tests binary is not included in any test suits yet.
Bug: webrtc:14852
Change-Id: I967160069055036f93e595d328c4d5f1ca483be9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300868
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39840}
This consolidates termination logic in the DataChannelController
to make shut down consistent between when the transport notifies
of termination and when termination is initiated from the PC side.
This removes the need for `OnTransportChannelClosed` from the PC
side since we can just use TeardownDataChannelTransport_n (the two
were always being called together).
Bug: webrtc:11547
Change-Id: I1763f82cbfe1a3d5b8bfabb8d4cba0ee0fa95738
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300561
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39838}
The idea is to land this in Canary and ask for feedback from users
who can reproduce the issue, solve the issue and then revert this CL.
Example: https://paste.googleplex.com/6080504230051840
Bug: chromium:1421656
Change-Id: Ic214dc341a322470970abeca1794493f45b93843
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301080
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39834}
This adds the histogram WebRTC.Audio.AudioMixer.NewHighestSourceCount
which logs the highest number of sources an AudioMixer has had. The
statistic is logged whenever the highest number of sources increases.
This allows us to differentiate the statistic to see how many times
the mixer has had a certain maximum number of sources.
Chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/4414896
Bug: chromium:1430806
Change-Id: Iab92e201a0b667741cc8f3bbbed92fa989d7fcda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300860
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Commit-Queue: Fredrik Hernqvist <fhernqvist@google.com>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39833}
Applying thread guards and removing the accessor that was being
called from the wrong context.
Bug: webrtc:11547, webrtc:9987
Change-Id: I80953aab48e5d155fc9d101526a3fa1f2704c39f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300544
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39832}
Bug: chromium:1431897
Change-Id: Ib871dc22d2cf93180d7aa05016e34ffec944d73e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301040
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Auto-Submit: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#39830}
This component is mostly "glue" and is heavily tested in the
socket tests, but not the ToString method, which results in
getting "low test coverage" warnings.
So for the sake of it, add a test that verifies that it works.
Bug: None
Change-Id: Id2b75e2798f334452be50631ef1ff15f53fe4157
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300441
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39826}
Fix Issue 15059: The target bitrate was mistakenly set to be the maximal
bitrate when initializing the libaom encoder.
Bug: webrtc:15059
Change-Id: I38498d4cce7b0a9c26736d9f1096178dd2e1fef6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300004
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39822}
This reverts commit dd557fdb1e300068c62c870d9dc5273b48c7b79d.
Reason for revert: Looks like the Chromium FYI builders are failing.
Original change's description:
> [WebRTC-SendPacketsOnWorkerThread] Cleanup AudioSendStream
>
> This remove use of MaybeWorkerThread* rtp_transport_queue_ from
> AudioSendStream. The worker queue is alwauys assumed ot be used where
> rtp_transport_queue_ was used.
>
> Bug: webrtc:14502
> Change-Id: Ia516ce7340d712671e0ecb301bba9d66e7216973
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300400
> Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
> Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39816}
Bug: webrtc:14502
Change-Id: I0547548032756fc579b76b6bb362f576aa06b8f7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301020
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#39820}
One problem with the existing Send() method is that it has a return
value that is problematic for a fully async implementation.
A second problem with Send() is that the return value is bool and not
RTCError (webrtc:13289), which is why OnSendComplete() uses RTCError.
Also, start deprecating `bool Send()` in favor of `void SendAsync()` and
adding `network_safety_` flag for posting async operations to the
network thread. This flag also takes over from the
`connected_to_transport_` which can now be removed.
Bug: webrtc:11547, webrtc:13289
Change-Id: I87bbc7e9b964a52684bdfe0e6ebc5230be254e8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299760
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39817}
This remove use of MaybeWorkerThread* rtp_transport_queue_ from
AudioSendStream. The worker queue is alwauys assumed ot be used where
rtp_transport_queue_ was used.
Bug: webrtc:14502
Change-Id: Ia516ce7340d712671e0ecb301bba9d66e7216973
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300400
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39816}
Removes the only remaining dependency on sequence number in NetEq
except for the NackTracker (which arguably doesn't belong in NetEq).
This fixes a potential issue where FEC is not perfectly aligned with
the original packet boundaries, causing both the FEC and the original
packet to be decoded.
Bug: webrtc:13322
Change-Id: I3abec9ebfc194976fca42d5f4f4ed4ee136f44ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300560
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39815}
Cleanup and remove usage of MaybeWorkerThread from VideoSendStream.
VideoSendStream is now created and lives on the worker thread.
Bug: webrtc:14502
Change-Id: I81ccf6b9fc6e8889db81b09bd4a75a3831a003e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300842
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39814}
This remove use of MaybeWorkerThread from TaskQueuePacedSender. Instead,
the TaskQueue used when creating the TaskQueuePacedSender is used for
pacing. That is, the "worker thread".
Bug: webrtc:14502
Change-Id: I504f8e634653af6493e609db6e42b07d488fd699
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300820
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39813}
Previously this test only ran on VP9, now it runs for all codecs.
Bug: webrtc:15080
Change-Id: Id61a261cef3463a22062e3d313dc2725e051773d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300861
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39812}
NetEq packet source input doesn't have any other uses than rtp dump,
so remove that layer.
Bug: None
Change-Id: I667bb4aead9f0f2fe8a1c0d6d911a4670ded67e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300542
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39810}
As is, send() might return false while error() would indicate OK.
Bug: none
Change-Id: Ia303701148e86e1bcaf70cc54e689a3ff7f5a184
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300822
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39809}
This CL introduces PeerConnectionEncodingsIntegrationParameterizedTest,
which is based on PeerConnectionEncodingsIntegrationTest but covers all
codecs using INSTANTIATE_TEST_SUITE_P (VP8, VP9, H264, AV1).
This applies to all standard paths, which in the case of VP9 and AV1
requires opting in to it by specifying scalabilityMode and
scaleResolutionDownBy. They are also limited to L1Tx because the other
codecs don't support SVC.
The VP9-only tests continue to run as TEST_F with
PeerConnectionEncodingsIntegrationTest.
Bug: webrtc:15079
Change-Id: I3429c90f2f79ff60adad0b33975bccdda31ce6d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300900
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39808}
There was no check for null in the code that prepends config buffer to key frame buffer. It is not a requirement for codec to deliver config buffer. Some codecs probably do not do that.
Bug: none
Change-Id: Id9c57efc5d1de5f569fa773313da4db3cd8b074c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299900
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39807}
This can happen when there are audio SSRCs in the event log without any
associated events.
Issue was introduced in
https://webrtc-review.googlesource.com/c/src/+/300300
Bug: None
Change-Id: Ib0e009095bf67633812d937aa5a9e65e2cd8958a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300743
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39806}