1958 Commits

Author SHA1 Message Date
Sergey Silkin
26146bbce0 Add support for screencast with temporal layering to SvcRateAllocator
SvcRateAllocator assumed no temporal layering for screencast content and allocated all bitrate to base temporal layer. Now it distributes bitrate to spatial and temporal layers (if configured) no matter of content type.

Bug: webrtc:351644568, b/364190191
Change-Id: I445f0157d2c14cad033648693dc0564ae97023e9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362080
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42979}
2024-09-09 11:12:33 +00:00
Ilya Nikolaevskiy
5ac7495701 Prepare to use SimulcastToSvcConverter in chromium
Allow moving the class, add required RTC_EXPORTs

Bug: webrtc:347737882
Change-Id: Iac14e6f62adfa13ff1e757918a2f92009f5be36f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361760
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42962}
2024-09-05 12:20:57 +00:00
Fanny Linderborg
dac0805955 Add FrameInstrumentationData to RTPVideoHeader and CodecSpecificInfo
Bug: webrtc:358039777
Change-Id: If2659240047e1935f7666266bff25ed86a6a234c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361420
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42940}
2024-09-04 07:21:02 +00:00
yazdan0a
55a59337c8 Minor format to extrapolate local time
- Removing unnecessary else {} blocks for better readability.
- Consistent naming of: timestamp_diff with explicit typecast.

BUG=None

Change-Id: I35161ffed245737c789336316f0cfb6821b12349
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361060
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42939}
2024-09-04 07:19:15 +00:00
Ilya Nikolaevskiy
e432503389 Rewrite simulcast config to equivalent SVC for vp9 simulcast
This allows to utilize libvpx optimizations considerably improving performance.
The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.

This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.

Bug: webrtc:347737882
Change-Id: I03bc27c920787a7305a9775e6341e26904592fb8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360280
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42931}
2024-09-03 12:10:33 +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
Sergey Silkin
0b4b5b0ae8 Use AV1E_SET_AUTO_TILES
Delegate control over number of times to encoder using AV1E_SET_AUTO_TILES that was added in https://aomedia-review.googlesource.com/c/aom/+/191102.

Bug: webrtc:351644568
Change-Id: I87ed11734e907c7f6c6508ac7389c84ececf5b21
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361140
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Marco Paniconi <marpan@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42903}
2024-09-02 08:54:07 +00:00
Sergey Silkin
058972f84e Make LAYER_DROP and max_consec_drop=2 to be default settings
Based on the results of the experiment (b/335129329).

Bug: webrtc:15827, b/320629637, b/335129329, chromium:329396373
Change-Id: I1599f4c1be79ee3385aac1ff345168982c8278f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360960
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42895}
2024-08-30 10:10:09 +00:00
Emil Vardar
2c637aa16f Register filter loop parameters' start position in VP9 frame header.
This is needed in order to create corruptions (by altering the filter loop params) to test the corruption detection algorithm.

Bug: webrtc:358039777
Change-Id: Ib26e9c0187b79c13b9862898625742def4091b91
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360780
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emil Vardar (xWF) <vardar@google.com>
Cr-Commit-Position: refs/heads/main@{#42890}
2024-08-30 07:17:11 +00:00
Fan Zhou
8771cf470d Allow gap on packet buffer fix with GFD
The current solution does not work for GFD since GFD is only parsed from the first packet of the frame. As a result, to access the generic information, we have to check every packet when traversing the packet buffer to find the first packet of frame. This fix is necessary to ensure temporal scaling works correctly with GFD.

Bug: webrtc:42225186
Change-Id: Iadda4ec690deab62c32eb6101583e6a6d75cfeaf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/344840
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42836}
2024-08-23 09:41:14 +00:00
Emil Vardar
97ba6afb37 Propagate the base QP value from frame header to Decoded callback in dav1d decoder.
Current version of the dav1d decoder does not propagate any QP value to the Decoded callback. This CL updates this such that the base QP gets propagated from the frame header.

Bug: None
Change-Id: Ib7624b7e27d2c973f1821df5688cbb444e4847a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/359740
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emil Vardar (xWF) <vardar@google.com>
Cr-Commit-Position: refs/heads/main@{#42790}
2024-08-16 12:02:20 +00:00
Dor Hen
1921fa5ea1 Apply include-cleaner to api/test/[^/]*
e.g all files in the api/test folder not including subdirectories

Bug: webrtc:42226242
Change-Id: I18d74a18f8feec41eb252faa9acfffd1d6f45ce4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/359420
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Dor Hen <dorhen@meta.com>
Cr-Commit-Position: refs/heads/main@{#42773}
2024-08-13 15:28:34 +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
Björn Terelius
8d7642a9f7 Remove unused QpFastFilterLow method
Bug: None
Change-Id: I63665a3fc9afd57aec8f0f7d2a2a2e631452f6c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358080
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42704}
2024-07-31 10:40:42 +00:00
Sergey Silkin
12f9d5ce60 Revert "Update support for missing HIGH profiles and 1080p"
This reverts commit 46b43e007296737751aea10685f92ddf4df63e0d.

Reason for revert: chromium:354143228

Original change's description:
> Update support for missing HIGH profiles and 1080p
>
> The High and ConstrainedHigh profiles are missing from the decoder capabilities. Also level 3.1 doesn't allow 1080p
>
> Bug: webrtc:347724928
> Change-Id: I3f33468327d2aaf352fc80f69d2ee31481bafcb5
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355001
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42528}

Bug: webrtc:347724928
Change-Id: I4d55b2982aca2e94ec983473336c4fa2a72d842f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357861
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42675}
2024-07-26 09:32:40 +00:00
Danil Chapovalov
f90a3ad3b3 Reenable disabled passing tests
Libvpx was adjusted to support scenarios test verifies, but WebRTC tests were forgotten.

Bug: webrtc:42223649
Change-Id: I19a10c939d844d00dd564bc0a16fe21844cc7cfb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357680
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42665}
2024-07-23 07:14:13 +00:00
Danil Chapovalov
ac15a137ac In RtpVideoStreamReceiver do not rely on RTP sequence number unwrap to be stable
Currently this class assumed that if the same RTP sequence number is unwrapped again result would be the same.
That might not be true when several packets were inserted in between these two calls and unwrapper changed its state

This CL propose instead to unwrap once, and save the result in the intermediate struct.
To minimize the change and the risk, only redundant unwrapping is replaced to use unwrapped sequence number

Bug: webrtc:353565743
Change-Id: I8a18c8c206a0e16010951cabcf81dd9cb1588eda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357660
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42662}
2024-07-22 15:42:12 +00:00
Sergio Garcia Murillo
45e5e385f3 Use ArrayView on H264 bitstream parsing
No-Try: true
Bug: webrtc:42225170
Change-Id: I4682f400054fee5c86ea24bebf6d703fb90074da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354722
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42650}
2024-07-19 08:16:11 +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
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
55d328dc25 Add ssilkin@webrtc to OWNERS in video/
Bug: none
Change-Id: Ie5b5e339634c07d260cc3e10312f97aad63fa552
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357180
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42633}
2024-07-15 09:11:54 +00:00
Sergey Silkin
e9810a8adb Use GetTemporalLayerSum
Bug: b/337757868
Change-Id: Ieff4c22425bab06c12419d64db7a2eef69cc54d6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355962
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42630}
2024-07-12 15:25:28 +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
Sergey Silkin
f7a1506703 Adjust max consecutive drops depending on target frame rate
Current thresholds were tuned to guarantee no buffer overshoot in an extreme scenario (encoding a high complexity video in a low bitrate).

Bug: b/337757868, webrtc:351644568
Change-Id: I832b2564af6f18f06550338cc9b3618f8acdf831
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356580
Reviewed-by: Dan Tan <dwtan@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42620}
2024-07-10 17:16:18 +00:00
Sergey Silkin
5d24544378 Fix keyframe flag
remove +1 offset.

Bug: webrtc:42225151
Change-Id: Ib735fddfd82f0ae9cfb433648950d936647614a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356820
Commit-Queue: Erik Språng <sprang@webrtc.org>
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42616}
2024-07-10 06:51:47 +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
Sergey Silkin
7a6053ae62 Rename minimum_qp to min_qp
For better consistency with the rest codebase (it is min_/max_ for all params in video_encoder.h; only qp is for some reason prefixed with minimum_).

Also fixed constant names in libaom AV1 encoder wrapper (moved min from suffix to prefix, minimum -> min_).

Bug: chromium:328598314
Change-Id: I6d8521a3abff3a0595a5241c02ef4746eb4694df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356600
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42604}
2024-07-08 15:37:23 +00:00
Sergey Silkin
b43cd86e64 Increase frame rate precision in libaom AV1 encoder wrapper
Before this change the AV1 encoder wrapper converted target frame rate from double to integer with rounding to the middle. That approach resulted in a bitrate mismatch caused by rounding error. The mismatch was especially high at low frame rates. For example, at target frame rate 1.4fps the bitrate mismatch reached 40%:

out/debug/video_codec_perf_tests --gtest_also_run_disabled_tests --gtest_filter=*EncodeDecode --framerate_fps=1.4 --width=320 --height=180 --bitrate_kbps=32 --num_frames=600
...
RESULT s0t0_bitrate_mismatch_pct: DISABLED_EncodeDecode= {39.171875,0} n%

After the change the mismatch reduced to ~2% in the same scenario:
RESULT s0t0_bitrate_mismatch_pct: DISABLED_EncodeDecode= {-2.178125,0} n%

Bug: b/337757868
Change-Id: Ia51f92b3dfdce103eed1d04cac0e084b69fa8213
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356500
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42601}
2024-07-08 12:00:43 +00:00
Per K
508e20f92b Increase number of times a nack request can be sent from 10 to 100.
If traffic policing is enforced by dropping packets, RTT can still be low.
If a packet is dropped that is needed to contninue decoding, it make sense that a nack request is sent until the packet is received, or a new key frame is requested. A key frame will be requested after 3s.
For now, this cl only increase the number of times a packet can be requested.

Bug: b/317178411
Change-Id: Iea75d36ed06f346af1dd4e55a9961d5eca45f519
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356482
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42594}
2024-07-05 13:49:06 +00:00
Åsa Persson
3b15e46a4c Get min bitrate from spatial layers for AV1 (instead of bitrate limits).
Bitrate limits should have been applied to the spatial layers in ApplySpatialLayerBitrateLimits (and usage is restricted to a single active stream/layer).

Bug: b/299588022
Change-Id: Iaae4ece28b8a95eea7d4bacba292847ba5b4000b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355841
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42588}
2024-07-04 13:16:58 +00:00
Tommi
55c3600781 Remove <ostream> dependencies
Some dependencies still exist but are a bit more complex to remove.
This CL removes either unused or easily replaced with ToString()
instances of ostream usage. In one case, moving the operator<<
implementation to the one test file that requires it.

Bug: webrtc:8982
Change-Id: Ia5c840b12a42893494af401317a3daf2fe50ba9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356240
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42582}
2024-07-03 12:27:55 +00:00
Ilya Nikolaevskiy
881c1a73ad Revert "Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast""
This reverts commit aab34560cf8a23b61d04dcb5410ddec49715cdcb.

Reason for revert: Breaks downstream projects again.

Original change's description:
> Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
>
> This reverts commit b58937316b42a04f8ed2c569d80d813bbc44b3c5.
>
> Reason for revert: Reland after downstream project fix.
>
> Original change's description:
> > Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
> >
> > This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.
> >
> > Reason for revert: Speculative revert due to failing downstream tests
> >
> > Original change's description:
> > > Rewrite simulcast config to equivalent SVC for vp9 simulcast
> > >
> > > This allows to utilize libvpx optimizations considerably improving performance.
> > > The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
> > >
> > > This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
> > >
> > > Bug: webrtc:347737882
> > > Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> > > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > > Cr-Commit-Position: refs/heads/main@{#42554}
> >
> > Bug: webrtc:347737882
> > Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> > Owners-Override: Jeremy Leconte <jleconte@google.com>
> > Reviewed-by: Jeremy Leconte <jleconte@google.com>
> > Commit-Queue: Jeremy Leconte <jleconte@google.com>
> > Cr-Commit-Position: refs/heads/main@{#42564}
>
> Bug: webrtc:347737882
> Change-Id: I020d51892982a6e776bb169584c27f7c1360d521
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356142
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42574}

Bug: webrtc:347737882
Change-Id: Id3472578159cfbe9cffeb812f1cb2c96e722298f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356260
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42579}
2024-07-03 08:17:24 +00:00
Ilya Nikolaevskiy
aab34560cf Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
This reverts commit b58937316b42a04f8ed2c569d80d813bbc44b3c5.

Reason for revert: Reland after downstream project fix.

Original change's description:
> Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
>
> This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.
>
> Reason for revert: Speculative revert due to failing downstream tests
>
> Original change's description:
> > Rewrite simulcast config to equivalent SVC for vp9 simulcast
> >
> > This allows to utilize libvpx optimizations considerably improving performance.
> > The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
> >
> > This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
> >
> > Bug: webrtc:347737882
> > Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#42554}
>
> Bug: webrtc:347737882
> Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: Jeremy Leconte <jleconte@google.com>
> Reviewed-by: Jeremy Leconte <jleconte@google.com>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#42564}

Bug: webrtc:347737882
Change-Id: I020d51892982a6e776bb169584c27f7c1360d521
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356142
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42574}
2024-07-02 14:42:35 +00:00
Åsa Persson
445d403eca Use RtpEncodingParameters min bitrate on lowest spatial layer if set.
Bug: b/299588022
Change-Id: I32dcf6763dbea184faf40cf743a9370073761762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355864
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42572}
2024-07-02 14:01:59 +00:00
Björn Terelius
b58937316b Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.

Reason for revert: Speculative revert due to failing downstream tests

Original change's description:
> Rewrite simulcast config to equivalent SVC for vp9 simulcast
>
> This allows to utilize libvpx optimizations considerably improving performance.
> The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
>
> This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
>
> Bug: webrtc:347737882
> Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42554}

Bug: webrtc:347737882
Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#42564}
2024-06-29 17:47:18 +00:00
Johannes Kron
216cce5f49 Add minimum_qp to VideoEncoder::EncoderInfo
The minimum QP field will be used to signal what the QP value will be
once the encoder reach its target video quality. This will be used
in the generalized QP convergence detection.

Bug: chromium:328598314
Change-Id: I82299cd921e3c091e651218d1e3f337875176567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355701
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Markus Handell <handellm@google.com>
Cr-Commit-Position: refs/heads/main@{#42559}
2024-06-28 10:48:22 +00:00
Ilya Nikolaevskiy
86ff48adae Rewrite simulcast config to equivalent SVC for vp9 simulcast
This allows to utilize libvpx optimizations considerably improving performance.
The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.

This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.

Bug: webrtc:347737882
Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42554}
2024-06-27 14:27:35 +00:00
Artem Titov
eb3da2b1ec Extract video writing into separate target
Bug: None
Change-Id: I3af192606eb623e21a4d648fb69bb62c14ab8b0d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355560
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42541}
2024-06-26 12:47:15 +00:00
philipel
accef6ad5d Allow for reordering around IRAPs.
Bug: webrtc:41480904
Change-Id: I16fb4466bff8a0c192467332413205cb9958674e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355482
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42537}
2024-06-26 07:02:22 +00:00
Sergio Garcia Murillo
46b43e0072 Update support for missing HIGH profiles and 1080p
The High and ConstrainedHigh profiles are missing from the decoder capabilities. Also level 3.1 doesn't allow 1080p

Bug: webrtc:347724928
Change-Id: I3f33468327d2aaf352fc80f69d2ee31481bafcb5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355001
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42528}
2024-06-25 09:40:15 +00:00
Jan Grulich
0f862520dc Video encoding: allow to use system OpenH264
OpenH264 cannot be usually used everywhere as it's proprietary and for
that reason it's usually disabled or apps using it are not allowed to be
available in default installations. Using system OpenH264  option allows
us to use e.g. noopenH264, that can be present in default installations
and later replaced by OpenH264 installed from 3rd party repository.

Bug: webrtc:14717
Change-Id: I015aacdb48c0636935f611459f0c9a6aa74a8f94
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349301
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#42509}
2024-06-18 13:39:21 +00:00
Jeremy Leconte
a0b22af9e1 Revert "Temporary add 'RTPVideoHeaderH264::nalus_length'."
This reverts commit 04dd95fcac549fbdc330cee1de65074961db5934.

Reason for revert: code has been updated

Original change's description:
> Temporary add 'RTPVideoHeaderH264::nalus_length'.
>
> This is a forward fix for https://webrtc-review.googlesource.com/c/src/+/354622 that breaks client code using nalus_length.
>
> No-Try: true
> Change-Id: Ic0fc41696e408adefe4eb8792150a64b1eab49da
> Bug: None
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354840
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Owners-Override: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#42493}

Bug: None
Change-Id: I1b65fe94ca07efdb8c7643e2ac46517050095018
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354860
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42496}
2024-06-17 11:08:33 +00:00
Jeremy Leconte
04dd95fcac Temporary add 'RTPVideoHeaderH264::nalus_length'.
This is a forward fix for https://webrtc-review.googlesource.com/c/src/+/354622 that breaks client code using nalus_length.

No-Try: true
Change-Id: Ic0fc41696e408adefe4eb8792150a64b1eab49da
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354840
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Owners-Override: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#42493}
2024-06-17 08:07:16 +00:00
Sergio Garcia Murillo
469e69800f Remove kMaxNalusPerPacket hard limit for H264 frames
Bug: webrtc:346608838
Change-Id: I067401250994bc57897edff8e8a18c3088d96b08
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354622
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42487}
2024-06-14 16:29:42 +00:00
Sergey Silkin
6e37ee34d1 Reuse QP limits from the main encoder config
Set layer QP limits equal to QP limits in the main encoder config. This reduces number of nodes to modify if you need to change the settings.

Bug: b/337757868
Change-Id: Id7f6f9d6527903e8e22ff4fad2c974bee6e87cb3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353982
Reviewed-by: Marco Paniconi <marpan@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42466}
2024-06-12 09:45:52 +00:00
Hirokazu Honda
c045c6fc60 Mark MakeScalabilityMode() RTC_EXPORT
Bug: b:320555128
Test: Build
Change-Id: Ib08fa707eb14f2616fae1e1ece965b08c88f0bdf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/351441
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Hirokazu Honda <hiroh@google.com>
Cr-Commit-Position: refs/heads/main@{#42435}
2024-06-05 08:43:00 +00:00
Florent Castelli
99c519b3fd Mass removal of absl_deps in all BUILD.gn files
Bug: webrtc:341803749
Change-Id: Id73844ba8d63b9f2f2c9391d8d8116ad0864c36d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/351540
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42372}
2024-05-23 15:09:46 +00:00
Sergey Silkin
44e63aaf0a Run encode-only test if --decoder=null
Bug: webrtc:42225151, b/337757868
Change-Id: I40da9d2b67f6757e2340a965e95fc1751c406a0a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/351041
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42356}
2024-05-21 09:05:04 +00:00
Danil Chapovalov
f317f7106a Remove option to parse RateControlSettings from the global field trial string
Bug: webrtc:42220378
Change-Id: Iff016f0f53f427ff59df816d8d87dc4a8119db65
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/350921
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42348}
2024-05-20 10:38:14 +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