1271 Commits

Author SHA1 Message Date
Shigemasa Watanabe
c42162cacb Add multiple codec settings to RtpConfig for Mixed-codec simulcast.
I have implemented that adds multiple codec settings to RtpConfig and
passes them down to the lower layers from WebRtcVideoSendChannel.

Bug: webrtc:362277533
Change-Id: I088d6583f7dcbd4de5deb1e9e08c80a6dc10494f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364440
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43166}
2024-10-03 14:05:52 +00:00
Olov Brändström
4baeed3b97 Use environment monotonic timestamps (i.e. not UTC) in RTCStats.
Add media config for using environment monotonic timestamps (i.e. not UTC) in RTCStats constructor, and implemented the usage of the flag.

Bug: chromium:369369568
Change-Id: Ia93d048742c28af201164fe7b2152b791bb6d0b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/363946
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Olov Brändström <brandstrom@google.com>
Cr-Commit-Position: refs/heads/main@{#43156}
2024-10-03 09:07:17 +00:00
Harald Alvestrand
b3ac753f26 Iteratively fix unit tests to work with late assignment.
A number of unit tests assume that payload types will be assigned
without generating an offer. These are flushed out by running tests
with the --force_fieldtrials=WebRTC-PayloadTypesInTransport argument.

Bug: webrtc:360058654
Change-Id: I17cd5bfa275904a9630068190b1cd246e9ce8741
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362500
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43127}
2024-10-01 13:22:40 +00:00
Fanny Linderborg
a61a25a0b1 Correct format for TODO comments
Bug: webrtc:358039777
Change-Id: Iad5f8867bcbca883b16617819ea24a965160d23e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/363802
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43089}
2024-09-27 07:17:40 +00:00
Qiu Jianlin
6f90609fca Compare only profile & tier when matching HEVC codec.
Level asymmetry is implicitly enabled for HEVC. When comparing two
codec params to see if they match, we only compare profile & tier,
similar as H.264.

Bug: chromium:41480904
Change-Id: I9e9debdf1b34f33986da9344b9fee14071b1ed60
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/363205
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Cr-Commit-Position: refs/heads/main@{#43069}
2024-09-23 14:27:10 +00:00
Harald Alvestrand
e2952a058e Eliminate a pointless IsEnabled helper
Makes code easier to read.

Bug: None
Change-Id: I736f1a152101264184c3d7b1c7a72d1a3b022147
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362962
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43051}
2024-09-19 13:38:35 +00:00
Taylor Brandstetter
bbea923c9f Removed unused absl::InlinedVector.
Bug: None
Change-Id: I4db7391b70297272cd107a1090e87d5328bced4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362528
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43039}
2024-09-17 17:49:50 +00:00
Henrik Boström
2b5f7cb4b3 Adjust requested_resolution to match frame's aspect ratio.
This API should not modify the aspect ratio of the frame, e.g. if the
frame is 1280x720 and requested_resolution is 1280x360, the result
should be 640x360, not a streched out 1280x360 frame. The spec version
of this API calls this "maxWidth" and "maxHeight" which is the right
way to think about it rather than a forced width and height.

VideoAdapter continues to be used to apply adaptation restrictions, but
we now make sure to calculate the correct frame size BEFORE applying
restrictions. Prior to this CL, the VideoAdapter was also used to apply
requested_resolution restrictions. This is actually wrong and would
cause strange scaling factors in some cases, e.g. f=1280x720 + r=720x405
would result in 640x360 instead of 720x405. Now we make f=720x405 first
and only adjust further if restrictions or alignments require us to.

Since this is a change in behavior a WebRtcVideoChannelTest is updated.
Encodings integration test is also added, both for aspect ratio (new
behavior) and orientation agnosticism (old behavior still passing).

Bug: webrtc:366067962
Change-Id: I4e8dc27da5a84d73238b8ab74ef197eb5ee8072a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362101
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43020}
2024-09-13 10:26:34 +00:00
Harald Alvestrand
6aab4ccf42 Change cricket::Codec default id from 0 to -1
This allows detecting if it has been set reliably.
0 is a valid payload type.

Bug: webrtc:360058654
Change-Id: Ic3646abe20d0247592145ad27549fa46ddb7ec90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362261
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43016}
2024-09-12 21:26:48 +00:00
Harald Alvestrand
97c594fafe Add field trial for late PT allocation
Note: Does not include code for the actual late allocation
of PTs.

Bug: webrtc:360058654
Change-Id: Iaa6bd2db2f974aad84fe1ae9c1aca5aea5d1d25e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362320
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43014}
2024-09-12 14:42:27 +00:00
Harald Alvestrand
dc56a36ff8 Use PayloadTypePicker in WebRtcVoiceEngine
This entails passing in a PayloadTypeSuggester as a dependency. PT suggesting is still done according to the old method, but with new code.

Bug: webrtc:360058654
Change-Id: I12a7d2aa6aa482fb62ff3dfb34b9761ebb7dddef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361200
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42989}
2024-09-09 18:44:21 +00:00
Harald Alvestrand
927244db7e Set MID in AudioReceiveChannel
This variable was present but unset.

Bug: webrtc:360058654
Change-Id: I492069a1e87208c6fbb5ad5f0a00fcc2ccc0bc25
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361824
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42988}
2024-09-09 17:58:33 +00:00
Ilya Nikolaevskiy
9f096a8707 Allow VideoEncoderSoftwareFallbackWrapper to return SIMULCAST_PARAMS_NOT_SUPPORTED
Now some HW encoders support simulcast. If parameters are not suitable for
single encoder simulcast, the error code should be forwarded back to
SimulcastEncoderAdapter instead of trying software fallback.

Bug: webrtc:347737882
Change-Id: Id02ff1afc012cd46761d9530b1ce368d5dc480bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361744
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42972}
2024-09-06 12:26:43 +00:00
Björn Terelius
05e1a1f570 Explicitly set encoder_context to nullptr in SimulcastEncoderAdapter after move.
Bug: None
Change-Id: Idac2efa73835ff5e1c37e1f19d7d2127c62e5900
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361642
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42957}
2024-09-05 10:26:59 +00:00
Fanny Linderborg
ac505c5b9a Enable the FrameInstrumentationGenerator if its extension is negotiated
Bug: webrtc:358039777
Change-Id: I5d1181d174e3e23506baa7f168849f02922311b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361580
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42947}
2024-09-04 15:48:00 +00:00
Florent Castelli
c5b9a609ea Propagate environment to RtpSenders
Will be later used to conditionally enable mixed codec simulcast
with a field trial.

Bug: webrtc:42220378
Change-Id: I527a488c04cd2b5a9f4ec703504b67943e966ab0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361403
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42929}
2024-09-03 11:56:22 +00:00
Emil Vardar
55ed9501d2 Propagate corruption score to VideoReceiverInfo.
Bug: webrtc:358039777
Change-Id: Ib9f4e17b80b9af2182a019f3201882fd887da506
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361080
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emil Vardar (xWF) <vardar@google.com>
Cr-Commit-Position: refs/heads/main@{#42918}
2024-09-03 06:32:57 +00:00
Florent Castelli
8037fc6ffa Migrate absl::optional to std::optional
Bug: webrtc:342905193
No-Try: True
Change-Id: Icc968be43b8830038ea9a1f5f604307220457807
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361021
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42911}
2024-09-02 12:16:47 +00:00
Henrik Boström
da72666d94 Support standard simulcast with requested_resolution.
According to spec, if you ask for three encodings you get three
encodings (duh). But according to legacy code, if you ask for three
encodings AND codec is VP9, then surely you meant a single encoding that
is kSVC where the other encodings influence the scalability mode of the
first encoding.

Standard simulcast support in VP9 was shipped as an opt-in feature where
you have to specify `scalability_mode` and `scale_resolution_down_by` in
order to let WebRTC know that you want to disable the legacy path.

But `scale_resolution_down_by` is not the only way to configure
resolution, there is also the `requested_resolution` code path. This CL
adds standard simulcast support for this code path as well.

Prior to this change, our parameterized test would have passed in VP8
but failed in VP9. With this change the test passes for all codecs.

Bug: webrtc:361124448
Change-Id: Ic5a7136de8abf430813fd01342862775fca145fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360100
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42822}
2024-08-21 09:35:52 +00:00
Mirko Bonadei
07e83f244b Roll chromium_revision ba1ae79f58..6f9b3224db (1319128:1338914)
Change log: ba1ae79f58..6f9b3224db
Full diff: ba1ae79f58..6f9b3224db

Changed dependencies
* fuchsia_version: version:21.20240620.2.1..version:22.20240801.2.1
* reclient_version: re_client_version:0.148.0.41b09b51-gomaip..re_client_version:0.155.0.f89f6fe3-gomaip
* src/base: aa6dbe6d6a..f092508cc2
* src/build: 5bce81deee..a0e5713502
* src/buildtools: 94d7b86a83..1926812554
* src/buildtools/linux64: git_revision:b2afae122eeb6ce09c52d63f67dc53fc517dbdc8..git_revision:05eed8f6252e2dd6b555e0b65192ef03e2c4a276
* src/buildtools/mac: git_revision:b2afae122eeb6ce09c52d63f67dc53fc517dbdc8..git_revision:05eed8f6252e2dd6b555e0b65192ef03e2c4a276
* src/buildtools/reclient: re_client_version:0.148.0.41b09b51-gomaip..re_client_version:0.155.0.f89f6fe3-gomaip
* src/buildtools/win: git_revision:b2afae122eeb6ce09c52d63f67dc53fc517dbdc8..git_revision:05eed8f6252e2dd6b555e0b65192ef03e2c4a276
* src/ios: 9e33110a5d..a603c11cfa
* src/testing: a1b47952f3..7605e1a3e3
* src/third_party: 91945cadc2..49b13d9832
* src/third_party/android_build_tools/aapt2: G1S0vNnfv3f8FD-9mH5RFSUiK-mnSwri_IdiVQKwLP0C..cfGQ9GV4juNnGZIPzTmaL3ehiZM1hs6UsB5HUA8fT6oC
* src/third_party/android_build_tools/bundletool: CaAT7TJbLQC0LVo1i2TXtaMjK4SZBQ33n-s6DcBbZfgC..sZ24OFOduSafn8fvR3ajsGS6KP_oS_Tq0Cw3SA8XiD0C
* src/third_party/android_build_tools/manifest_merger: 8yUA9fKPOvtc2p3lVEA3l885a1V4-CXZuKt6xAbdR4AC..xoWqP0Bmz9ReU5nL9ems2x3Ir4Ir3PMTLyba0Ibs824C
* src/third_party/android_sdk/public: mU9jm4LkManzjSzRquV1UIA7fHBZ2pK7NtbCXxoVnVUC..fv6JzkTqfxfIbmsRC8u1b2y0EQO7yQDMDzY3-g0NVu4C
* src/third_party/android_system_sdk: 4QeolYaSKWBtVTgzJU4tHUfzA9OJTDM8YUcD426IctwC..XzzECzCzGLrccJS1U-HdmM5VMh9BotgQ_mWhFQ464PwC
* src/third_party/android_toolchain/ndk: wpJvg81kuXdMM66r_l9Doa-pLfR6S26Jd1x40LpwWEoC..Idl-vYnWGnM8K3XJhM3h6zjYVDXlnljVz3FE00V9IM8C
* src/third_party/androidx/cipd: Z7XlkD_7fIL0GqryXCpnM2SunziZ3jWsNCO2UIOAheMC..o9-gndsuJRMgUwrhQG8Ozqkmxs-SQt9pn6kzqZmuQYMC
* src/third_party/breakpad/breakpad: 76788faa4e..1420017c7f
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/022cd349fe..2feeb46c60
* src/third_party/dav1d/libdav1d: 92f592ed10..2355eeb8f2
* src/third_party/depot_tools: f1c7c96958..75932421da
* src/third_party/ffmpeg: d941d9677b..67060f141b
* src/third_party/flatbuffers/src: 6ede1ccc9e..fb9afbafc7
* src/third_party/freetype/src: 73720c7c99..ec378cecaf
* src/third_party/googletest/src: 1d17ea141d..ff233bdd4c
* src/third_party/icu: 163e29159e..9408c6fd4a
* src/third_party/kotlin_stdlib: _4e0lDaCjMgaNeq2v2olJs_15Ax3PxGfCU9fMt0FTKcC..qtDQdcYfgSh4FeSY3TnkSjnZ5FqCbP1kjk1Zj1m6Jd4C
* src/third_party/kotlinc/current: 9KgLQsrBWX4kePu9T7eDB1JknSYIPKmmumTEE70lyHYC..dsxRhKDTq0fkLEZLBAcBOaGkoSlvPe_gpTl3o680x7MC
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/afedaf9da5..d8ef6563e0
* src/third_party/libc++/src: 09b99fd8ab..7993b2fda2
* src/third_party/libc++abi/src: bac941ca44..eb6567388e
* src/third_party/libunwind/src: dcc1ffafb5..6db1ccfa71
* src/third_party/libvpx/source/libvpx: 253d6365e3..428f3104fa
* src/third_party/openh264/src: 09a4f3ec84..478e5ab3ec
* src/third_party/perfetto: f9098afffa..26643fc4e9
* src/third_party/r8: M8rc1oybTkWXWpoImSQ8gAwv6mdEyvAPnQNs6Dus_28C..PXH37yAaLUOxMKapVN58gGbrt4ncdU0of7PVnU1hqlAC
* src/third_party/re2/src: 6144b62bec..6dcd83d60f
* src/third_party/turbine: xWEBZuFKl1Dvw_zOpabeMkGVYlEllIxK06D-RoC6wUsC..HLBr7iWMO2VeD_WbrAA1eq33jZZCVxvA3noE3LNzSlQC
* src/tools: a8fe86b922..1487e03fbb
* src/tools/luci-go: git_revision:6fb4d5d26773ebddeac2c57506324493e4220007..git_revision:be41b8d978e22d396ecb4aa9f50ddc3f25977359
* src/tools/luci-go: git_revision:6fb4d5d26773ebddeac2c57506324493e4220007..git_revision:be41b8d978e22d396ecb4aa9f50ddc3f25977359
Added dependencies
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_cast_framework
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_location
* src/third_party/android_deps/cipd/libs/com_squareup_moshi_moshi
* src/third_party/android_deps/cipd/libs/com_android_support_swiperefreshlayout
* src/third_party/android_deps/cipd/libs/com_android_support_localbroadcastmanager
* src/third_party/android_deps/cipd/libs/com_android_support_support_annotations
* src/third_party/android_deps/cipd/libs/org_checkerframework_dataflow_errorprone
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_encoders
* src/third_party/android_deps/cipd/libs/org_robolectric_junit
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_iid_interop
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_installations_interop
* src/third_party/android_deps/cipd/libs/net_bytebuddy_byte_buddy_agent
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime
* src/third_party/android_deps/cipd/libs/org_robolectric_nativeruntime
* src/third_party/android_deps/cipd/libs/org_bouncycastle_bcprov_jdk18on
* src/third_party/android_deps/cipd/libs/org_robolectric_shadows_versioning
* src/third_party/android_deps/cipd/libs/net_ltgt_gradle_incap_incap
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_annotations
* src/third_party/android_deps/cipd/libs/com_google_j2objc_j2objc_annotations
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_messaging
* src/third_party/android_deps/cipd/libs/com_android_support_viewpager
* src/third_party/android_deps/cipd/libs/org_robolectric_sandbox
* src/third_party/android_deps/cipd/libs/android_arch_lifecycle_livedata_core
* src/third_party/android_deps/cipd/libs/com_google_googlejavaformat_google_java_format
* src/third_party/android_deps/cipd/libs/com_google_errorprone_error_prone_type_annotations
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_common
* src/third_party/android_deps/cipd/libs/org_checkerframework_checker_compat_qual
* src/third_party/android_deps/cipd/libs/com_google_code_findbugs_jsr305
* src/third_party/android_deps/cipd/libs/com_google_auto_value_auto_value_annotations
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth
* src/third_party/android_deps/cipd/libs/com_google_android_play_core_common
* src/third_party/android_deps/cipd/libs/com_android_support_cursoradapter
* src/third_party/android_deps/cipd/libs/com_google_errorprone_javac
* src/third_party/android_deps/cipd/libs/com_google_dagger_dagger
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_guava
* src/third_party/android_deps/cipd/libs/com_android_support_customview
* src/third_party/android_deps/cipd/libs/com_google_android_play_feature_delivery
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_base
* src/third_party/android_deps/cipd/libs/org_mockito_mockito_subclass
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_vision_common
* src/third_party/android_deps/cipd/libs/io_grpc_grpc_stub
* src/third_party/android_deps/cipd/libs/org_mockito_mockito_core
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_android
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_components
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_instantapps
* src/third_party/android_deps/cipd/libs/net_bytebuddy_byte_buddy
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_atomicfu_jvm
* src/third_party/android_deps/cipd/libs/io_perfmark_perfmark_api
* src/third_party/android_deps/cipd/libs/android_arch_lifecycle_livedata
* src/third_party/android_deps/cipd/libs/com_github_ben_manes_caffeine_caffeine
* src/third_party/android_deps/cipd/libs/com_google_errorprone_error_prone_check_api
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_cloud_messaging
* src/third_party/android_deps/cipd/libs/com_googlecode_java_diff_utils_diffutils
* src/third_party/android_deps/cipd/libs/io_grpc_grpc_binder
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_phenotype
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_cast
* src/third_party/android_deps/cipd/libs/com_google_auto_service_auto_service_annotations
* src/third_party/android_deps/cipd/libs/org_checkerframework_checker_qual
* src/third_party/android_deps/cipd/libs/javax_inject_javax_inject
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_identity_credentials
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_encoders_json
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_flags
* src/third_party/android_deps/cipd/libs/com_android_tools_sdk_common
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_tasks
* src/third_party/android_deps/cipd/libs/com_google_protobuf_protobuf_javalite
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm
* src/third_party/android_deps/cipd/libs/com_squareup_wire_wire_runtime_jvm
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth_base
* src/third_party/android_deps/cipd/libs/org_robolectric_shadows_framework
* src/third_party/android_deps/cipd/libs/org_robolectric_utils
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_util
* src/third_party/android_deps/cipd/libs/android_arch_lifecycle_runtime
* src/third_party/android_deps/cipd/libs/org_robolectric_robolectric
* src/third_party/android_deps/cipd/libs/org_mockito_mockito_android
* src/third_party/android_deps/cipd/libs/org_robolectric_pluginapi
* src/third_party/android_deps/cipd/libs/com_google_protobuf_protobuf_java
* src/third_party/android_deps/cipd/libs/com_android_support_support_core_utils
* src/third_party/android_deps/cipd/libs/org_checkerframework_checker_util
* src/third_party/android_deps/cipd/libs/com_android_support_support_core_ui
* src/third_party/android_deps/cipd/libs/com_android_support_asynclayoutinflater
* src/third_party/android_deps/cipd/libs/org_objenesis_objenesis
* src/third_party/android_deps/cipd/libs/com_android_support_print
* src/third_party/android_deps/cipd/libs/com_google_android_datatransport_transport_api
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_vision
* src/third_party/android_deps/cipd/libs/com_android_tools_layoutlib_layoutlib_api
* src/third_party/android_deps/cipd/libs/org_robolectric_annotations
* src/third_party/android_deps/cipd/libs/com_google_dagger_dagger_spi
* src/third_party/android_deps/cipd/libs/com_google_errorprone_error_prone_annotations
* src/third_party/android_deps/cipd/libs/android_arch_core_runtime
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_iid
* src/third_party/android_deps/cipd/libs/com_squareup_moshi_moshi_adapters
* src/third_party/android_deps/cipd/libs/com_google_android_annotations
* src/third_party/android_deps/cipd/libs/com_squareup_javapoet
* src/third_party/android_deps/cipd/libs/com_google_errorprone_error_prone_annotation
* src/third_party/android_deps/cipd/libs/org_eclipse_jgit_org_eclipse_jgit
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_stats
* src/third_party/android_deps/cipd/libs/com_google_dagger_dagger_producers
* src/third_party/android_deps/cipd/libs/org_hamcrest_hamcrest
* src/third_party/android_deps/cipd/libs/com_android_support_drawerlayout
* src/third_party/android_deps/cipd/libs/com_google_errorprone_error_prone_core
* src/third_party/android_deps/cipd/libs/org_robolectric_plugins_maven_dependency_resolver
* src/third_party/android_deps/cipd/libs/com_android_support_interpolator
* src/third_party/android_deps/cipd/libs/io_grpc_grpc_protobuf_lite
* src/third_party/android_deps/cipd/libs/com_google_code_gson_gson
* src/third_party/android_deps/cipd/libs/android_arch_core_common
* src/third_party/android_deps/cipd/libs/com_google_guava_guava
* src/third_party/android_deps/cipd/libs/com_android_support_versionedparcelable
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_basement
* src/third_party/android_deps/cipd/libs/org_robolectric_resources
* src/third_party/android_deps/cipd/libs/com_google_dagger_dagger_compiler
* src/third_party/android_deps/cipd/libs/javax_annotation_javax_annotation_api
* src/third_party/android_deps/cipd/libs/io_grpc_grpc_context
* src/third_party/android_deps/cipd/libs/org_ccil_cowan_tagsoup_tagsoup
* src/third_party/android_deps/cipd/libs/io_grpc_grpc_api
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_commons
* src/third_party/android_deps/cipd/libs/com_squareup_javawriter
* src/third_party/android_deps/cipd/libs/com_android_support_slidingpanelayout
* src/third_party/android_deps/cipd/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework
* src/third_party/android_deps/cipd/libs/com_android_support_support_compat
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_analysis
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm
* src/third_party/android_deps/cipd/libs/org_robolectric_utils_reflector
* src/third_party/android_deps/cipd/libs/com_google_auto_auto_common
* src/third_party/android_deps/cipd/libs/com_github_kevinstern_software_and_algorithms
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlinx_kotlinx_metadata_jvm
* src/third_party/android_deps/cipd/libs/org_conscrypt_conscrypt_openjdk_uber
* src/third_party/android_deps/cipd/libs/com_android_support_documentfile
* src/third_party/android_deps/cipd/libs/io_grpc_grpc_core
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_iid
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_stdlib_jdk7
* src/third_party/android_deps/cipd/libs/org_jsoup_jsoup
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_measurement_connector
* src/third_party/android_deps/cipd/libs/android_arch_lifecycle_common
* src/third_party/android_deps/cipd/libs/com_google_errorprone_javac_shaded
* src/third_party/android_deps/cipd/libs/com_google_firebase_firebase_installations
* src/third_party/android_deps/cipd/libs/com_google_android_material_material
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_gcm
* src/third_party/android_deps/cipd/libs/com_squareup_okio_okio_jvm
* src/third_party/android_deps/cipd/libs/org_codehaus_mojo_animal_sniffer_annotations
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_auth_api_phone
* src/third_party/android_deps/cipd/libs/com_google_android_gms_play_services_clearcut
* src/third_party/android_deps/cipd/libs/org_ow2_asm_asm_tree
* src/third_party/android_deps/cipd/libs/com_google_guava_guava_android
* src/third_party/android_deps/cipd/libs/com_android_support_collections
* src/third_party/android_deps/cipd/libs/com_android_support_coordinatorlayout
* src/third_party/android_deps/cipd/libs/io_github_java_diff_utils_java_diff_utils
* src/third_party/android_deps/cipd/libs/com_google_guava_failureaccess
* src/third_party/android_deps/cipd/libs/org_robolectric_nativeruntime_dist_compat
* src/third_party/android_deps/cipd/libs/com_android_tools_common
* src/third_party/android_deps/cipd/libs/org_robolectric_shadowapi
* src/third_party/android_deps/cipd/libs/com_google_auto_service_auto_service
* src/third_party/android_deps/cipd/libs/javax_annotation_jsr250_api
* src/third_party/android_deps/cipd/libs/android_arch_lifecycle_viewmodel
* src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_stdlib_jdk8
* src/third_party/android_deps/cipd/libs/com_android_support_loader
* src/third_party/android_deps/cipd/libs/org_pcollections_pcollections
Removed dependencies
* src/third_party/android_deps/libs/android_arch_core_common
* src/third_party/android_deps/libs/android_arch_core_runtime
* src/third_party/android_deps/libs/android_arch_lifecycle_common
* src/third_party/android_deps/libs/android_arch_lifecycle_livedata
* src/third_party/android_deps/libs/android_arch_lifecycle_livedata_core
* src/third_party/android_deps/libs/android_arch_lifecycle_runtime
* src/third_party/android_deps/libs/android_arch_lifecycle_viewmodel
* src/third_party/android_deps/libs/com_android_support_asynclayoutinflater
* src/third_party/android_deps/libs/com_android_support_collections
* src/third_party/android_deps/libs/com_android_support_coordinatorlayout
* src/third_party/android_deps/libs/com_android_support_cursoradapter
* src/third_party/android_deps/libs/com_android_support_customview
* src/third_party/android_deps/libs/com_android_support_documentfile
* src/third_party/android_deps/libs/com_android_support_drawerlayout
* src/third_party/android_deps/libs/com_android_support_interpolator
* src/third_party/android_deps/libs/com_android_support_loader
* src/third_party/android_deps/libs/com_android_support_localbroadcastmanager
* src/third_party/android_deps/libs/com_android_support_print
* src/third_party/android_deps/libs/com_android_support_slidingpanelayout
* src/third_party/android_deps/libs/com_android_support_support_annotations
* src/third_party/android_deps/libs/com_android_support_support_compat
* src/third_party/android_deps/libs/com_android_support_support_core_ui
* src/third_party/android_deps/libs/com_android_support_support_core_utils
* src/third_party/android_deps/libs/com_android_support_swiperefreshlayout
* src/third_party/android_deps/libs/com_android_support_versionedparcelable
* src/third_party/android_deps/libs/com_android_support_viewpager
* src/third_party/android_deps/libs/com_android_tools_common
* src/third_party/android_deps/libs/com_android_tools_layoutlib_layoutlib_api
* src/third_party/android_deps/libs/com_android_tools_sdk_common
* src/third_party/android_deps/libs/com_github_ben_manes_caffeine_caffeine
* src/third_party/android_deps/libs/com_github_kevinstern_software_and_algorithms
* src/third_party/android_deps/libs/com_google_android_annotations
* src/third_party/android_deps/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework
* src/third_party/android_deps/libs/com_google_android_datatransport_transport_api
* src/third_party/android_deps/libs/com_google_android_gms_play_services_auth
* src/third_party/android_deps/libs/com_google_android_gms_play_services_auth_api_phone
* src/third_party/android_deps/libs/com_google_android_gms_play_services_auth_base
* src/third_party/android_deps/libs/com_google_android_gms_play_services_base
* src/third_party/android_deps/libs/com_google_android_gms_play_services_basement
* src/third_party/android_deps/libs/com_google_android_gms_play_services_cast
* src/third_party/android_deps/libs/com_google_android_gms_play_services_cast_framework
* src/third_party/android_deps/libs/com_google_android_gms_play_services_clearcut
* src/third_party/android_deps/libs/com_google_android_gms_play_services_cloud_messaging
* src/third_party/android_deps/libs/com_google_android_gms_play_services_flags
* src/third_party/android_deps/libs/com_google_android_gms_play_services_gcm
* src/third_party/android_deps/libs/com_google_android_gms_play_services_iid
* src/third_party/android_deps/libs/com_google_android_gms_play_services_instantapps
* src/third_party/android_deps/libs/com_google_android_gms_play_services_location
* src/third_party/android_deps/libs/com_google_android_gms_play_services_phenotype
* src/third_party/android_deps/libs/com_google_android_gms_play_services_stats
* src/third_party/android_deps/libs/com_google_android_gms_play_services_tasks
* src/third_party/android_deps/libs/com_google_android_gms_play_services_vision
* src/third_party/android_deps/libs/com_google_android_gms_play_services_vision_common
* src/third_party/android_deps/libs/com_google_android_material_material
* src/third_party/android_deps/libs/com_google_android_play_core_common
* src/third_party/android_deps/libs/com_google_android_play_feature_delivery
* src/third_party/android_deps/libs/com_google_auto_auto_common
* src/third_party/android_deps/libs/com_google_auto_service_auto_service
* src/third_party/android_deps/libs/com_google_auto_service_auto_service_annotations
* src/third_party/android_deps/libs/com_google_auto_value_auto_value_annotations
* src/third_party/android_deps/libs/com_google_code_findbugs_jsr305
* src/third_party/android_deps/libs/com_google_code_gson_gson
* src/third_party/android_deps/libs/com_google_dagger_dagger
* src/third_party/android_deps/libs/com_google_dagger_dagger_compiler
* src/third_party/android_deps/libs/com_google_dagger_dagger_producers
* src/third_party/android_deps/libs/com_google_dagger_dagger_spi
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_annotation
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_annotations
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_check_api
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_core
* src/third_party/android_deps/libs/com_google_errorprone_error_prone_type_annotations
* src/third_party/android_deps/libs/com_google_errorprone_javac
* src/third_party/android_deps/libs/com_google_errorprone_javac_shaded
* src/third_party/android_deps/libs/com_google_firebase_firebase_annotations
* src/third_party/android_deps/libs/com_google_firebase_firebase_common
* src/third_party/android_deps/libs/com_google_firebase_firebase_components
* src/third_party/android_deps/libs/com_google_firebase_firebase_encoders
* src/third_party/android_deps/libs/com_google_firebase_firebase_encoders_json
* src/third_party/android_deps/libs/com_google_firebase_firebase_iid
* src/third_party/android_deps/libs/com_google_firebase_firebase_iid_interop
* src/third_party/android_deps/libs/com_google_firebase_firebase_installations
* src/third_party/android_deps/libs/com_google_firebase_firebase_installations_interop
* src/third_party/android_deps/libs/com_google_firebase_firebase_measurement_connector
* src/third_party/android_deps/libs/com_google_firebase_firebase_messaging
* src/third_party/android_deps/libs/com_google_googlejavaformat_google_java_format
* src/third_party/android_deps/libs/com_google_guava_failureaccess
* src/third_party/android_deps/libs/com_google_guava_guava
* src/third_party/android_deps/libs/com_google_guava_guava_android
* src/third_party/android_deps/libs/com_google_j2objc_j2objc_annotations
* src/third_party/android_deps/libs/com_google_protobuf_protobuf_java
* src/third_party/android_deps/libs/com_google_protobuf_protobuf_javalite
* src/third_party/android_deps/libs/com_googlecode_java_diff_utils_diffutils
* src/third_party/android_deps/libs/com_squareup_javapoet
* src/third_party/android_deps/libs/com_squareup_javawriter
* src/third_party/android_deps/libs/com_squareup_moshi_moshi
* src/third_party/android_deps/libs/com_squareup_moshi_moshi_adapters
* src/third_party/android_deps/libs/com_squareup_okio_okio_jvm
* src/third_party/android_deps/libs/com_squareup_wire_wire_runtime_jvm
* src/third_party/android_deps/libs/io_github_java_diff_utils_java_diff_utils
* src/third_party/android_deps/libs/io_grpc_grpc_api
* src/third_party/android_deps/libs/io_grpc_grpc_binder
* src/third_party/android_deps/libs/io_grpc_grpc_context
* src/third_party/android_deps/libs/io_grpc_grpc_core
* src/third_party/android_deps/libs/io_grpc_grpc_protobuf_lite
* src/third_party/android_deps/libs/io_grpc_grpc_stub
* src/third_party/android_deps/libs/io_perfmark_perfmark_api
* src/third_party/android_deps/libs/javax_annotation_javax_annotation_api
* src/third_party/android_deps/libs/javax_annotation_jsr250_api
* src/third_party/android_deps/libs/javax_inject_javax_inject
* src/third_party/android_deps/libs/net_bytebuddy_byte_buddy
* src/third_party/android_deps/libs/net_bytebuddy_byte_buddy_agent
* src/third_party/android_deps/libs/net_ltgt_gradle_incap_incap
* src/third_party/android_deps/libs/org_bouncycastle_bcprov_jdk18on
* src/third_party/android_deps/libs/org_ccil_cowan_tagsoup_tagsoup
* src/third_party/android_deps/libs/org_checkerframework_checker_compat_qual
* src/third_party/android_deps/libs/org_checkerframework_checker_qual
* src/third_party/android_deps/libs/org_checkerframework_checker_util
* src/third_party/android_deps/libs/org_checkerframework_dataflow_errorprone
* src/third_party/android_deps/libs/org_codehaus_mojo_animal_sniffer_annotations
* src/third_party/android_deps/libs/org_conscrypt_conscrypt_openjdk_uber
* src/third_party/android_deps/libs/org_eclipse_jgit_org_eclipse_jgit
* src/third_party/android_deps/libs/org_hamcrest_hamcrest
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_jdk7
* src/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_stdlib_jdk8
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_atomicfu_jvm
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_android
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_coroutines_guava
* src/third_party/android_deps/libs/org_jetbrains_kotlinx_kotlinx_metadata_jvm
* src/third_party/android_deps/libs/org_jsoup_jsoup
* src/third_party/android_deps/libs/org_mockito_mockito_android
* src/third_party/android_deps/libs/org_mockito_mockito_core
* src/third_party/android_deps/libs/org_mockito_mockito_subclass
* src/third_party/android_deps/libs/org_objenesis_objenesis
* src/third_party/android_deps/libs/org_ow2_asm_asm
* src/third_party/android_deps/libs/org_ow2_asm_asm_analysis
* src/third_party/android_deps/libs/org_ow2_asm_asm_commons
* src/third_party/android_deps/libs/org_ow2_asm_asm_tree
* src/third_party/android_deps/libs/org_ow2_asm_asm_util
* src/third_party/android_deps/libs/org_pcollections_pcollections
* src/third_party/android_deps/libs/org_robolectric_annotations
* src/third_party/android_deps/libs/org_robolectric_junit
* src/third_party/android_deps/libs/org_robolectric_nativeruntime
* src/third_party/android_deps/libs/org_robolectric_nativeruntime_dist_compat
* src/third_party/android_deps/libs/org_robolectric_pluginapi
* src/third_party/android_deps/libs/org_robolectric_plugins_maven_dependency_resolver
* src/third_party/android_deps/libs/org_robolectric_resources
* src/third_party/android_deps/libs/org_robolectric_robolectric
* src/third_party/android_deps/libs/org_robolectric_sandbox
* src/third_party/android_deps/libs/org_robolectric_shadowapi
* src/third_party/android_deps/libs/org_robolectric_shadows_framework
* src/third_party/android_deps/libs/org_robolectric_shadows_versioning
* src/third_party/android_deps/libs/org_robolectric_utils
* src/third_party/android_deps/libs/org_robolectric_utils_reflector
DEPS diff: ba1ae79f58..6f9b3224db/DEPS

Clang version changed llvmorg-19-init-14561-gecea8371:llvmorg-20-init-1009-g7088a5ed
Details: ba1ae79f58..6f9b3224db/tools/clang/scripts/update.py

BUG=b/351773023

Change-Id: I1ed351ae305262cc34fccc67bcbd748637b803f4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358880
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Christoffer Dewerin <jansson@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42744}
2024-08-08 09:20:02 +00:00
Tony Herre
5079e8a30a Allow supplying a custom NetworkControllerInterfaceFactory per-Call in PeerConnectionDependencies
This requires making CallConfig move-only so it can hold a unique_ptr to
the factory, but as discussed with Danil, that seems fine.

Bug: chromium:355610792
Change-Id: Ie52e33faaa4a2af748daeb25f5327b7a532936e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357862
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tony Herre <herre@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42679}
2024-07-29 07:17:14 +00:00
Sergey Silkin
4dedf5efae Use EncoderStreamFactory::CreateEncoderStreams() instead of GetSimulcastConfig()
In preparation for upcoming changes in GetSimulcastConfig(), which will require a vector of stream resolutions instead of just the max resolution as an input, switch tests to use CreateEncoderStreams() instead of calling GetSimulcastConfig() directly.

Bug: webrtc:351644568, b/352504711
Change-Id: I541dd54a21a8b75028cff07a250f858a47898223
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357400
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42648}
2024-07-18 16:35:10 +00:00
Sergey Silkin
9e1460f9a3 Parameterize "scale resolution down by" tests
Merge GetAndSetRtpSendParametersScaleResolutionDownByVP8, GetAndSetRtpSendParametersScaleResolutionDownByVP8WithOddResolution, GetAndSetRtpSendParametersScaleResolutionDownByH264 and GetAndSetRtpSendParametersScaleResolutionDownByH264WithOddResolution into one parameterized test.

PS. Not sure why we need separate tests for VP8 and H264. Underlaying code paths are codec agnostic as I can see.

Bug: webrtc:351644568, b/352504711
Change-Id: Ic95c59c1bfacdba8a42de8ecca9cab42014842e9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357360
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42646}
2024-07-17 12:33:01 +00:00
Sergey Silkin
3f9589ae64 Remove max_qp argument from GetSimulcastConfig()
This is a cleanup of simulcast.cc. max_qp is not needed to decide simulcast config. Move setting of max QP in VideoStream one level up, to EncoderStreamFactory::CreateEncoderStreams(), where it can be set per stream.

Bug: webrtc:351644568, b/352504711
Change-Id: Ia0e3e9d90032383574dc8867b30d362e9c5df7e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357102
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42634}
2024-07-15 10:23:10 +00:00
Sergey Silkin
c0a32fe01b Remove bitrate_priority argument from GetSimulcastConfig()
This is a cleanup of simulcast.cc. bitrate_priority is not needed to decide simulcast config. Move setting of bitrate priority in VideoStream one level up, to EncoderStreamFactory::CreateEncoderStreams().

Bug: webrtc:351644568
Change-Id: I002d728ccf8d141fe4bbb32b390129ce57c830cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357101
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42629}
2024-07-12 15:02:59 +00:00
Hirokazu Honda
44a7550acc SimulcastEncoderAdapter: Add sequence checks for encoder contexts lifetime
This CL adds the sequence checks to the functions that creates or
destroys the encoder context. Those functions must be executed on
the webrtc encoder sequence.

Bug: b/320555128
Change-Id: I1daa93f2f5326073e8d75e1d711d7554bed76a62
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356460
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Hirokazu Honda <hiroh@google.com>
Cr-Commit-Position: refs/heads/main@{#42612}
2024-07-09 13:58:54 +00:00
Sergey Silkin
3172d16ea0 Clean up EncoderStreamFactory
* Simplified ctor. Get settings (max_qp, content_type, etc) from encoder_config passed to CreateEncoderStreams().

* Some tests assigned VideoEncoderConfig::video_stream_factory to EncoderStreamFactory they created. That's not really needed. VideoStreamEncoder creates the factory if video_stream_factory is not provided [1]. Removed video_stream_factory initialization in tests.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/video/video_stream_encoder.cc;l=1002;drc=1d7d0e6e2c5002815853be251ce43fe88779ac85

Bug: b/347150850, webrtc:42233936
Change-Id: Ie0322abb6c48e1a9bd10e9ed3879e3ed484fea5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355321
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42608}
2024-07-09 09:47:55 +00:00
Ilya Nikolaevskiy
5d56b7cdf0 SimulcastEncoderAdapter: ensure registered callback isn't lost
Currently, if the single-encoder mode fails to initialize, the
callback is cleared on the encoder with Release() call.

Below, the encoder_context for the first stream will be reused but
then we only intercept the callback for the stream_idx>0.

Therefore if RegisterEncodeCompleteCallback() is called before the InitEncode(), the first stream will end up with nullptr callback.

To ensure this doesn't happen, restore the callback on the reusable encoder.

Bug: none
Change-Id: I1c830f3bf71f64807d5cc1a3000b73834011bde4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356180
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42580}
2024-07-03 08:38:04 +00:00
Sergey Silkin
e19896abec Enable VP9 flexible mode if it is not disabled by the kill-switch
Forgot negation in https://webrtc-review.googlesource.com/c/src/+/355700

Bug: webrtc:329396373
Change-Id: I6217b5b5cdb11b182405ae7b3d3d3c1fa5036bc7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355862
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42556}
2024-06-27 16:24:14 +00:00
Evan Shrubsole
479e066495 Fix spatial layers to 1 when doing VP9 simulcast encoding
Libvpx works without this, so the existing tests pass. However, other
encoder implementations (like rtc_video_encoder in Chrome) look at
different fields and get confused about the configuration.

Test: Integration tests with Chrome and windows hardware encoders.
Bug: webrtc:348342168
Change-Id: Id0d96cff34eb34c7e019a24255623f3aeeca5772
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355500
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42555}
2024-06-27 16:23:11 +00:00
Sergey Silkin
0bbc8ce12b Enable flexible mode by default
Added a dedicated kill-switch WebRTC-Video-Vp9FlexibleMode.

Bug: webrtc:329396373
Change-Id: I1acb28032898379eecf7dd81a770c73708286d74
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355700
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42543}
2024-06-26 13:46:07 +00:00
Jesús de Vicente Peña
fc6df056b6 Computing and propagating the audio stats totalprocessingdelay.
Bug: webrtc:344347965
Change-Id: Id7dd74ef085338d14582dcc0db98508d365301e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/352680
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42507}
2024-06-18 08:05:28 +00:00
Harald Alvestrand
c74412b304 Deprecate rtc::RefCountInterface
and move usages to webrtc::RefCountInterface

This CL also moves more stuff to webrtc:: and adds backwards
compatible aliases for them.

Bug: webrtc:42225969
Change-Id: Iefb8542cff793bd8aa46bef8f2f3c66a1e979d07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353720
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42446}
2024-06-07 09:47:26 +00:00
Hirokazu Honda
7c6624a9ea SimulcastEncoderAdapter: Move DestroyStoredEncoders() to protected
The encoders stored in SimulcastEncoderAdapter might have a reference
which is passed by the encoder factory. Therefore, the encoder factory
needs to outlive the encoders.
A class inheriting SimulcastEncoderAdapter possibly owns the resource.
Since a base class' destructor cannot be called before a child class,
the child class needs to destroy encoders by invoking
DestroyStoredEncoders() in the destructor.

Bug: b:320555128
Test: Build
Test: unit test
Change-Id: I34672556bab5f6b0f754edb840e9eb42d38f292e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/351442
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Hirokazu Honda <hiroh@google.com>
Cr-Commit-Position: refs/heads/main@{#42436}
2024-06-05 08:48:07 +00:00
Harald Alvestrand
752a2b8afb Refactor the GetPayloadTypesAndDefaultCodecs function
This is in preparation for moving the assignment of PT numbers
to a different place.

Bug: webrtc:42226302
Change-Id: I821f2b6b15eb9f9f3715714e2c2c220c5e5a219e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/352921
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42422}
2024-05-31 16:50:01 +00:00
Philipp Hancke
bad99ab253 RTCP: implement reduced size RTCP for audio
reduced-size RTCP, i.e. not prefixing RTCP packets with either a sender report or receiver report has been implemented for a long time but only for video.

This CL adds it for audio as well. This reduces the size of audio NACKs (16 bytes, typically one NACK per packet) sent by not prefixing it with a receiver report (32 bytes).
Other packets are not affected as e.g. transport-cc feedback does not add a RR even though that is technically required.

The effect on NACK can be tested by running Chromium with
  --disable-webrtc-encryption --force-fieldtrials=WebRTC-FakeNetworkReceiveConfig/loss_percent:5/
against this fiddle negotiating audio nack:
https://jsfiddle.net/fippo/8ubtLnfx/1/

BUG=webrtc:340041654

Change-Id: I06fb94742ff1b6f9a464c404bfc53913f23498d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350269
Commit-Queue: Philipp Hancke <phancke@meta.com>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42330}
2024-05-16 18:24:10 +00:00
Danil Chapovalov
fd89ff5d93 Provide Environment to SimulcastRateAllocator at construction
So that this class can use propagated field trials instead of the global

Bug: webrtc:42220378
Change-Id: Ic1dba0c4967735606904329f7e9e6c09f186b809
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350641
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42326}
2024-05-16 13:32:54 +00:00
Erik Språng
a8da642371 Reconfigure encoders or source change
This is done in case the new source has a different clock source which
might be out of sync with the previous one, leading to timestamp
conflicts.

Bug: b/340198307
Change-Id: Id1a82823ca85e03d99dad31b7ce9f19f09447755
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350560
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42312}
2024-05-15 13:12:08 +00:00
Danil Chapovalov
179f96de7e Provide Environment to construct VideoBitrateAllocator
To allow various VideoBitrateAllocators to use propagated rather than global field trials

This relands the
https://webrtc-review.googlesource.com/c/src/+/349920
where patchset#1 is identical to the original change,
patchset#2 undoes (postpones) the expectation downstream propagates the Environment too.

Bug: webrtc:42220378
Change-Id: I4a9a32bb0926a875d37f3ba19dd5309e97546553
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350364
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42298}
2024-05-14 11:36:42 +00:00
Jeremy Leconte
16fb7903e5 Revert "Provide Environment to construct VideoBitrateAllocator"
This reverts commit 4bf4e1753ce1567aab9f83f3a324e8bda2833459.

Reason for revert: break upstream 

Original change's description:
> Provide Environment to construct VideoBitrateAllocator
>
> To allow various VideoBitrateAllocators to use propagated rather than global field trials
>
> Bug: webrtc:42220378
> Change-Id: I52816628169a54b18a4405d84fee69b101f92f72
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349920
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42288}

Bug: webrtc:42220378
Change-Id: I7d47eb635c2d312d97a870c2a8eca0b23d2f86a0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350307
Owners-Override: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#42290}
2024-05-13 13:32:28 +00:00
Danil Chapovalov
4bf4e1753c Provide Environment to construct VideoBitrateAllocator
To allow various VideoBitrateAllocators to use propagated rather than global field trials

Bug: webrtc:42220378
Change-Id: I52816628169a54b18a4405d84fee69b101f92f72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349920
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42288}
2024-05-13 12:12:01 +00:00
Danil Chapovalov
ac426265b6 Cleanup usage of FieldTrialsView by RateControlSettings and CongestionWindowPushbackController
Replace factory that takes optional FieldTrialView with a constructor that takes non-optional reference to the same interface - all callers already guarantee it is not nullptr
Replace several local IsEnabled/IsDisabled helpers with the same helpers in FieldTrialView
In CongestionWindowPushbackController tests pass field trials bypassing global field trial string

Bug: webrtc:42220378
Change-Id: Ic49ad78919d834a5e3b9b69545d3b39088023a75
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349900
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42270}
2024-05-10 12:40:20 +00:00
Sergey Silkin
5ed460aa31 Remove WebRTC-BoostedScreenshareQp
Bug: b/42234864, b/337757868
Change-Id: Iad1a6ec4833868e3a8b60d85847c2d2367fefb88
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349720
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42224}
2024-05-03 11:36:15 +00:00
Danil Chapovalov
652bd288b3 Query EncoderInfoSettings through propagated field trials
Instead of from the global field trial string.

Bug: webrtc:42220378
Change-Id: Iddb41429e388792de02f702b4caa35689c57d9e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347720
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42201}
2024-04-30 11:16:31 +00:00
Harald Alvestrand
d78e30e00b Deprecate cricket::VideoCodec and cricket::AudioCodec
These are aliases for cricket::Codec.
Also remove internal usage

Bug: b/42225532
Change-Id: I220b95260dc942368cb6280432a058159eec8700
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349321
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42194}
2024-04-29 16:24:51 +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
Florent Castelli
0afde7614d Move webrtc::AudioProcessing include to api/ folder
Bug: webrtc:15874
Change-Id: Ie8a6e031c0f0505cfe238f7d252c47e9c34408d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347983
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42128}
2024-04-20 07:02:50 +00:00
Danil Chapovalov
44ab20021d In EncoderStreamFactory pass field trials as required parameter
Instead of passing it as optional parameter during construction, pass field trials as required parameters on use.
Test that create the EncoderStreamFactory might not have an easy access to the actual field trials, but prod code has appropriate field trials when uses the factory.

This way EncoderStreamFactory doesn't need to depend on global field trial string through FieldTrialBaseConfig class.

Bug: webrtc:10335
Change-Id: I8f7030e41579ff2c5dd362c491a4e1624b23e690
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347700
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42098}
2024-04-17 12:53:30 +00:00
Danil Chapovalov
b065f1bbd8 Require webrtc::Environment to create fake video encoders
Bug: webrtc:15860
Change-Id: Ie1b03811f8082d5584434b46e552003bfbe5ea96
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/346620
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42078}
2024-04-16 08:43:09 +00:00
Danil Chapovalov
a01300a684 Delete NullWebrtcVideoEngine as unused
Bug: webrtc:15574
Change-Id: Ieec9ad40d28ae842b212d65aaec039238d39a497
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347560
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42070}
2024-04-15 15:22:51 +00:00