Commit graph

1692 commits

Author SHA1 Message Date
Åsa Persson
319531efa6 Add support for more scalability modes (1.5:1 resolution ratio).
Added modes:
- L2T2h
- L2T3h
- L3T1h
- L3T2h
- L3T3h

Bug: webrtc:13960
Change-Id: I046a9a1f90629f6d4a5a82d4434e7cc0fa983263
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273345
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37951}
2022-08-30 12:33:41 +00:00
Byoungchan Lee
2d7db71fda Add an API to query resolution ratio between spatial layers
Bug: webrtc:13960
Change-Id: I349b08397e1cd1235bb15af1011aaac8383388b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273122
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#37949}
2022-08-30 11:48:04 +00:00
Åsa Persson
6d0516412e Add support for scalability modes S2T2, S3T1, S3T2.
Bug: webrtc:13960
Change-Id: Icafd3a5a3f8889777d65da5313b24e56a57af4d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273301
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37943}
2022-08-30 09:51:11 +00:00
Åsa Persson
46f4de5722 Add support for scalability modes L3T1_KEY, L3T2, L3T2_KEY.
Bug: webrtc:13960
Change-Id: Ib5c8309271d83a0fcfdecf7a93fdd61483c7d3e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273105
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37927}
2022-08-29 11:55:52 +00:00
Sergey Silkin
5d80958d5e Name rate adaptation tests
Bug: none
Change-Id: I10f9b2b14b5fa464d5a88d485e8c7ea1be636faf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272680
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37884}
2022-08-24 08:36:39 +00:00
Philipp Hancke
2e61a8fa60 Revert "Enable Multithreaded H264 Encoding For OpenH264"
This reverts commit bc8a62b244.

Reason for revert: reverting per
  https://bugs.chromium.org/p/webrtc/issues/detail?id=14368#c5

This needs more careful consideration and should be put behind a finch flag or origin trial

Original change's description:
> Enable Multithreaded H264 Encoding For OpenH264
>
> Re-enabled multithreaded encoding using OpenH264, as the issue described in crbug.com/583348 no longer applies.
>
> Bug: webrtc:14368
> Change-Id: I5ae768a6edf3b40d99c13fb4ee4662626c993a66
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271820
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37837}

Bug: webrtc:14368
Change-Id: Icebedfe4eb8e3901670b9f90e229379fca95206b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272600
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37878}
2022-08-23 11:18:33 +00:00
Tommi
bd02e70629 Move decoder instance ownership to VideoReceiver2
This moves the ownership away from VideoReceiveStream2 and closer to
VCMDecoderDataBase. That facilitates unregistration (upcoming change)
without recreating receive streams.

Bug: none
Change-Id: I812175134730a0ffbf7077fd149c8489481c73d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272481
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37866}
2022-08-22 13:42:47 +00:00
philipel
55a9a3de64 Use doubles instead of api/units for jitter estimation.
For now use doubles as units in api/units have insufficient precision for jitter estimation.

Bug: webrtc:14381
Change-Id: I5a691b6a404b734a5bef11d677b72040bc02ff0f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272367
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37841}
2022-08-19 11:59:58 +00:00
Erik Språng
79c96ded88 On receive stream shutdown, deregister decoders on decoder thread.
Now Configure(), Decode() and Release() calls to the decoders should
all happen on the decoder thread. Added thread checkers to verify.

Bug: None
Change-Id: I2a1cf2cf7f3c3c7c50e382d82a3638e916ed9c34
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272368
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37840}
2022-08-19 11:48:48 +00:00
Brett Hebert
bc8a62b244 Enable Multithreaded H264 Encoding For OpenH264
Re-enabled multithreaded encoding using OpenH264, as the issue described in crbug.com/583348 no longer applies.

Bug: webrtc:14368
Change-Id: I5ae768a6edf3b40d99c13fb4ee4662626c993a66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271820
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37837}
2022-08-19 10:30:37 +00:00
Markus Handell
2cfc1af78a Update rtc::Event::Wait call sites to use TimeDelta.
Bug: webrtc:14366
Change-Id: I949c1d26f030696b18153afef977633c9a5bd4cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272003
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37835}
2022-08-19 10:07:28 +00:00
Evan Shrubsole
9f1f48bdd8 Remove WebRTC-NV12Decode field trial
As mentioned in https://crbug.com/webrtc/11956, the results did not show
any performance improvments.

Bug: webrtc:11956
Change-Id: Ie050aa5a6083fcf0c776fb8d03e7d18644b37f97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272280
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37833}
2022-08-19 08:57:34 +00:00
Evan Shrubsole
de7ae5755b Remove statistics tracking from FrameBuffer2
This was only set to nullptr in non-test environments and was thusly
unused. With this change, the stats callbacks are gaurenteed to only
come from the VideoStreamBufferController and so the thread checks can
be removed.

Bug: webrtc:14003
Change-Id: Iaf0e77aa7c45a317e38ae27739edcefd3123d832
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272021
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37816}
2022-08-18 09:13:28 +00:00
Evan Shrubsole
29d7292a34 Clean VideoReceiveStream2 includes
Moves FrameBuffer2 to its own GN target to reduce the binary size of the
video target.

Bug: None
Change-Id: I40e86a1eabc0c9e8e6fada3dcdb4e3a043c61c6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271286
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37803}
2022-08-16 15:20:14 +00:00
Rasmus Brandt
94b3b5e341 Improve sanity checks
- Move existing check on `max_frame_size` to the top.
    By doing this early, the filter will not end up in an
    inconsistent state (predicted but not updated) when
    called with a tiny `max_frame_size`.
- Add sanity check on noise variance.
    This will avoid sqrt of a negative number.

Bug: webrtc:14151
Change-Id: I2507a9114655d3c3ae35bf5ed83f3f1154c42ad3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271281
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37798}
2022-08-16 13:37:22 +00:00
Rasmus Brandt
875c9d357b Reorder Kalman filter update steps physically (but not logically)
This CL reorders the update steps physically, to make them
easier to comprehend. It renames variables to be more verbose,
but also adds succinct mathematical descriptions (using Wikipedia
notation) to all steps.

No functional changes are intended with this change.

Bug: webrtc:14151
Change-Id: I6a4642e89e2b73639f0b4c928e07b317c14d5884
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271546
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37784}
2022-08-15 14:56:06 +00:00
Rasmus Brandt
24a8e0d161 Remove unnecessary virtual function specifiers
This class is never overridden.

Bug: webrtc:14151
Change-Id: I3b70e927ee0eafd71ce4bdb8f6e8d6330c1a3f08
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271501
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37781}
2022-08-15 08:58:46 +00:00
Rasmus Brandt
1856b2ce71 Stop adding zeros for the off-diagonal components
Bug: webrtc:14151
Change-Id: I58017cab911e642f457f665c5f4d1ff6d11d8571
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271545
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37768}
2022-08-12 16:04:34 +00:00
Rasmus Brandt
949530e6aa Improve FrameDelayDeltaKalmanFilter members naming.
* Update naming of data members.
* Start reordering code blocks in `PredictAndUpdate`.
  (The "predict" step is done in this C:. The "update"
   step will be improved in another cl.)

Bug: webrtc:14151
Change-Id: Idea1e8e786bd672dadedbcb3cd5598f4a033e81e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271023
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37767}
2022-08-12 14:07:44 +00:00
Rasmus Brandt
ae4a832730 Improve FrameDelayDeltaKalmanFilter interface and add more docs.
This CL simplifies and documents the interface of the Kalman filter better. A simple unit test verifying the filter's convergence is
added. No functional changes to the filter are intended.

Future CLs will improve the data member naming and code organization.

Bug: webrtc:14151
Change-Id: I01e60d4b783cabad3ccbdc711c5d746666dd16ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265877
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37766}
2022-08-12 13:42:23 +00:00
Danil Chapovalov
e519f38eaa Remove rtc::Location from SendTask test helper
that rtc::Location parameter was used only as extra information for the
RTC_CHECKs directly in the function, thus call stack of the crash should
provide all the information about the caller.

Bug: webrtc:11318
Change-Id: Iec6dd2c5de547f3e1601647a614be7ce57a55734
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270920
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37748}
2022-08-11 12:55:32 +00:00
Johannes Kron
ef4a2cfc45 Remove condition that will never be active
Remove check if `prev_estimate_` is less than 10 us since it can never
be less than 1 ms.

Bug: None
Change-Id: If151390d22fa0b6ecdc36af64168d3e2049c7b6b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271203
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37745}
2022-08-11 09:41:52 +00:00
Rasmus Brandt
39ae69690e Split out the jitter estimator's Kalman filter into its own class.
The intention of this change is to separate the Kalman filter state
(that prior to this change lived in JitterEstimator) from the
other filter's state, making it easier to see how the different
filters interact.

This move does not include any interface, functional, or
documentation changes. Those will follow in later changes.

A very basic unit test is added, which will also be expanded
later on.

Bug: webrtc:14151
Change-Id: Ifb9b8ce2d9418ea52ccf64a77fd46d1ebba30779
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264984
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37721}
2022-08-09 12:45:08 +00:00
Evan Shrubsole
1c51ec4d74 Replace timestamp map with a deque in generic decoder
* Add test to Generic decoder unittests to ensure drop behaviour is covered.
* Use simulated time in the generic decoder unittests.

Bug: webrtc:14324
Change-Id: I10b28b45c434f92d5344683fb9ca6676efe0e08c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270662
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37710}
2022-08-08 13:22:57 +00:00
Evan Shrubsole
15b2ca7e77 Clean up VCMFrameInformation
* Removes unused userData
* Switches render time to a timestamp.

Bug: None
Change-Id: If6e055e9f5486081a850691f6c481c89b59d5de2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270580
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37698}
2022-08-05 11:00:37 +00:00
Danil Chapovalov
2ed6fc2217 In Vp9 encoder wrapper force key frame on svc controller request
Bug: chromium:1349761
Change-Id: I865a251ea87b0946ff0247cba5c3bf1e098dffab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/270482
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37684}
2022-08-03 19:15:45 +00:00
Philipp Hancke
a204ad210d clean up misc TimeDelta use
follow-up from https://webrtc-review.googlesource.com/c/src/+/262810

* replace Time::Millis(0) and TimeDelta::Millis(0) with ::Zero()
* drop unnecessary webrtc namespace from some TimeDeltas
* make TimeDelta do the unit conversion for stats

BUG=webrtc:13756

Change-Id: Ic60625ae0fc7959a47a6be9f5051851feaf76373
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265875
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37664}
2022-08-02 13:52:36 +00:00
Evan Shrubsole
496ad52cb2 UpdateCurrentDelay should update delay with rounding errors
Some of the timestamps input into UpdateCurrentDelay are not truncated
to milliseconds and thus a small negative delay can result. This means
the delay will not update when it should have.

Bug: webrtc:14168
Change-Id: I5293339b6a39201c680854e9596b717025ee8dc1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266370
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37657}
2022-08-02 08:47:54 +00:00
Danil Chapovalov
3f21ba68bc Improve LibvpxVp9Encoder::UpdateReferenceBuffers perfomance
This change speeds up vp9 encoder reference fuzzer

Bug: chromium:1281020
Change-Id: I8def449b2bf7a525c8d4c8179b68d0b89594bdc1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269216
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37642}
2022-07-29 07:50:11 +00:00
Erik Språng
23370f22c1 Remove unused field trial WebRTC-ReducedJitterDelayKillSwitch.
Bug: None
Change-Id: I8747e63d5c237dce6516b69db95035728ca9965c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269206
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Auto-Submit: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37626}
2022-07-27 13:28:35 +00:00
Erik Språng
93b107d0f0 Remove unused field trial WebRTC-JitterUpperBound
Bug: webrtc:9898
Change-Id: I89f2baca9b96fc00fc73d24086e7c6f5ed8307a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269401
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Auto-Submit: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37620}
2022-07-26 10:21:04 +00:00
Danil Chapovalov
6e7c2685e3 Allow recursive check for RTC_DCHECK_RUN_ON macro
instead of using Lock/Unlock attributes, use Assert attribute to annotate code is running on certain task queue or thread.

Such check better matches what is checked, in particular allows to
recheck (and thus better document) currently used task queue

Bug: None
Change-Id: I5bc1c397efbc8342cf7915093b578bb015c85651
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269381
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37619}
2022-07-26 09:27:23 +00:00
philipel
f012bfaf96 Use Video{Encoder, Decoder}FactoryTemplate instead of Internal{Encoder, Decoder}Factory.
Bug: webrtc:13573
Change-Id: Id0e46a9b6053dedae3cbf0e5581768868900630b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269247
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37596}
2022-07-22 12:07:25 +00:00
Niels Möller
daddfee8c5 Delete tests with 4 temporal layers
Using 4 temporal layers is not quite supported: Not advertised, no
integration tests. When transitioning to configuration via scalability
mode, there are no corresponding modes defined. So delete these two
tests; they can be added back if/when support for corresponding
scalability modes are added.

Bug: webrtc:11607
Change-Id: I97f55dc95d6513ccf65fa887757a62e9c8659be7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269003
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37575}
2022-07-20 14:05:13 +00:00
Zhaoliang Ma
e7696f771d Plumb color space from VP8/VP9/H264 encoder
Bug: None
Change-Id: If771d9486bde01d5a2775d904a01ecf3953e75df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268944
Commit-Queue: Zhaoliang Ma <zhaoliang.ma@intel.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37566}
2022-07-20 09:08:41 +00:00
Danil Chapovalov
03f8b8a241 In video replace non-owning pointer to rtc::TaskQueue with non-owning pointer to TaskQueueBase
rtc::TaskQueue is a simple wrapper over TaskQueueBase and adds no
extra features when task queue is used without passing ownership.

Reducing usage of the internal rtc::TaskQueue wrapper gives users more flexibility how TaskQueueBase* is stored.

Bug: webrtc:14169
Change-Id: If5c8827544c843502c7dfcef775ac558de79ec3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268189
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37549}
2022-07-18 13:59:32 +00:00
philipel
9e9bc644f8 Update visibility for dav1d_decoder.
Bug: webrtc:13573
Change-Id: Icb43b11cf0a6ad2b90f6876875bcb545be01ec0c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268303
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37505}
2022-07-12 10:07:46 +00:00
philipel
26910ffe22 Make dav1d the default AV1 decoder.
Bug: chromium:1330308, b/234414450
Change-Id: Idc35c9e3612843001f8d7d9361f3769b45350e63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268183
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37483}
2022-07-07 14:04:46 +00:00
Danil Chapovalov
0be8eba07e Migrate pacing and video_coding to absl::AnyInvocable based TaskQueueBase interface
Bug: webrtc:14245
Change-Id: Icfab3e6548055ea72a199a226eca5233b1ead20d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267983
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37467}
2022-07-06 15:46:04 +00:00
Niels Möller
cb99ccd244 Update/delete old TODOs
Bug: webrtc:10198
Change-Id: I0341e068d792bc0b143db86e675988f4cd07ff2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267822
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37454}
2022-07-06 07:49:04 +00:00
Byoungchan Lee
a1a7c638ec Let PCF.GetRtpSenderCapabilities return codecs' scalabilityModes.
Also move ScalabilityModeToString to api and add RTC_EXPORT so that
Chromium can use it.

Bug: chromium:986069
Change-Id: I5dbbb6de9b14ca20f3ae0630552dcd44595ad5ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267780
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#37444}
2022-07-05 13:28:33 +00:00
philipel
e1c707c40f Remove unused incomplete_frame argument from JitterEstimator.
Bug: webrtc:14151
Change-Id: I6764315f0c10b304f50e4639a3e49e4ed013c41e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267842
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37443}
2022-07-05 12:53:13 +00:00
Niels Möller
39b1b42487 Use designated initializers for webrtc::SimulcastStream
Style change extracted from
https://webrtc-review.googlesource.com/c/src/+/264800

Bug: webrtc:11607
Change-Id: I3dd5ca1eef8d70a61023af37d90032225e40b55d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267841
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37442}
2022-07-05 12:23:44 +00:00
Niels Möller
6939f63ca1 Update old TODO comments
Bug: None
Change-Id: I96850df6cfa19303043108a59ef60d7b686ec747
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267661
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37436}
2022-07-05 09:59:33 +00:00
Niels Möller
67d23043f3 Fix config of number of temporal layers
Needed to produce correct VideoLayersAllocation extension for
scalability mode L1T2. The value in the `spatialLayers` array
is used on this line:
https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/video/video_stream_encoder.cc;drc=c374d11fac252535ccba15975568b1f6552c117e;l=320

Bug: webrtc:11607
Change-Id: I3bcfe738627e0af6f203a9b0f6e5323492e68987
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267621
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37414}
2022-07-04 08:59:02 +00:00
Erik Språng
609aef3149 Remove WebRTC-ExponentialNackBackoff field trial from NackRequester.
This flag has gone unused for a long time, time to clean it up.
While we're here, convert NackRequester to use unit types.

Bug: webrtc:8624
Change-Id: I1f314f9b5b6771d4f9c351a7a9a887130b86907c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/267408
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37400}
2022-07-01 15:32:44 +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
Jared Siskin
3f659b1b3c Continue looking for frames after padding packets
In H264, reordered packets can cause a frame following padding to become stuck in the packet buffer.
A minimal example:
_, P, 1  - padding packet p and frame 1. Frame 1 has not been returned because of missing packet 0
0, P, 1  - when packet 0 arrives, FindFrames will stop incrementing i when it sees padding packet P, and frame 1 will never be returned

Bug: webrtc:14216
Change-Id: I78b76df9709fa8593c5025d647e2b868af3749f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266465
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37357}
2022-06-28 13:03:03 +00:00
Danil Chapovalov
ce80886bf2 Remove video_coding dependency on ProcessThread and Module
Bug: webrtc:7219
Change-Id: I360f7df5554389274fcaef64070b9441ce0ef984
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266486
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37351}
2022-06-28 10:04:23 +00:00
Mirko Bonadei
fb698490bf Add missing absl dep.
Bug: b/36882554
Change-Id: I37e13338af8a2c75f56df283d20b1be4579074b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266763
Auto-Submit: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@google.com>
Cr-Commit-Position: refs/heads/main@{#37334}
2022-06-27 09:33:01 +00:00
Oleh Prypin
752436f821 Add dependencies on absl when they are used but undeclared
Bug: b/36882554
Change-Id: I3a1c5f0024abc452bcd74eef2b66d4493f4f974c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266760
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37320}
2022-06-24 06:19:39 +00:00
Sergio Garcia Murillo
179f40e81a add 422 8 and 10 bit decoding support
Bug: webrtc:14195
Change-Id: I2048d567850ae669d76d9e593752683f3c76499f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266180
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37306}
2022-06-22 15:08:44 +00:00
Florent Castelli
90b74389a2 SVC: Add end to end tests for VP8 and VP9
The tests check that the various scalability mode are supported
and the frames are marked properly by the encoder with their
spatial and temporal index.
The same information is then checked on the receiving side.

A new member is added on EncodedImage to store the temporal index,
and is filled by the encoders and retreived by the ref finder
objects on the decoding side.

Bug: webrtc:11607
Change-Id: I7522f6a6fc5402244cab0c4c64b544ce09bc5204
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260189
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37303}
2022-06-22 11:07:01 +00:00
Danil Chapovalov
b32ff729c9 Delete deprecated NackModule
Bug: None
Change-Id: Ie9dfe6c0051a172efa4a7768eac0bd0ddba669bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266367
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37301}
2022-06-22 09:11:31 +00:00
Sergio Garcia Murillo
8545ebae28 Add 420 and 422 10 bit h264 decoding.
422 10 bit format is called I210 in the code and implemented in I210Buffer, and 420 10-bit format format is using is using the already existing I010 format and implemented in I010Buffer.

Bug: webrtc:13826
Change-Id: I6b6ed65b9fbb295386ea20f751bd0badc49ef21b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256964
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37252}
2022-06-17 11:12:10 +00:00
Philipp Hancke
d970b0901b measure decode time in TimeDelta instead of ms
increasing precision since summing up rounded values leads to
a rounding error, in particular for small frames which take very
little time to decode.

BUG=webrtc:12526,webrtc:13756

Change-Id: I647c702808856a002c746ed9f115aa9bcaddc1f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262810
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/main@{#37249}
2022-06-17 09:57:27 +00:00
Artem Titov
c374d11fac Move to_queued_task.h and pending_task_safety_flag.h into public API
Bug: b/235812579
Change-Id: I9fa3dc4a65044df8b44fff4e9bfeac7233fa381c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/266080
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37248}
2022-06-17 09:20:39 +00:00
Johannes Kron
bbf639e930 Add low-latency stream signaling to VideoFrame and VCMTiming
This is the first CL out of three to make the low-latency stream signaling
explicit. At the moment this is done by setting the render time to 0.
There's a dependency between Chromium and WebRTC which is why this is
split into three CLs to not break any existing functionality.

Bug: chromium:1327251
Change-Id: Ie6b268746d587a99334485db77181fb2c6e9b567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/264502
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37225}
2022-06-15 14:04:28 +00:00
Niels Möller
105711e9ad Move rtc::make_ref_counted to api/
Bug: webrtc:12701
Change-Id: If49095b101c1a1763c2a44a0284c0d670cce953f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/265390
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37219}
2022-06-15 09:47:38 +00:00
Rasmus Brandt
c4d253c1ed Move VCMTiming into timing sub-folder
Bug: webrtc:14111
Change-Id: I9785b00012ea84f55789845a7e71fe26006d5067
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263581
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37061}
2022-05-31 13:01:24 +00:00
philipel
09a2848351 Remove LibaomAv1EncoderIfSupported
Bug: webrtc:13573
Change-Id: Ia9a6d1809488d92753527350a61f0a46159ccd8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262814
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37033}
2022-05-30 09:56:54 +00:00
Rasmus Brandt
10944e61ac Move JitterEstimator into timing sub-folder
Bug: webrtc:14111
Change-Id: Ic5c66f35e3cedac7a328fbb6613e5cdf13a8005e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263582
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37000}
2022-05-25 09:15:29 +00:00
Peter Kasting
0921d1e5c1 C++20 fixes.
ABSL_CONST_INIT must be on definitions, not just declarations.

Bug: chromium:1284275
Change-Id: If57064ab9417df38f770c59e50be93a104748b72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263282
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36994}
2022-05-25 06:15:29 +00:00
Åsa Persson
37f7d6c4e1 Update VP9Encoder::SupportsScalabilityMode
Indicate that the scalability mode is supported if the scalability config exists.

Bug: webrtc:13960
Change-Id: I6f42da6c9bbff1322ec5c3e3a68c7e031606da86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262981
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36989}
2022-05-24 15:51:53 +00:00
Evan Shrubsole
cc52f07087 Log conflicting video playout delays when min delay set
This is a continuation of https://webrtc-review.googlesource.com/c/src/+/263202
which added logging for max delay. However, if the max delay was already
set and a new min delay was set this logging could have been missed.

Bug: None
Change-Id: I2e7e5bdf920fa68aa723ec8480d564b322813712
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263480
Reviewed-by: Johannes Kron <kron@google.com>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36988}
2022-05-24 15:09:32 +00:00
Evan Shrubsole
eabaf8d7fe Log when conflicting recv video playout delays are set
There are two cases that can be confusing for applications developers
which may result in the playout delay not being set as intended.

First, it is not well defined which min playout delay should be used
when multiple are set. This changes adds a warning to alert application
developers that they are setting multiple playout delays.

Second, if the playout delay header extension is used, developers must
be careful that the max playout delay is always larger than the min
playout delay, otherwise the behaviour is undefined. This change logs an
error when this case is detected.

Bug: None
Change-Id: I8477d48ef64636da080792362fa898e42f038bef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263202
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36977}
2022-05-23 16:37:22 +00:00
Rasmus Brandt
2377226851 Start moving timing helper classes into timing/ sub-folder.
Putting these classes in a sub folder increases
structure and clarifies that they are used as
helper classes. Affected classes in this change:
  * CodecTimer
  * InterFrameDelay
  * RttFilter
VCMTiming will be moved in a separate CL.

Additional changes:
  * Remove VCM prefix from class names.
  * Introduce granular BUILD.gn targets.
  * Update some includes.

Bug: webrtc:14111
Change-Id: Ia75128aa955a819033b97d4784cb61904de7230b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262960
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36975}
2022-05-23 13:43:40 +00:00
Rasmus Brandt
fbf66ddddf Move UniqueTimestampCounter to video/
This helper class currently lives in `modules/video_coding`,
but it's only users are in `video/`. Thus, it makes sense to
move the class to `video/`.

Bug: webrtc:14116
Change-Id: I0d3f8961bc8f5fe80f3100dbbd309b206020e6d5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262963
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36973}
2022-05-23 13:21:32 +00:00
Tommi
f6f4543304 Rename VideoReceiveStream to VideoReceiveStreamInterface
Bug: webrtc:7484
Change-Id: I653cfe46486e0396897dd333069a894d67e3c07b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262769
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36958}
2022-05-22 10:54:38 +00:00
Niels Möller
83830f316e Delete TestListener and top-level thread wrapping.
Instead use rtc::AutoThread in tests that need that.

Bug: webrtc:9714
Change-Id: I1f33b1b2d321770d062504dd9ef86d66a345dd42
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254681
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36950}
2022-05-20 15:21:21 +00:00
Niels Möller
be2fb41b32 Delete codec-specific frameDroppingOn settings.
Followup to https://webrtc-review.googlesource.com/c/src/+/262244

Bug: webrtc:6883
Change-Id: Iefac43709f14424c74470aa878ec512b7dacc68a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262258
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36949}
2022-05-20 14:54:31 +00:00
Niels Möller
c0a9f35248 Define SimulcastStream as an alias for SpatialLayer
Step one in making it a separate type, that will be done as a
followup, after downstream code is updated to use the new name.

Bug: webrtc:11607
Change-Id: I6fa664a0729b1cfd71b7f02b6441880beee0e741
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262806
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36946}
2022-05-20 13:12:21 +00:00
Niels Möller
65b2d8ad21 Move RunLoop test class to its own build target
To make it usable in tests without depending on all of CallTest.

Bug: None
Change-Id: Ie3102ab71bcfe3862dd6c35d3285098e961e54df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262807
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36932}
2022-05-19 15:51:39 +00:00
Niels Möller
cf2c8915f4 Delete H264EncoderSpecificSettings
Production code always use the default settings.

Bug: webrtc:6883
Change-Id: I213fc6433bb1cd0a6623ad523fee2df1506588e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261903
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36926}
2022-05-18 13:53:20 +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
Danil Chapovalov
c5aa5bea49 Delete deprecated VP8Encoder::Create function
Bug: None
Change-Id: I42e5d846d3d012f8b85eede743202b84239ceef1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262764
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36914}
2022-05-17 13:23:24 +00:00
Asa Persson
2698353d43 Disable quality scaling if multiple spatial layers are requested for VP9
VP9 automaticResizeOn is disabled if more than one spatial layer is configured via scalability mode.

Bug: webrtc:13960
Change-Id: I7c6351bca6d2f32bcc7391894e8dcc9e74ca2050
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261315
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36897}
2022-05-16 15:11:24 +00:00
Niels Möller
059548919b Enable VP8 configuration via scalability mode
Bug: webrtc:13959
Change-Id: I16054506ca4086767323443fb9b1e623224e234d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258791
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36884}
2022-05-13 13:53:44 +00:00
Niels Möller
807328fec7 Move frame drop config to VideoCodec and VideoEncoderConfig.
Intend to delete corresponding codec-specific settings in a followup.

Bug: webrtc:6883
Change-Id: I78ab07729a5aee1055f80d39d8f7289beb6721e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262244
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36882}
2022-05-13 13:40:14 +00:00
philipel
9437529d4b Determine scalability mode if not explicilty set for AV1.
Bug: none
Change-Id: I86298b8a57300ed1d824cf6ba8f5daeec6af7315
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262242
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36879}
2022-05-13 12:06:44 +00:00
Johannes Kron
a45bbfe14c Remove field-trial parameter to simulate a slow decoder
Clean up by removing unused field-trial that was added in this CL
https://webrtc-review.googlesource.com/c/src/+/151911
to make it possible to simulate a slow decoder.

Bug: None
Change-Id: I237f3ac6baae76f81fcd2938e43eab9c19cea45f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261681
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36824}
2022-05-09 22:24:59 +00:00
Niels Möller
14d01508be Move VP8 SupportsScalabilityMode utility to its own build target
Intended to let Vp8TemporalLayersFactory (an api/ target) reuse
this function, without depending on the codec implementation, and
without introducing a dependency cycle with the webrtc_vp8 build
target.

Bug: webrtc:11607
Change-Id: I671422e994e1005da8c7d768e8dd8ff795553e51
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261308
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36816}
2022-05-09 13:25:25 +00:00
Niels Möller
3b0481389f Update SupportsScalabilityMode functions to use enum ScalabilityMode.
And add missing values to ScalabilityMode.

Bug: webrtc:11607
Change-Id: I892ac35a3528db11b0901d26902699ecfe8f49a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260982
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36792}
2022-05-06 07:29:20 +00:00
Peter Kasting
662d7f11d5 Fixes to support building in -std=c++20 mode.
* Structs with user-declared constructors are no longer considered
  aggregates, so remove the declarations when possible
* Types of both arguments to "==" must match to avoid "ambiguous
  function call" warning
* Various types of math involving enums are deprecated, so replace with
  constexprs where necessary
* ABSL_CONST_INIT must be used on definition as well as declaration
* volatile memory may no longer be read from and written to by the same
  operator, so replace e.g. "n++" with "n = n + 1"
* Replace an outdated check for no_unique_address support with
  __has_cpp_attribute
* std::result_of(f(x)) has been removed, replace with
  std::invoke_result(f, x)

Bug: chromium:1284275
Change-Id: I77b366ab1da7eb2c1e4c825b2714417c31ee5903
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261221
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Tomas Gunnarsson <tommi@google.com>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36786}
2022-05-05 17:15:58 +00:00
philipel
8615bf0582 Move FrameBuffer3 to api/
The webrtc::VideoStreamDecoderInterface was basically created as a public version of FrameBuffer2, but to hide the complexity of FrameBuffer2 it was also combined with decoding so that the public API could be reasonably simple to use. FrameBuffer3 has a simple API with a clear purpose, so its API can be exposed directly.

Bug: webrtc:14026
Change-Id: I81dc84b869e4d16c5e02feb5c876fbcede3d4a25
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261181
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36781}
2022-05-05 14:34:48 +00:00
philipel
30ec725b6e Auxiliary liboam AV1 encoder settings.
Bug: none
Change-Id: I03e01ffbed2ec98953650847600016e4f80fdb50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260861
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36758}
2022-05-04 11:59:29 +00:00
philipel
1bcd827e9b Merged FrameBuffer3 {Next,Last}DecodableTemporalUnitRtpTimestamp() function.
Bug: webrtc:13343
Change-Id: Ic21eddd38466e6b5fd8b912b3ee2d9dc47a0ba35
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260981
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36756}
2022-05-04 11:29:57 +00:00
philipel
8c354882f8 Updated libaom AV1 encoder configuration.
New configuration parameters are:
  AV1E_SET_DISABLE_TRELLIS_QUANT = 1
  AV1E_SET_ENABLE_DIST_WTD_COMP = 0
  AV1E_SET_ENABLE_DIFF_WTD_COMP = 0
  AV1E_SET_ENABLE_DUAL_FILTER = 0
  AV1E_SET_ENABLE_INTERINTRA_COMP = 0
  AV1E_SET_ENABLE_INTERINTRA_WEDGE = 0
  AV1E_SET_ENABLE_INTRA_EDGE_FILTER = 0
  AV1E_SET_ENABLE_INTRABC = 0
  AV1E_SET_ENABLE_MASKED_COMP = 0
  AV1E_SET_ENABLE_PAETH_INTRA = 0
  AV1E_SET_ENABLE_QM = 0
  AV1E_SET_ENABLE_RECT_PARTITIONS = 0
  AV1E_SET_ENABLE_RESTORATION = 0
  AV1E_SET_ENABLE_SMOOTH_INTERINTRA = 0
  AV1E_SET_ENABLE_TX64 = 0
  AV1E_SET_MAX_REFERENCE_FRAMES = 3

Also added a SET_ENCODER_PARAM_OR_RETURN_ERROR convenience macro.

Bug: none
Change-Id: I7a683ec4ad36f33e13e669ba25db2ad81b9b5c86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260463
Reviewed-by: Marco Paniconi <marpan@google.com>
Reviewed-by: Marco Paniconi <marpan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36729}
2022-05-02 10:12:52 +00:00
Jerome Jiang
0bb7cbc278 Lower av1 test psnr threshold
AV1 Realtime encoder stats changed

Bug: None
Change-Id: I50a8d36c45a775b3c0127476fb32c3d68d288508
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260480
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Marco Paniconi <marpan@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Jerome Jiang <jianj@google.com>
Cr-Commit-Position: refs/heads/main@{#36712}
2022-04-29 16:12:32 +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
philipel
90623e1a91 Check if packet in PacketBuffer was cleared before the frame was fully received.
Bug: none
Change-Id: Iaa5702a8da93462ba80f72821f075a6673eeb0e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260324
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36694}
2022-04-28 13:48:54 +00:00
Evan Shrubsole
f6adc647ba Remove WebRTC-LowLatencyRenderer field trial
There is no active use of it, and the fields are enabled by default in
the uses of it.

Change-Id: Ibfdb3f1befca886cb4b2f4b2ae4d6235aafafe3d
Fixed: webrtc:13998
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/256262
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36655}
2022-04-26 10:05:15 +00:00
Evan Shrubsole
a0ee64c57e Add test::FakeEncodedFrame for testing
Change-Id: I1c8fabe5caf2c723487ec1cd71a379e922026a9d
Bug: webrtc:13996
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260001
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36654}
2022-04-26 09:26:35 +00:00
Florent Castelli
c3e6e3a3e8 Remove dependency on rtc_base_approved from most targets
Bug: webrtc:9838
Change-Id: Ibd0199803597eff48ca139a5cecdc3209c62c5d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259873
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36643}
2022-04-25 12:15:30 +00:00
Florent Castelli
a30aef3dea Move event_tracer out of rtc_base_approved
Bug: webrtc:9838
Change-Id: Ic3c424729b5edd3e378c4195afe33ae5c88ad491
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259312
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36637}
2022-04-24 14:47:40 +00:00
Florent Castelli
ed4aadc0a2 Move copy_on_write_buffer out of rtc_base_approved
Bug: webrtc:9838
Change-Id: Ib9a9cd3bc868e716315594c436df7e2cce0d9a5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259311
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36636}
2022-04-24 09:51:50 +00:00
Florent Castelli
f9c5984a1d Move buffer out of rtc_base_approved
Bug: webrtc:9838
Change-Id: I14feff7b1f0182d031b6644d281be44122820ce7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259307
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36629}
2022-04-22 21:19:28 +00:00
Florent Castelli
6bb1fd358b Move rate_statistics out of rtc_base_approved
Bug: webrtc:9838
Change-Id: Ia5a45291a403097c0527d50ced85c3881653fa37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259306
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36627}
2022-04-22 15:39:48 +00:00
Florent Castelli
3629a5f0e4 Move histogram_percentile_counter out of rtc_base_approved
Bug: webrtc:9838
Change-Id: I90b3060871ab671e7949632fe6001421465b219a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258774
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36618}
2022-04-22 11:59:29 +00:00
Florent Castelli
31764096a5 Move mod_ops out of rtc_base_approved
Bug: webrtc:9838
Change-Id: I9d974e027f114098d87da368fad0c040c072a893
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258771
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36608}
2022-04-21 16:34:04 +00:00