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
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
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
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
cc171956f8
Rename scalability mode "NONE" to "L1T1".
...
Bug: webrtc:11607
Change-Id: I81e8ead4a2cc15de6c21c7ee852e909af38b0567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258127
Reviewed-by: Åsa Persson <asapersson@webrtc.org >
Commit-Queue: Niels Moller <nisse@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#36474}
2022-04-07 07:32:15 +00:00
a78c949772
Add support for screen content
...
Bug: webrtc:13929
Change-Id: Ie5463aadcd255bd7c63d4e529030ef85145fd08c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/257960
Reviewed-by: Marco Paniconi <marpan@google.com >
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Reviewed-by: Erik Språng <sprang@webrtc.org >
Commit-Queue: Jerome Jiang <jianj@google.com >
Cr-Commit-Position: refs/heads/main@{#36451}
2022-04-05 17:35:20 +00:00
ab68a914d6
Don't dereference null buffer in the LibaomAv1Encoder.
...
No-Try: True
Bug: webrtc:13746
Change-Id: I6e467462c16abc0f3943c6c629d77a7ddaeb682a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/257161
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#36377}
2022-03-30 12:54:38 +00:00
1bcdafca0e
Reland of remove NV12 to I420 conversion in webrtc AV1 Encoder.
...
libaom supports for NV12 inputs for encoding av1 stream. It will reduce
unnecessary conversion from NV12 to I420 format.
(https://bugs.chromium.org/p/aomedia/issues/detail?id=3232&q=3232&can=2 )
Original CL reviewed at https://webrtc-review.googlesource.com/c/src/+/251920
Bug: webrtc:13746
Change-Id: I96cc99674f315518d98355cb90566e78bead3e55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254340
Reviewed-by: Erik Språng <sprang@webrtc.org >
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#36306}
2022-03-23 16:33:32 +00:00
fef0026f2f
Revert "Reland "remove NV12 to I420 conversion in webrtc AV1 Encoder.""
...
This reverts commit d7031692e3ba9eed78ead07f8bf34a847ca1fce6.
Reason for revert: Breaks downstream project
Original change's description:
> Reland "remove NV12 to I420 conversion in webrtc AV1 Encoder."
>
> This reverts commit 66557e1af3f95a70753e782224d13a6186ed0d2e.
>
> Reason for revert: Some downstream projects seem to have an old libaom version with no NV12 support yet. It will be updated soon.
>
> Original change's description:
> > Revert "remove NV12 to I420 conversion in webrtc AV1 Encoder."
> >
> > This reverts commit 9558ab41eb4de39c62cda2dd1e559f5814a3a0c7.
> >
> > Reason for revert: speculative revert: breaks downstream project
> >
> > Original change's description:
> > > remove NV12 to I420 conversion in webrtc AV1 Encoder.
> > >
> > > libaom supports for NV12 inputs for encoding av1 stream. It will reduce
> > > unnecessary conversion from NV12 to I420 format.
> > > (https://bugs.chromium.org/p/aomedia/issues/detail?id=3232&q=3232&can=2 )
> > >
> > > Bug: webrtc:13746
> > > Change-Id: I1407227d1690b3f63cb6581eef5d587e5f418892
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251920
> > > Reviewed-by: Erik Språng <sprang@webrtc.org >
> > > Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
> > > Commit-Queue: Shuhai Peng <shuhai.peng@intel.com >
> > > Cr-Commit-Position: refs/heads/main@{#36111}
> >
> > Bug: webrtc:13746
> > Change-Id: Ie928f7f5b5992337a9d186fa70b7fdec20a33f00
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253122
> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com >
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org >
> > Commit-Queue: Artem Titov <titovartem@webrtc.org >
> > Owners-Override: Artem Titov <titovartem@webrtc.org >
> > Owners-Override: Mirko Bonadei <mbonadei@webrtc.org >
> > Cr-Commit-Position: refs/heads/main@{#36114}
>
> Bug: webrtc:13746
> Change-Id: Ib26ff6204abceb863b03d55e5953797c9ca27fc2
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253215
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com >
> Reviewed-by: Erik Språng <sprang@webrtc.org >
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org >
> Cr-Commit-Position: refs/heads/main@{#36156}
Bug: webrtc:13746
Change-Id: Ia9f8024bf70a82f8e26cd7a80d3020ed796c1b40
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254262
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com >
Reviewed-by: Andrey Logvin <landrey@webrtc.org >
Commit-Queue: Andrey Logvin <landrey@webrtc.org >
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#36159}
2022-03-09 11:47:54 +00:00
d7031692e3
Reland "remove NV12 to I420 conversion in webrtc AV1 Encoder."
...
This reverts commit 66557e1af3f95a70753e782224d13a6186ed0d2e.
Reason for revert: Some downstream projects seem to have an old libaom version with no NV12 support yet. It will be updated soon.
Original change's description:
> Revert "remove NV12 to I420 conversion in webrtc AV1 Encoder."
>
> This reverts commit 9558ab41eb4de39c62cda2dd1e559f5814a3a0c7.
>
> Reason for revert: speculative revert: breaks downstream project
>
> Original change's description:
> > remove NV12 to I420 conversion in webrtc AV1 Encoder.
> >
> > libaom supports for NV12 inputs for encoding av1 stream. It will reduce
> > unnecessary conversion from NV12 to I420 format.
> > (https://bugs.chromium.org/p/aomedia/issues/detail?id=3232&q=3232&can=2 )
> >
> > Bug: webrtc:13746
> > Change-Id: I1407227d1690b3f63cb6581eef5d587e5f418892
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251920
> > Reviewed-by: Erik Språng <sprang@webrtc.org >
> > Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
> > Commit-Queue: Shuhai Peng <shuhai.peng@intel.com >
> > Cr-Commit-Position: refs/heads/main@{#36111}
>
> Bug: webrtc:13746
> Change-Id: Ie928f7f5b5992337a9d186fa70b7fdec20a33f00
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253122
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com >
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org >
> Commit-Queue: Artem Titov <titovartem@webrtc.org >
> Owners-Override: Artem Titov <titovartem@webrtc.org >
> Owners-Override: Mirko Bonadei <mbonadei@webrtc.org >
> Cr-Commit-Position: refs/heads/main@{#36114}
Bug: webrtc:13746
Change-Id: Ib26ff6204abceb863b03d55e5953797c9ca27fc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253215
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com >
Reviewed-by: Erik Språng <sprang@webrtc.org >
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#36156}
2022-03-09 11:15:13 +00:00
15ee87fe0e
Use VideoCodec complexity to determine AV1 encoder cpu_speed.
...
Bug: webrtc:13744
Change-Id: Ib6d62dcdf7346d886c0aca09735c7d5c1f3e2455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/252340
Reviewed-by: Erik Språng <sprang@webrtc.org >
Auto-Submit: Michael Horowitz <mhoro@google.com >
Commit-Queue: Michael Horowitz <mhoro@google.com >
Cr-Commit-Position: refs/heads/main@{#36125}
2022-03-03 19:06:17 +00:00
66557e1af3
Revert "remove NV12 to I420 conversion in webrtc AV1 Encoder."
...
This reverts commit 9558ab41eb4de39c62cda2dd1e559f5814a3a0c7.
Reason for revert: speculative revert: breaks downstream project
Original change's description:
> remove NV12 to I420 conversion in webrtc AV1 Encoder.
>
> libaom supports for NV12 inputs for encoding av1 stream. It will reduce
> unnecessary conversion from NV12 to I420 format.
> (https://bugs.chromium.org/p/aomedia/issues/detail?id=3232&q=3232&can=2 )
>
> Bug: webrtc:13746
> Change-Id: I1407227d1690b3f63cb6581eef5d587e5f418892
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251920
> Reviewed-by: Erik Språng <sprang@webrtc.org >
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
> Commit-Queue: Shuhai Peng <shuhai.peng@intel.com >
> Cr-Commit-Position: refs/heads/main@{#36111}
Bug: webrtc:13746
Change-Id: Ie928f7f5b5992337a9d186fa70b7fdec20a33f00
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/253122
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com >
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org >
Commit-Queue: Artem Titov <titovartem@webrtc.org >
Owners-Override: Artem Titov <titovartem@webrtc.org >
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#36114}
2022-03-02 16:01:28 +00:00
9558ab41eb
remove NV12 to I420 conversion in webrtc AV1 Encoder.
...
libaom supports for NV12 inputs for encoding av1 stream. It will reduce
unnecessary conversion from NV12 to I420 format.
(https://bugs.chromium.org/p/aomedia/issues/detail?id=3232&q=3232&can=2 )
Bug: webrtc:13746
Change-Id: I1407227d1690b3f63cb6581eef5d587e5f418892
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/251920
Reviewed-by: Erik Språng <sprang@webrtc.org >
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Shuhai Peng <shuhai.peng@intel.com >
Cr-Commit-Position: refs/heads/main@{#36111}
2022-03-02 14:18:36 +00:00
95701503f2
Make libaom_av1_encoder always build the libaom encoder.
...
Currently `CreateLibaomAv1Encoder` will either return an actual libaom AV1 encoder or a nullptr depening on whether the build flag `enable_libaom` was configured to true or not. This CL updates the `libaom_av1_encoder` build target to no longer depend on `enable_libaom` so that `CreateLibaomAv1Encoder` will always return an encoder instance.
Added `CreateLibaomAv1EncoderIfSupported` as a replacement to the old `CreateLibaomAv1Encoder`.
Bug: webrtc:13573
Change-Id: Ibdcd52c609acd79feefa2b86f19d1b4ca3e91d0a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/242360
Reviewed-by: Erik Språng <sprang@webrtc.org >
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org >
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org >
Reviewed-by: Stefan Holmer <stefan@webrtc.org >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#35763}
2022-01-21 13:45:47 +00:00
0763ccc8e3
Don't configure SVC params without per layer bitrate configured.
...
Change-Id: Ieb200ce1a710078e380047ed8af73db0c5e0c751
Bug: none
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239442
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#35457}
2021-12-02 09:52:32 +00:00
528e4898e7
Set correct spatial layer number in FrameEncodeMetadataWriter
...
This CL set the spatial id in LibaomAv1Encoder and set correct number
of spatial layers for AV1 in FrameEncodeMetadataWriter.
Bug: None
Change-Id: I40092e45be88ec9ab75f228d9ca84c44e3cad326
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/237662
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Zhaoliang Ma <zhaoliang.ma@intel.com >
Cr-Commit-Position: refs/heads/main@{#35339}
2021-11-15 03:34:18 +00:00
d3eb8f1152
libaom AV1 encoder wrapper cleanup.
...
Bug: none
Change-Id: Ia62ab4653a1c95e7a609d767d76f7e7c64c0e751
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/236843
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#35292}
2021-11-01 13:58:32 +00:00
448231d654
Always call aom_codec_encode for every spatial layer in the libaom AV1 encoder wrapper.
...
Bug: none
Change-Id: I8556c4ba14393b958f4012fe9942af5523aae356
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/236341
Reviewed-by: Marco Paniconi <marpan@google.com >
Reviewed-by: Jerome Jiang <jianj@google.com >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#35280}
2021-10-29 09:44:00 +00:00
b26863ed0c
Reland "Handle scalability mode in QueryCodecSupport"
...
This reverts commit 74281bed5350af9c15f83e0b1aec5c5921dbf76f.
Reason for revert: Fixed unit test by removing VP9 profile 2 from encoder factory unit test since this is platform dependent.
Original change's description:
> Revert "Handle scalability mode in QueryCodecSupport"
>
> This reverts commit 715a14811883a642e3acca21fb6017f8a128c0a5.
>
> Reason for revert: Speculative revert. Breaks upstream project http://b/200009579
>
> Original change's description:
> > Handle scalability mode in QueryCodecSupport
> >
> > All valid scalability modes should be supported by the builtin
> > software decoder/encoder.
> >
> > Bug: chromium:1187565
> > Change-Id: If66105d210d5055019f35dae2f80a18ad4a70cdd
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222642
> > Commit-Queue: Johannes Kron <kron@webrtc.org >
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
> > Reviewed-by: Erik Språng <sprang@webrtc.org >
> > Cr-Commit-Position: refs/heads/main@{#34998}
>
> TBR=danilchap@webrtc.org ,sprang@webrtc.org ,kron@webrtc.org ,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: Ibf40d523c50791d73e2afdc3917892b859d2bcb6
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1187565
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232020
> Reviewed-by: Andrey Logvin <landrey@webrtc.org >
> Commit-Queue: Andrey Logvin <landrey@webrtc.org >
> Cr-Commit-Position: refs/heads/main@{#35001}
Bug: chromium:1187565
Change-Id: I598a2a530b8fea22997bbb5910eb3b864d1e28a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232021
Reviewed-by: Erik Språng <sprang@webrtc.org >
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Commit-Queue: Johannes Kron <kron@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#35003}
2021-09-15 13:12:58 +00:00
74281bed53
Revert "Handle scalability mode in QueryCodecSupport"
...
This reverts commit 715a14811883a642e3acca21fb6017f8a128c0a5.
Reason for revert: Speculative revert. Breaks upstream project http://b/200009579
Original change's description:
> Handle scalability mode in QueryCodecSupport
>
> All valid scalability modes should be supported by the builtin
> software decoder/encoder.
>
> Bug: chromium:1187565
> Change-Id: If66105d210d5055019f35dae2f80a18ad4a70cdd
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222642
> Commit-Queue: Johannes Kron <kron@webrtc.org >
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
> Reviewed-by: Erik Språng <sprang@webrtc.org >
> Cr-Commit-Position: refs/heads/main@{#34998}
TBR=danilchap@webrtc.org ,sprang@webrtc.org ,kron@webrtc.org ,webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com
Change-Id: Ibf40d523c50791d73e2afdc3917892b859d2bcb6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1187565
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/232020
Reviewed-by: Andrey Logvin <landrey@webrtc.org >
Commit-Queue: Andrey Logvin <landrey@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#35001}
2021-09-15 10:45:41 +00:00
715a148118
Handle scalability mode in QueryCodecSupport
...
All valid scalability modes should be supported by the builtin
software decoder/encoder.
Bug: chromium:1187565
Change-Id: If66105d210d5055019f35dae2f80a18ad4a70cdd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222642
Commit-Queue: Johannes Kron <kron@webrtc.org >
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Reviewed-by: Erik Språng <sprang@webrtc.org >
Cr-Commit-Position: refs/heads/main@{#34998}
2021-09-15 09:38:12 +00:00
75ac5ab859
Remove workaround for Android VideoFrame's ToI420() returning wrong type
...
Bug: webrtc:12602
Change-Id: I466a2751314fcff53051b63d77e4d5298368a095
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227040
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Byoungchan Lee <daniel.l@hpcnt.com >
Cr-Commit-Position: refs/heads/master@{#34574}
2021-07-27 20:27:52 +00:00
d45f9300b7
Add missing rate control settings for av1 wrapper
...
Bug: None
Change-Id: Ib2c22ca6ec57e85c7da5ebb0ac884ca9eeae3e5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/224523
Reviewed-by: Marco Paniconi <marpan@google.com >
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Commit-Queue: Jerome Jiang <jianj@google.com >
Cr-Commit-Position: refs/heads/master@{#34404}
2021-07-01 21:34:56 +00:00
f906ec40d4
Handle null return from ToI420 in encoders
...
In cases where ToI420 fails it should be able to return null.
Bug: webrtc:12877
Change-Id: Ia13859c104d978a29712ae10f8e15acada8406ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/222613
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Commit-Queue: Evan Shrubsole <eshr@google.com >
Cr-Commit-Position: refs/heads/master@{#34342}
2021-06-21 12:45:11 +00:00
f865444877
Make AV1 respect spatial layer active flag.
...
Bug: webrtc:12788
Change-Id: Ied629e1635b6ff9bf92fab2d1af708163f9dd28c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/220928
Commit-Queue: Erik Språng <sprang@webrtc.org >
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#34189}
2021-06-01 16:07:25 +00:00
b454767f10
AV1: Use AOM_USAGE_REALTIME when creating encoder
...
libaom is compiled with REALTIME_ONLY option. Soon it will be impossible
to create encoder or request default config with usage other than
AOM_USAGE_REALTIME. Fixing the wrapper to use proper usage parameter
Bug: None
Change-Id: I862741a724e4a8524f22ae79700b3da6517dbfb2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/214100
Commit-Queue: Fyodor Kyslov <kyslov@google.com >
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33624}
2021-04-06 02:38:34 +00:00
56db9ff1e1
VideoStreamEncoder: Don't map kNative video frame buffers.
...
Follow-up CL to VP8 and VP9 encoders taking care of mapping.
Context again:
This CL is part of Optimized Scaling efforts. In Chromium, the native
frame buffer is getting an optimized CropAndScale() implementation. To
support HW accelerated scaling, returning pre-scaled images and skipping
unnecessary intermediate downscales, WebRTC needs to 1) use CropAndScale
instead of libyuv::XXXXScale and 2) only map buffers it actually intends
to encode.
In this CL, VideoStreamEncoder no longer calls GetMappedFrameBuffer() on
behalf of the encoders, since the encoders are now able to either do the
mapping or performs ToI420() anyway.
- Tests for old VSE behaviors are updated to test the new behavior (i.e.
that native frames are pretty much always forwarded).
- The "having to call ToI420() twice" workaround to Android bug
https://crbug.com/webrtc/12602 is added to H264 and AV1 encoders.
Bug: webrtc:12469
Change-Id: Ibdc2e138d4782a140f433c8330950e61b9829f43
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211940
Commit-Queue: Henrik Boström <hbos@webrtc.org >
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Reviewed-by: Evan Shrubsole <eshr@google.com >
Cr-Commit-Position: refs/heads/master@{#33548}
2021-03-24 09:43:11 +00:00
26abdaf478
AV1: Use Default TX type for encoding
...
This will further speed up intra frame encoding
Bug: None
Change-Id: I3c836502cdcb1037e3128850a085b92acd8fc7ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212821
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Commit-Queue: Fyodor Kyslov <kyslov@google.com >
Cr-Commit-Position: refs/heads/master@{#33544}
2021-03-23 17:19:27 +00:00
f8776cba62
Revert "AV1: Use Default TX type for encoding"
...
This reverts commit b0dc518f82b2a50c1b3e3062d3b58ee221d2e028.
Reason for revert: corresponding change https://chromium-review.googlesource.com/c/chromium/src/+/2765225 from chromium has not been backported to webrtc yet.
Original change's description:
> AV1: Use Default TX type for encoding
>
> This will further speed up intra frame encoding
>
> Bug: None
> Change-Id: I1a105c6d2cdd9dc82f84d0039dbea3f0d090ab93
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212320
> Reviewed-by: Marco Paniconi <marpan@webrtc.org >
> Commit-Queue: Fyodor Kyslov <kyslov@google.com >
> Cr-Commit-Position: refs/heads/master@{#33492}
TBR=jianj@google.com ,marpan@webrtc.org ,kyslov@google.com
Change-Id: I7ff93537942ab34706db0b71c6b5f8535209619d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212340
Reviewed-by: Andrey Logvin <landrey@webrtc.org >
Commit-Queue: Fyodor Kyslov <kyslov@google.com >
Cr-Commit-Position: refs/heads/master@{#33494}
2021-03-17 19:16:50 +00:00
b0dc518f82
AV1: Use Default TX type for encoding
...
This will further speed up intra frame encoding
Bug: None
Change-Id: I1a105c6d2cdd9dc82f84d0039dbea3f0d090ab93
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212320
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Commit-Queue: Fyodor Kyslov <kyslov@google.com >
Cr-Commit-Position: refs/heads/master@{#33492}
2021-03-17 18:43:28 +00:00
bff6489c94
AV1: Disable several intra coding tools.
...
This will speed up key frame encoding (together with libaom changes)
3x-4x times with ~13% BDRate loss on key frames only
Bug: None
Change-Id: I24332f4f7285811cdc6619ba29844fe564cae95e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212040
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Commit-Queue: Fyodor Kyslov <kyslov@google.com >
Cr-Commit-Position: refs/heads/master@{#33468}
2021-03-15 23:20:08 +00:00
b3159517c3
Remove incorrect DCHECKs from LibaomAv1Encoder::SetRates.
...
Bug: none
Change-Id: I6474418e04538151cfc1588a63e9ffa476e7fd7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211870
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33465}
2021-03-15 15:20:14 +00:00
90ea0a65f4
AV1: Change multithreading, speed, qp settings
...
Use 4 threads for 360p and above.
Use tile rows for VGA and 4 threads.
Use speed 8 for 360p.
Change min max qp scaling threshold.
Bug: None
Change-Id: Ib7a5b7e539d26d9fa60aa2c4a75eb6f4b19f7dea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208340
Commit-Queue: Jerome Jiang <jianj@google.com >
Commit-Queue: Fyodor Kyslov <kyslov@google.com >
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33320}
2021-02-22 21:14:30 +00:00
04a6529c86
AV1: set superblock to 64x64 for 720p 4 threads.
...
Multithreading is more effective.
Change-Id: Ic850de4ee6affe3c0f623deb0318f991675c4351
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208300
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Commit-Queue: Jerome Jiang <jianj@google.com >
Cr-Commit-Position: refs/heads/master@{#33306}
2021-02-19 18:51:14 +00:00
de7ee3a53d
Reland "AV1: change update freq and disable denoiser explicitly."
...
This is a reland of abf5701c378329115838f3405ff48d43d2502559
Original change's description:
> AV1: change update freq and disable denoiser explicitly.
>
> Change speed/thread settings for faster encoding.
>
> Change-Id: I74d93eac26ae8700a48c437fe235643810de1ca0
> Bug: None
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206480
> Reviewed-by: Marco Paniconi <marpan@webrtc.org >
> Reviewed-by: Marco Paniconi <marpan@google.com >
> Commit-Queue: Jerome Jiang <jianj@google.com >
> Cr-Commit-Position: refs/heads/master@{#33208}
Bug: None
Change-Id: Icc8e064b4af175214a7fdec16f3c8078c0220e50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206900
Reviewed-by: Jerome Jiang <jianj@google.com >
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33226}
2021-02-11 08:25:27 +00:00
fa5ad8c0b5
Revert "AV1: change update freq and disable denoiser explicitly."
...
This reverts commit abf5701c378329115838f3405ff48d43d2502559.
Reason for revert: Breaks downstream tests.
Original change's description:
> AV1: change update freq and disable denoiser explicitly.
>
> Change speed/thread settings for faster encoding.
>
> Change-Id: I74d93eac26ae8700a48c437fe235643810de1ca0
> Bug: None
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206480
> Reviewed-by: Marco Paniconi <marpan@webrtc.org >
> Reviewed-by: Marco Paniconi <marpan@google.com >
> Commit-Queue: Jerome Jiang <jianj@google.com >
> Cr-Commit-Position: refs/heads/master@{#33208}
TBR=jianj@google.com ,marpan@google.com ,marpan@webrtc.org
Change-Id: I47b65e1c78ccb055238a44886dac87f8fc2f5330
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206644
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org >
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33213}
2021-02-10 09:30:10 +00:00
abf5701c37
AV1: change update freq and disable denoiser explicitly.
...
Change speed/thread settings for faster encoding.
Change-Id: I74d93eac26ae8700a48c437fe235643810de1ca0
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206480
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Reviewed-by: Marco Paniconi <marpan@google.com >
Commit-Queue: Jerome Jiang <jianj@google.com >
Cr-Commit-Position: refs/heads/master@{#33208}
2021-02-09 20:36:37 +00:00
3faea70d1a
allow empty scalability mode in AV1 encoder
...
Bug: chromium:1170699
Change-Id: I74c633e74c85c3b940d6302cdc8fa319e187b1e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204221
Reviewed-by: Philip Eliasson <philipel@webrtc.org >
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33122}
2021-02-01 13:00:09 +00:00
103876f379
av1: turn off a few tools that are not used for rtc
...
Explicitly turn off obmc, warped motion, global motion and ref frame mv.
Bug: chromium:1095763, chromium:1170346
Change-Id: I19bc4fceef4cd5e35ea6699e6af883af244f8954
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/203900
Reviewed-by: Marco Paniconi <marpan@webrtc.org >
Reviewed-by: Marco Paniconi <marpan@google.com >
Commit-Queue: Jerome Jiang <jianj@google.com >
Cr-Commit-Position: refs/heads/master@{#33075}
2021-01-26 17:49:34 +00:00
11215febb9
Require scalability mode to initialize av1 encoder.
...
To make VideoCodec::scalability_mode the only option to set and
change the scalability structure, for easier maintainability.
Bug: webrtc:11404
Change-Id: I6570e9a93ddf2897ff7584c5d20a246346e853e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192361
Reviewed-by: Philip Eliasson <philipel@webrtc.org >
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#33056}
2021-01-22 09:46:52 +00:00
1528e2b3a7
Set AV1E_SET_ERROR_RESILIENT_MODE on T1 and T2 enhanced layers
...
TBR=marpan@webrtc.org
Bug: webrtc:11404
Change-Id: I21c97861d6df06a0e50641a9fdf26d56e50c2030
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201627
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org >
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org >
Reviewed-by: Marco Paniconi <marpan@google.com >
Cr-Commit-Position: refs/heads/master@{#32997}
2021-01-15 11:14:00 +00:00
b942d45110
Fill fps allocation by LibaomAv1Encoder::GetEncoderInfo
...
Absent fps allocation imply single layer stream which confuses bitrate adjuster.
As a result bitrate adjuster turned off S0T1 and S0T2 layers for the L3T3 structure.
Bug: webrtc:12148
Change-Id: I5b3a7b44322f347f41dd8858b3d703827e69dd72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201384
Reviewed-by: Erik Språng <sprang@webrtc.org >
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#32952}
2021-01-12 17:26:40 +00:00
39d1f74909
Decide Av1 num of threads on frame size and available cores.
...
Change-Id: I65c40a123ad848bc175311f9d9e4d2bd28734aa2
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196681
Commit-Queue: Jerome Jiang <jianj@google.com >
Reviewed-by: Philip Eliasson <philipel@webrtc.org >
Reviewed-by: Erik Språng <sprang@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#32850}
2020-12-17 05:36:48 +00:00
06bbeb3398
in Av1 encoder wrapper communicate end_of_picture flag similar to VP9
...
In particular move end_of_picture flag out of vp9 specific information
since VP9 is not the only codec that can use spatial scalability and
thus need to distinguish layer frame and picture (aka temporal unit).
Bug: webrtc:12167
Change-Id: I0d046d8785fbea55281209ad099738c03ea7db96
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/192542
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org >
Reviewed-by: Erik Språng <sprang@webrtc.org >
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#32588}
2020-11-11 14:00:52 +00:00
1b0d5437c9
Removed _completeFrame since we never allow incomplete frames.
...
In the old jitter buffer the two VCMVideoProtection modes |kProtectionNone| and |kProtectionFEC| could be set on the jitter buffer for it to not wait for NACK and instead generate incomplete frames. This has not been possible for a long time.
Bug: webrtc:9378, webrtc:7408
Change-Id: I0a2d3ec34d721126c1128306d5fad88314f8d59f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/190680
Reviewed-by: Kári Helgason <kthelgason@webrtc.org >
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org >
Reviewed-by: Niels Moller <nisse@webrtc.org >
Commit-Queue: Philip Eliasson <philipel@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#32513}
2020-10-28 16:00:27 +00:00
9f4859e5e3
Allow to set av1 scalability mode after encoder is constructed
...
Bug: webrtc:11404
Change-Id: I70b4115c8afdc4f32fd876d31d54b7d95d0a7e1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188582
Reviewed-by: Erik Språng <sprang@webrtc.org >
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#32437}
2020-10-19 10:42:23 +00:00
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
b556b08668
Allow encoders to receive preferred pixel formats from native buffers
...
Adds a field to EncoderInfo called preferred_pixel_formats which a
software encoder populates with the pixel formats it supports. When a
kNative frame is received for encoding, the VideoStreamEncoder will
first try to get a frame that is accessible by the software encoder in
that pixel format from the kNative frame. If this fails it will fallback
to converting the frame using ToI420.
This minimizes the number of conversions made in the case that the
encoder supports the pixel format of the native buffer or where
conversion can be accelerated. For example, in Chromium, the capturer can
emit an NV12 frame, which can be consumed by libvpx which supports NV12.
Testing: Tested in Chrome with media::VideoFrame adapters.
Bug: webrtc:11977
Change-Id: I9becc4100136b0c0128f4fa06dedf9ee4dc62f37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187121
Reviewed-by: Niels Moller <nisse@webrtc.org >
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org >
Reviewed-by: Markus Handell <handellm@webrtc.org >
Commit-Queue: Evan Shrubsole <eshr@google.com >
Cr-Commit-Position: refs/heads/master@{#32353}
2020-10-08 13:47:50 +00:00
7d73c6cf9d
Explicitly enable CDEF
...
It should already be enabled by default in libaom, but explicitly enable
it here in case that changes.
Bug: None
Change-Id: I93a1dfc92f9c02bc5ec823c326d8cf6ff163bceb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/184262
Reviewed-by: Erik Språng <sprang@webrtc.org >
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#32114}
2020-09-16 11:39:44 +00:00
2549f174b5
Remove RTPFragmentationHeader creation and propagation through webrtc
...
Bug: webrtc:6471
Change-Id: I5cb1e10088aaecb5981888082b87ae9957bbaaef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181541
Reviewed-by: Erik Språng <sprang@webrtc.org >
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org >
Cr-Commit-Position: refs/heads/master@{#31955}
2020-08-17 16:37:33 +00:00