As part of this change, a task queue is used to handle packet
processing in real time mode. This requires that we also do
most call and media stream related operation on the same task
queue to satisfy thread checkers.
Bug: webrtc:10365
Change-Id: Icdd9d56e4ca14f2c944dc655c91e29392e3765f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127544
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27379}
And delete corresponding dependencies on :webrtc_common. After this
change, common_types.h is included directly only from code in the
following directories:
api/
api/video/
api/video_codecs/
common_video/libyuv/include/
media/base/
modules/remote_bitrate_estimator/
modules/rtp_rtcp/source/
modules/video_coding/codecs/vp9/
There remains plenty of indirect dependencies on the types declared in
common_types.h, but the fewer direct dependencies should make it
easier to find the proper place for each type.
Bug: webrtc:5876
Change-Id: I93e8f214025ecb613c19fdec2015bd3f96c59aae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130501
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27376}
It is possible for the fuzzer to just never deliver packets if the packet delay
is set long enough in the RtpReplayer. This is simply fixed by setting an upper
bound. This change is in the test code setup.
Bug: webrtc:10493,chromium:943420
Change-Id: I54f56e1aa7700f1151e0b58a5a53bc789d032c18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130365
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27369}
Replacing sets of pointers (that will depend on allocation addresses)
with vectors and lists. This allows deterministic execution.
Also doing some cleanup of the task queue configuration, ensuring that
the task queue states is not set outside of actual task queues.
Bug: webrtc:10365
Change-Id: I1fad621c7b1ba0bbb33db8c3bd69cb3a1e212b9c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130460
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27364}
The pointer-to-submodule interfaces are being removed.
This CL:
1) introduces AudioProcessing::Config::GainController1 with most config,
2) adds functions to APM for setting and getting analog gain,
3) creates a temporary GainControlConfigProxy to support the transition
to the new config.
4) Moves the lock references in GainControlForExperimentalAgc and
GainControlImpl into the GainControlConfigProxy, as it becomes the
sole AGC object with functionality exposed to the client.
Bug: webrtc:9947, webrtc:9878
Change-Id: Ic31e15e9bb26d6497a92b77874e0b6cab21ff2b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126485
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27316}
As a library, WebRTC should not assume UNICODE and _UNICODE to be
defined globally.
This CL explicitly selects wide character functions and types in
order to build WebRTC with /UUNICODE and /U_UNICODE.
Bug: None
Change-Id: Ie4e2bcb4c5c34aee6f68dc7b5b54b76f088ee3e4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128904
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Noah Richards <noahric@chromium.org>
Cr-Commit-Position: refs/heads/master@{#27313}
This CL introduces the TimeControllerInterface that provides timing
related functionality. Most notably it provides a TaskQueueFactory
and facilitates creation of ProcessThread.
Two implementations of the interface are provided, RealTimeController
and SimulatedTimeController.
This prepares for an upcoming CL using these in Scenario tests.
Bug: webrtc:10365
Change-Id: Id956a29628d7e2f53ecaedadd643a9f697329d2f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127297
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27244}
This CL paves the way to making FrameBufferController injectable.
LibvpxVp8Encoder can manage multiple streams. Prior to this CL,
each stream had its own frame buffer controller, all of them held
in a vector by LibvpxVp8Encoder. This complicated the code and
produced some code duplication (cf. SetupTemporalLayers).
This CL:
1. Replaces CreateVp8TemporalLayers() by a factory. (Later CLs
will make this factory injectable.)
2. Makes LibvpxVp8Encoder use a single controller. This single
controller will, in the case of multiple streams, delegate
its work to multiple controllers, but that fact is not visible
to LibvpxVp8Encoder.
This CL also squashes CL #126046 (Send notifications of RTT and
PLR changes to Vp8FrameBufferController) into it.
Bug: webrtc:10382
Change-Id: Id9b55734bebb457acc276f34a7a9e52cc19c8eb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126483
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27206}
To remove global task factory, rtc::TaskQueue need to loose it's convenient constructor
TaskQueueForTest can be used instead in tests and keep the convenient constructor.
Also cleanup the TaskQueueForTest a bit:
move the class to webrtc namespace
add default constructor
disallow copy using language construct instead of macro
cleanup build dependencies
rename build target (to match move out of the rtc namespace)
Bug: webrtc:10284
Change-Id: I17fddf3f8d4f363df7d495c28a5b0a28abda1ba7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127571
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27193}
Move PeerConnectionComponents when creating PeerConnectionDependencies
instead of passing them by pointer in test_peer.cc in PC e2e test
framework
Bug: webrtc:10138
Change-Id: I490f576c6af3eab42df04ba597945e66a87880e9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128579
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27180}
Rename resolution_of_encoded_image into resolution_of_rendered_frame in
DefaultVideoQualityAnalyzer to make it consistent with the way, how it
is calculated.
Bug: webrtc:10138
Change-Id: Ibf89f08ac0646b57b4a6b8316cec1ed73bad02a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128576
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27179}
Use deque instead of list in DefaultVideoQualityAnalyzer for frame ids
in the single video stream.
Bug: webrtc:10138
Change-Id: Ie4f004b6f2aa5facf216551a12bdafcf3fcddfee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128574
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27178}
Reduce resolution of smoke test in PC E2E test framework to reduce load
on bots, cause this test isn't part of performance test binary.
Bug: webrtc:10138
Change-Id: I2c3758583c03e75be17bfef799a31f63357834c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128380
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27157}
This change integrates fuzzing support for RtpDumps in WebRTC. This allows
LibFuzzer to directly fuzz the RTP code path from packet arrival all the way
to actual decoding and rendering. It does this by replaying each RTP packet
in the RTPDump which can be mutated directly by the fuzzer.
For fuzzing support the RtpFileReader needs to support reading from a
buffer instead of an file. The test class requires FILE* for all its
parsing operations and is deeply coupled this way. I chose to solve this
problem at an OS level by using the tmpfile() option and copying the buffer
to the tmpfile(). fmemopen() is no available on most platforms so couldn't
be used as a generic solution. The additional copy isn't ideal but won't
be a bottleneck for the fuzzing.
In the future I plan for the fuzzers to read from a configuration file. But
given the current packaging strategy for fuzzers in WebRTC this isn't easy.
Bug: webrtc:9860
Change-Id: I2560120e82663f9e9fb5b9640e6a6d16f9c1a360
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126682
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27151}
It's used for driving the old jitter buffer, which is used only when
vcm::VideoReceiver is used via the legacy VideoCodingModule api.
Bug: webrtc:7408
Change-Id: I179d5b26e112d9f94615d2e1b410b51a657aa05b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127294
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27147}
This change reduces the risk of echo due to noise in the headroom
of the linear filter.
Changes:
- Use shorter delay headroom
- Delay headroom is specified in samples (not blocks)
- No hysteresis limit when delay is reduced
Bug: chromium:119942,webrtc:10341
Change-Id: I708e80e26d541dff8ca04b6da2d346a1d59cbfcb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126420
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27126}
This change simply calls through all code paths in the SSLCertificate interface
after passing in an untrusted PEM string. Corpus will follow in another CL.
Bug: webrtc:10395
Change-Id: I001642fa89a84ce01505780f5e76f01a0e46a785
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127640
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27118}
Adding an example of a request to send simulcast (from the PC).
Adding an example of a request to receive simulcast (from the SFU).
Bug: webrtc:10409
Change-Id: I13b689621e2f89f8e00b7ee8bc542157ccebb873
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127621
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27116}
rtp_header_parser currently has 0% fuzzing coverage. To improve this I have
added a basic fuzzer which fuzzes all of the available paths.
Bug: webrtc:10395
Change-Id: I30324b2bfa7629b0110527258b33b7e048e89fcf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127040
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27115}