Since the link capacity is designed to be a more stable value, we don't
need the smoothing. This allows us to react faster to changes in link
capacity while still avoiding to react to changes in target bitrate due
to normal control behavior.
Bug: webrtc:9718
Change-Id: I2fbf6bb882f312a7b28ea43d27057886d035ac45
Reviewed-on: https://webrtc-review.googlesource.com/c/111511
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25745}
This CL moves webrtc::CreatePeerConnectionFactory definitions out of
pc:create_pc_factory and merges it with its declaration in the api/
directory.
In order to avoid circular dependencies a new build target is created:
* api:create_peerconnection_factory
Bug: webrtc:9862
Change-Id: Ie215c94460cba026f5bf7d11c9a5aa03792064af
Reviewed-on: https://webrtc-review.googlesource.com/c/111186
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25744}
This allows sending the full BitrateAllocationUpdate to the encoder.
This will be used in a later CL to use the link capacity field in the
update to control the Opus decoder.
Bug: webrtc:9718
Change-Id: I1c228cc318c7f9f1b0fec232e27732177b80705a
Reviewed-on: https://webrtc-review.googlesource.com/c/111509
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25739}
This way it can be forwarded to lower layers. This makes it easier to
add information without having to change signatures of intermediate
classes. This will be used in a later CL to use the link capacity in the
Opus decoder.
Bug: webrtc:9718
Change-Id: I4a4c9d104fedb0e4a0bb7f14d169475940edbf7e
Reviewed-on: https://webrtc-review.googlesource.com/c/111508
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25738}
This change removes the ability to set CryptoOptions through the PeerConnection
Factory in both Java and IOS. Native will be removed after the Chromium change
lands. The semantics have been changed such that these options should only be
set on individual PeerConnections and not directly on the Factory itself. This
allows for more flexibility in setting CryptoOptions for PeerConnections which
are created as part of a factory.
Bug: webrtc:10020
Change-Id: I9ef3d431e728927b9ced5de6188cedeb2671254b
Reviewed-on: https://webrtc-review.googlesource.com/c/111560
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25736}
JsepTransportController got a bit ugly with one super long method.
Splitting it to two, so that MediaTransport creation is separated.
Bug: webrtc:9719
Change-Id: I0b5aead2f96d79d6fc369a16810be58c8a661e71
Reviewed-on: https://webrtc-review.googlesource.com/c/111288
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25732}
Move HdrMetadata to ColorSpace as part of preparing for joint transmission
of these two objects.
Bug: webrtc:8651
Change-Id: Ie948011a2c0106d5967cb5ef3b9565217e798272
Reviewed-on: https://webrtc-review.googlesource.com/c/111481
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25730}
Avoid that the client code relies on the adaptive digital mode being
enabled by default (error prone).
Bug: webrtc:7494
Change-Id: I765fecf535cf31a2163e10595a42520473c233b6
Reviewed-on: https://webrtc-review.googlesource.com/c/111586
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25728}
This CL changes the behavior for RunFor and RunUntil so they do not
anymore restart the underlying streams every time they are called.
This has a side effect on the semantics of the calls. Previously,
both RunUntil and RunFor would restart the session and run until the
given time had passed. Now RunFor will still run for the provided
duration, however, to make the name of RunUntil more correct, it
will run until the time since start is equal to the max_duration
parameter. An extra overload of RunUntil was added to allow using
this behavior without providing an ending condition.
Bug: webrtc:9510
Change-Id: I9fe56a44116907fba3d102894b5c96af2ba6cffb
Reviewed-on: https://webrtc-review.googlesource.com/c/111502
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25726}
This CL utilizes the input frame rate in the RTCVideoEncoderH264, by setting it into VT Property.
The main purpose is to guide VT encoder to make correct decision of the encoded frame size.
Bug: webrtc:10015
Change-Id: Id5c89f2876539f3181030f49b546326fc40b8ea3
Reviewed-on: https://webrtc-review.googlesource.com/c/111420
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25724}
Test disabled on TSAN due to repeated failures. There are data races
in a low-level syncronization primitive (semaphore). Since
syncronization primitives should handle that, I think TSAN may be
configured incorrectly.
The locking scheme is written entirely in the unit test. This means we
are losing some test coverage of *unit tests*.
TBR=jamiewalch@chromium.org
Bug: webrtc:10019
Change-Id: Ieafa00a5a789acf8d0bacf6ad669c6daca7efa17
Reviewed-on: https://webrtc-review.googlesource.com/c/111585
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25723}
This reverts commit a13be019017449c57f48203d0fb778f34f7553a7.
Reason for revert: The GN definitions cause problems for downstream tooling. They're also generally complicated and reach deep into Chromium's build which is undesirable. Setting `rtc_use_pipewire = true` by default should also be re-evaluated.
Original change's description:
> Default to dlopening the PipeWire.
>
> Reuse the existing infra from Chromium to do that. Additionally the
> target_gen_dir needs to the added to the include directories, otherwise
> the Chromium build will fail as it won't find the generated stubs. Also the
> pw_properties_new() was replaced with pw_properties_new_string() as it doesn't
> require a variadic parameter because the //tools/generate_stubs/generate_stubs.py
> doesn't work with them correctly. With all these changes in place the PipeWire
> support is enabled when compiling on Linux.
>
> Bug: chromium:682122
> Change-Id: I3bbc5efaecd9a08e20cbcf998b2cb534224eae7d
> Reviewed-on: https://webrtc-review.googlesource.com/c/111081
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Brave Yao <braveyao@webrtc.org>
> Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#25720}
TBR=phoglund@webrtc.org,mbonadei@webrtc.org,braveyao@webrtc.org,tomas.popela@gmail.com
Change-Id: Iec20b07cb1cff7d57f8114ac6ec2d0d250e61214
No-Try: true
Bug: chromium:682122
Reviewed-on: https://webrtc-review.googlesource.com/c/111584
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25722}
Reuse the existing infra from Chromium to do that. Additionally the
target_gen_dir needs to the added to the include directories, otherwise
the Chromium build will fail as it won't find the generated stubs. Also the
pw_properties_new() was replaced with pw_properties_new_string() as it doesn't
require a variadic parameter because the //tools/generate_stubs/generate_stubs.py
doesn't work with them correctly. With all these changes in place the PipeWire
support is enabled when compiling on Linux.
Bug: chromium:682122
Change-Id: I3bbc5efaecd9a08e20cbcf998b2cb534224eae7d
Reviewed-on: https://webrtc-review.googlesource.com/c/111081
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Brave Yao <braveyao@webrtc.org>
Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
Cr-Commit-Position: refs/heads/master@{#25720}
The target bandwidth is a more stable target rate as it does not follow
the variation in the control signal directly. It's intended to be used to
configure the audio frame length.
Bug: webrtc:9718
Change-Id: Idcc83ba0fef90e0ead2926d18ba6893a2b0f085f
Reviewed-on: https://webrtc-review.googlesource.com/c/107729
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25718}
This increases expected value of maximum buffer level in VP8/9 tests
up to 1 second and thus alignes it with the value that WebRTC uses by
default for these codecs.
Bug: webrtc:10017
Change-Id: I8fd41e8006f11c230d844a053c04656408c2ec97
Reviewed-on: https://webrtc-review.googlesource.com/c/111503
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25716}
Our macros always pass __FILE__ and __LINE__ as parameters, so the impact was limited. However, doing the correct thing is obviously preferable to doing the wrong thing, so let's fix it.
Bug: webrtc:10003
Change-Id: Id2529c4bd8c7e90a8f0ac3ffa713dbe305ba66d8
Reviewed-on: https://webrtc-review.googlesource.com/c/111244
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25712}
In this CL a more precise estimation of the Erle is introduced. This is done by creating different estimators that are specialized in different regions of the linear filter. An estimation of which regions were used for generating the current echo estimate is performed and used for selecting the right Erle estimator.
Bug: webrtc:9961
Change-Id: Iba6eb24596c067c3c66d40df590be379d3e1bb7b
Reviewed-on: https://webrtc-review.googlesource.com/c/109400
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25707}
rtc::scoped_refprt is used in WebRTC api/ code so it makes sense to
move it to api/ and remove exceptions from api/DEPS.
Bug: webrtc:9887
Change-Id: If58c387e5fdfacd8fc1830b4bd79fa1a73942cc9
Reviewed-on: https://webrtc-review.googlesource.com/c/111252
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25698}
This CL changes the color space enum indices to have the same
values as specified in H264. The reason for this is to simplify
a coming transmission protocol for color space information.
Bug: webrtc:8651
Change-Id: I16fccae137f75d96ed925ed1421b111ec29ae7c9
Reviewed-on: https://webrtc-review.googlesource.com/c/111245
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25697}