19 Commits

Author SHA1 Message Date
Ilya Nikolaevskiy
ce45238398 Dont use SimulcastToSvcConverter if the middle stream is inactive
Bug: chromium:375048794
Change-Id: I0acc3b0096c81e00d60c9339b86f30fbe8f92212
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/366523
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43296}
2024-10-24 08:26:08 +00:00
Danil Chapovalov
bdb52e9767 Delete deprecated SvcRateAllocator constructor
To force SvcRateAllocator use propagated rather than global field trials

Bug: webrtc:42220378
Change-Id: I0ca3186ee2428aafe3d7f093603b708e03ada121
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362722
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43123}
2024-10-01 08:45:54 +00:00
yingyingma
2152af8bb7 Export CreateScalabilityStructure API to chromium
RTCVideoEncoder in chromium use it to generate dependency template
and generic frame info for hw encode accelerators after encoding.
https://chromium-review.googlesource.com/c/chromium/src/+/5849272

Bug: chromium:40763991
Change-Id: I96396ad972bf18790b09508e428c6362aae24a65
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362151
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Yingying Ma <yingying.ma@intel.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43087}
2024-09-27 03:21:38 +00:00
Danil Chapovalov
52ea2c3d2a Propagate FieldTrialsView to query WebRTC-StableTargetRate field trial
Bug: webrtc:42220378
Change-Id: Ie2a2c3eccc36c98f09176eb6f4c5f06ded9f516f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/362701
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43036}
2024-09-17 14:24:41 +00:00
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
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
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
Evan Shrubsole
de5a74a35b Replace switches in scalability mode utility functions
Instead, use an array indexed on the scalability mode. This is a
follow-up on https://webrtc-review.googlesource.com/c/src/+/344760.

Bug: webrtc:15892
Change-Id: I8e820d758e1838d65ae771b502c7c27a89790026
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/345922
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42013}
2024-04-08 09:15:21 +00:00
Niels Möller
3c24c096ef Add support for scalability modes L2T3 and S2T3
Bug: webrtc:11607
Change-Id: I1d0bd171564d2852f2f6ee2bbee26c7a1c0e1c3f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267103
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37389}
2022-07-01 08:17:04 +00:00
Asa Persson
cde992ddad Add support for VP9 configuration through scalability mode.
Bug: webrtc:13960
Change-Id: Ia930647b15f624a4d10d8d335519b69ffdae6636
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260983
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36919}
2022-05-18 08:21:00 +00:00
Niels Möller
79d566b0cf New enum ScalabilityMode.
Used instead of string representation in lower-levels of encoder configuration, to avoid string comparisons (with risk of misspelling) in lots of places.

Bug: webrtc:11607
Change-Id: I4d51c2265aac297c29976d2aa601d8ffb33b7326
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259870
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36706}
2022-04-29 12:16:42 +00:00
Danil Chapovalov
735e33fae0 Add S3T3 video scalability structure
Bug: None
Change-Id: I93760b501ff712ca2f7a9dfa3cba6ed5245e4f4b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208080
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33297}
2021-02-18 17:46:29 +00:00
Danil Chapovalov
f91f8b517a Consolidate full svc structures in one source file
Keeping structures in the same file makes it clearer which are missing
and makes it easier to see if structures are consistent with one another.

No-Try: True
Bug: None
Change-Id: I4e5e6971054dd28dd326c68369ee57b6df62725e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206987
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33256}
2021-02-13 16:17:54 +00:00
Danil Chapovalov
649648e722 Move SvcRateAllocator out of codecs/vp9 and make it not vp9 specific
to reuse it for scalable av1

Bug: webrtc:12148
Change-Id: I0d413c5466a2d66df3eea9cdf13687f4ddd1a843
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191765
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32560}
2020-11-05 18:35:37 +00:00
Danil Chapovalov
71002a226a Add layer skipping to L2T2_KEY_SHIFT structure
Bug: None
Change-Id: Iba019a999cb1812eee12bfe54c2f9ec9ebfa248f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/189965
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32487}
2020-10-26 10:35:46 +00:00
Danil Chapovalov
4b18e24967 Support layer skipping in key svc structures
Add KSvc structure for 3 spatial and 3 temporal layers to allow to cover
more scenarious

Bug: webrtc:11999
Change-Id: Id16d1acfb4ca5f98d1b17d8f66d54b31d22d0745
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188122
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32434}
2020-10-19 09:35:23 +00:00
Danil Chapovalov
da7fe39b84 Move scalability structures from av1 into own subfolder
To make it natural to reuse them for vp9

Bug: webrtc:11999
Change-Id: If2ef7ca16b8be96e0e03bb19211d9f5eb74b2d3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188620
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32414}
2020-10-15 15:21:46 +00:00