2446 Commits

Author SHA1 Message Date
Junji Watanabe
7ccf31d3b6 [infra] Allow project-libyuv-admins group to trigger LED tasks
"role/swarming.taskTriggerer" gives "swarming.tasks.createInRealm" permission.
https://source.chromium.org/chromium/infra/infra/+/main:luci/appengine/auth_service/realms/permissions.py;l=114;drc=36516367cd70f195935ffd933d939e770e3b2c65

This fixes the auth error in "led launch".
http://screen/58TYKnHALbRUQKb

Bug: b:255217089
Change-Id: Idbfc06e7ad8a94caac9bfd1fe473c60d6e4addf6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3990134
Reviewed-by: Christoffer Jansson <jansson@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
2022-11-01 12:40:22 +00:00
Junji Watanabe
ab386814ac [infra] Set reclient properties to libyuv builders
libyuv project will use the same RBE backend with webrtc project.

Bug: b:239908030
Change-Id: I1c852e57bce2fcef159d930c36f210939b4f3432
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3990126
Reviewed-by: Christoffer Jansson <jansson@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
2022-10-31 08:46:12 +00:00
Junji Watanabe
162c211257 Install reclient to libyuv
libyuv builders will also migrate from goma to reclient.

Bug: b:239908030
Change-Id: I3719b37031132164adb22dcee32665adcbd0fd87
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3977014
Commit-Queue: Christoffer Jansson <jansson@chromium.org>
Reviewed-by: Christoffer Jansson <jansson@chromium.org>
2022-10-28 09:51:35 +00:00
Christoffer Jansson
ba77d34307 add jansson@google.com to infra owners to cover when Mirko is OOO
Bug: None
Change-Id: I5c829bb52b8e2c5f99b1b6b926fcaeab4ddca115
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3990603
Commit-Queue: Magnus Jedvert <magjed@chromium.org>
Reviewed-by: Magnus Jedvert <magjed@chromium.org>
2022-10-28 09:46:02 +00:00
Frank Barchard
fe9ced6e3c ScaleRowUp2_Bilinear_12_SSSE3 preserve xmm7 for Windows
- Preserve xmm7 in ScaleRowUp2_Bilinear_12_SSSE3
- Previously xmm7 was used in ScaleRowUp2_Bilinear_12_SSSE3 without being preserved, which violates the Windows x64 calling conventions and can cause undefined behavior.


Bug: libyuv:945, 1218384
Change-Id: If18b292b588573355f9b4ba8c5b9c3fbe143d36b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3972137
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-21 19:35:17 +00:00
libyuv-ci-autoroll-builder
8084f0b0ed Roll chromium_revision a58ed3145a..219d891495 (1058030:1060441)
Change log: a58ed3145a..219d891495
Full diff: a58ed3145a..219d891495

Changed dependencies:
* src/base: 76b24d3475..3d848a5c51
* src/build: 9cba9b8342..2cf254f018
* src/buildtools: f4e35bb2e9..ca6213a9de
* src/buildtools/third_party/libc++/trunk: ebf2d34001..e6caea47f8
* src/buildtools/third_party/libc++abi/trunk: 849e53c238..685c4ad257
* src/buildtools/third_party/libunwind/trunk: 118a58005a..1111799723
* src/ios: a14c23e2c6..2c96114418
* src/testing: a1ea80d1c6..20937c1154
* src/third_party: 88ac685ca3..5d8d8067d0
* src/third_party/auto/src: ce33eafc19..b8f2bad387
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/978c34bea3..b049f00cff
* src/third_party/depot_tools: ab896c761c..dbaca22bdf
* src/third_party/freetype/src: 5182264a40..8493877e78
* src/third_party/icu: 20f8ac695a..da07448619
* src/third_party/libunwindstack: 8740b09bd1..4dbfa0e8c8
* src/third_party/nasm: 9215e8e1d0..5fd9246276
* src/tools: 68f79e6f25..11bbc9af4d
DEPS diff: a58ed3145a..219d891495/DEPS

Clang version changed llvmorg-16-init-6578-g0d30e92f:llvmorg-16-init-7184-gdeb82d4a
Details: a58ed3145a..219d891495/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: Ifad17711b071c27ad3352fafa123621646c0dfa9
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3962434
Commit-Queue: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
2022-10-18 14:21:29 +00:00
Frank Barchard
3da24c3ca3 Detile vld for gcc build fix
- add {} around loaded register

Bug: libyuv:944
Change-Id: I0d916e37beb50bda0838e4867742eb7afa57e1cc
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3957634
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-14 19:12:53 +00:00
Frank Barchard
425c05cc40 Enable AVX2 version of ABGRToY when BIT_EXACT is on
- move RGB to UV into BIT_EXACT ifdefs for each compiler
- move RGB to Y to always enabled

Bug: b/253491233
Change-Id: I7f1b40c0977ba1349578ee1ff987bda845be15f1
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3953663
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-14 17:25:57 +00:00
Frank Barchard
cb35d5f90e BGRAToI420 use SSSE3 for Y but C for UV when LIBYUV_BIT_EXACT enabled
- Previously was C for both Y and UV.

Was BGRAToI420_Opt (17780 ms)
Now BGRAToI420_Opt (9546 ms)

Bug: b/253491233
Change-Id: Id103d8d5ba0fed0f7a427dd5955e1830275eff6b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3953131
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-10-14 03:09:56 +00:00
libyuv-ci-autoroll-builder
01925b40bc Roll chromium_revision cbf7ac7473..a58ed3145a (1055152:1058030)
Change log: cbf7ac7473..a58ed3145a
Full diff: cbf7ac7473..a58ed3145a

Changed dependencies:
* src/base: 170e6ab443..76b24d3475
* src/build: 1326123dbe..9cba9b8342
* src/buildtools: e564697e6c..f4e35bb2e9
* src/buildtools/third_party/libc++/trunk: 7261e95e51..ebf2d34001
* src/buildtools/third_party/libc++abi/trunk: db2a783a7d..849e53c238
* src/buildtools/third_party/libunwind/trunk: 08ebcbe7b6..118a58005a
* src/ios: 8623fa1a48..a14c23e2c6
* src/testing: 32e58ce34c..a1ea80d1c6
* src/third_party: 0e58121916..88ac685ca3
* src/third_party/auto/src: 0079f49b32..ce33eafc19
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/04989786e9..1ee71185a2
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/0c709a95ed..978c34bea3
* src/third_party/depot_tools: 2c54a19bd0..ab896c761c
* src/third_party/freetype/src: 0417527d5b..5182264a40
* src/third_party/libunwindstack: e184bd94bf..8740b09bd1
* src/tools: 2ecd31b16c..68f79e6f25
DEPS diff: cbf7ac7473..a58ed3145a/DEPS

Clang version changed llvmorg-16-init-6457-g20a269cf:llvmorg-16-init-6578-g0d30e92f
Details: cbf7ac7473..a58ed3145a/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: I93d6142c28f96e2a076e62eba9634fe65d74a35b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3949749
Commit-Queue: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
2022-10-12 14:28:00 +00:00
libyuv-ci-autoroll-builder
97bd3bba83 Roll chromium_revision 1b7024f18f..cbf7ac7473 (1054163:1055152)
Change log: 1b7024f18f..cbf7ac7473
Full diff: 1b7024f18f..cbf7ac7473

Changed dependencies:
* src/base: 35807b2634..170e6ab443
* src/build: de28eb7d12..1326123dbe
* src/buildtools: 9174abb6ac..e564697e6c
* src/buildtools/third_party/libc++/trunk: 2e919977e0..7261e95e51
* src/buildtools/third_party/libc++abi/trunk: 20a144a49a..db2a783a7d
* src/ios: 2a82cb46c8..8623fa1a48
* src/testing: 6ff813a5ed..32e58ce34c
* src/third_party: 72ee8aaf4e..0e58121916
* src/third_party/auto/src: bd6926415e..0079f49b32
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/16eb727884..0c709a95ed
* src/third_party/depot_tools: a724859f7a..2c54a19bd0
* src/third_party/freetype/src: de8f14a8e4..0417527d5b
* src/tools: 8f0c6bf472..2ecd31b16c
DEPS diff: 1b7024f18f..cbf7ac7473/DEPS

Clang version changed llvmorg-16-init-6084-g2f3d7c2c:llvmorg-16-init-6457-g20a269cf
Details: 1b7024f18f..cbf7ac7473/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: I5740dca3ea003de0c982c53648e8a071651820eb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3935553
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-10-05 07:38:35 +00:00
Mirko Bonadei
5cbd03008d Roll chromium_revision 28dca358ed..1b7024f18f (1052960:1054163)
Change log: 28dca358ed..1b7024f18f
Full diff: 28dca358ed..1b7024f18f

Changed dependencies:
* src/base: 1bf506fcf3..35807b2634
* src/build: 52a4ebc92d..de28eb7d12
* src/buildtools: 133d7cdb35..9174abb6ac
* src/buildtools/third_party/libc++/trunk: 11bdb46a42..2e919977e0
* src/buildtools/third_party/libc++abi/trunk: 5c3e02e92a..20a144a49a
* src/buildtools/third_party/libunwind/trunk: 7ff728a977..08ebcbe7b6
* src/ios: 6168124f7b..2a82cb46c8
* src/testing: 779d58002d..6ff813a5ed
* src/third_party: 4c9ce34450..72ee8aaf4e
* src/third_party/auto/src: c120217b63..bd6926415e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5eb0675d9c..16eb727884
* src/third_party/depot_tools: e3ed6a8e01..a724859f7a
* src/third_party/freetype/src: 3f3427c6f3..de8f14a8e4
* src/tools: aee28c1b0a..8f0c6bf472
DEPS diff: 28dca358ed..1b7024f18f/DEPS

Clang version changed llvmorg-16-init-5189-gbfcd536a:llvmorg-16-init-6084-g2f3d7c2c
Details: 28dca358ed..1b7024f18f/tools/clang/scripts/update.py

BUG=None

Change-Id: I51fbdbc0e17eac9e65b66f5dbb90da142c8fdfd7
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3933007
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-10-04 20:55:13 +00:00
Frank Barchard
4e9601e39a Update CMakeLists.txt to include yuvconstants tool and deps on gflags
Bug: None
Change-Id: I5658addc2c44e6cabfcc8d349e66e13da6c3c0e6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3928147
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-03 23:09:07 +00:00
Jeremy Maitin-Shepard
c365da9c6c Use find_package(JPEG) in place of include(FindJPEG)
The former allows the package to be overridden with a local build by
`FetchContent`.

Also includes the fix to _MSC_VER conditions from:
https://aomedia.googlesource.com/aom/+/refs/heads/main/third_party/libyuv/README.libaom

Change-Id: I666e591becb3efaa7b5b68d27476319a2909b88e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3933570
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-10-03 22:19:28 +00:00
Junji Watanabe
4b93eb90ba Install CIPD ninja using DEPS
See chromium/src's CL https://crrev.com/c/3869740 for the context.

Bug: chromium:1340825
Change-Id: If14a7273afe3982622fb8aad4e6cab3468ffd60c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3932276
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
2022-10-03 13:40:07 +00:00
Frank Barchard
00950840d1 YUY2ToNV12 using YUY2ToY and YUY2ToNVUV
- Optimized YUY2ToNV12 that reduces it from 3 steps to 2 steps
  - Was SplitUV, memcpy Y, InterpolateUV
  - Now YUY2ToY, YUY2ToNVUV
- rollback LIBYUV_UNLIMITED_DATA

3840x2160 1000 iterations:

Pixel 2 Cortex A73
Was YUY2ToNV12_Opt (6515 ms)
Now YUY2ToNV12_Opt (3350 ms)

AB7 Mediatek P35 Cortex A53
Was YUY2ToNV12_Opt (6435 ms)
Now YUY2ToNV12_Opt (3301 ms)

Skylake AVX2 x64
Was YUY2ToNV12_Opt (1872 ms)
Now YUY2ToNV12_Opt (1657 ms)

SSE2 x64
Was YUY2ToNV12_Opt (2008 ms)
Now YUY2ToNV12_Opt (1691 ms)

Windows Skylake AVX2 32 bit x86
Was YUY2ToNV12_Opt (2161 ms)
Now YUY2ToNV12_Opt (1628 ms)

Bug: libyuv:943
Change-Id: I6c2ba2ae765413426baf770b837de114f808f6d0
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3929843
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-09-30 22:41:21 +00:00
Mirko Bonadei
9ba40a8f03 Remove old cipd clobber gclient hook.
This is not needed anymore, Chromium removed this in 2018 [1].

[1] - https://chromium-review.googlesource.com/c/chromium/src/+/1308907

Bug: None
Change-Id: I59484f4dadfcf669d656e30530cd96dce2dc3018
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3928023
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-09-29 17:01:38 +00:00
libyuv-ci-autoroll-builder
faa2f4db0e Roll chromium_revision 004bde16df..28dca358ed (1051775:1052960)
Change log: 004bde16df..28dca358ed
Full diff: 004bde16df..28dca358ed

Changed dependencies:
* src/base: 3bc981b4c9..1bf506fcf3
* src/build: 2f75979ab1..52a4ebc92d
* src/buildtools: 7fca26a6d1..133d7cdb35
* src/buildtools/third_party/libc++/trunk: c23f69f322..11bdb46a42
* src/ios: 23dd80fe5d..6168124f7b
* src/testing: 66850111c7..779d58002d
* src/third_party: e825e489ed..4c9ce34450
* src/third_party/depot_tools: 9ef048cd50..e3ed6a8e01
* src/third_party/freetype/src: bd41700773..3f3427c6f3
* src/tools: 55f85f6903..aee28c1b0a
DEPS diff: 004bde16df..28dca358ed/DEPS

No update to Clang.

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: I719b8e088627f5d909e7c1e2ad78bc77ac6ce86e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3929058
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2022-09-29 16:07:23 +00:00
libyuv-ci-autoroll-builder
562b67eaf6 Roll chromium_revision 7d683aeda8..004bde16df (1050091:1051775)
Change log: 7d683aeda8..004bde16df
Full diff: 7d683aeda8..004bde16df

Changed dependencies:
* src/base: 417936cae4..3bc981b4c9
* src/build: 806b01ed96..2f75979ab1
* src/buildtools: b79692f320..7fca26a6d1
* src/buildtools/third_party/libc++/trunk: a4dc7f17ca..c23f69f322
* src/ios: 625640808c..23dd80fe5d
* src/testing: 154d994baf..66850111c7
* src/third_party: ea1616408d..e825e489ed
* src/third_party/auto/src: 14413dc9c7..c120217b63
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5b90d5e756..5eb0675d9c
* src/third_party/depot_tools: 08bb5c487f..9ef048cd50
* src/third_party/freetype/src: 33ceac2afc..bd41700773
* src/third_party/libunwindstack: 3c86843ae0..e184bd94bf
* src/tools: f85dc28ce5..55f85f6903
DEPS diff: 7d683aeda8..004bde16df/DEPS

Clang version changed llvmorg-16-init-4949-g8ace9ea258c9:llvmorg-16-init-5189-gbfcd536a
Details: 7d683aeda8..004bde16df/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: Ib993a32d70f859933c66726f36de9e6271887336
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3922314
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-09-27 15:33:50 +00:00
Fabrice de Gans
73968bd946 [code-health] Migrate presubmit to python3
This also fixes a presubmit warning by formatting a gni file.

No-Try: True
Bug: 942720
Change-Id: I50bfc993282c5546753ba2be466ba06a5ff9cc6a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3902395
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-09-26 21:57:55 +00:00
Frank Barchard
b9adaef113 Enable unlimited data for YUV to RGB
- Provide LIBYUV_LIMITED_DATA macro for backwards compatiblity

Bug: b/474156256
Change-Id: I5d5d7fb640d51ae3c5ad363f2a28c8bfbd3048a5
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3912081
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-09-23 12:51:37 +00:00
Mirko Bonadei
344bd4dd68 Roll chromium_revision 829c6df33d..7d683aeda8 (945687:1050091)
Change log: 829c6df33d..7d683aeda8
Full diff: 829c6df33d..7d683aeda8

Changed dependencies:
* src/base: e9e6396224..417936cae4
* src/build: dcea344303..806b01ed96
* src/buildtools: 075dd7e228..b79692f320
* src/buildtools/clang_format/script: 99876cacf7..8b525d2747
* src/buildtools/third_party/libc++/trunk: 79a2e924d9..a4dc7f17ca
* src/buildtools/third_party/libc++abi/trunk: 665b74f7d1..5c3e02e92a
* src/buildtools/third_party/libunwind/trunk: f51a154281..7ff728a977
* src/ios: 81826d980c..625640808c
* src/testing: f4e42be132..154d994baf
* src/third_party: 42c249feeb..ea1616408d
* src/third_party/android_ndk: https://chromium.googlesource.com/android_ndk.git/+log/401019bf85..8388a2be54
* src/third_party/auto/src: fe67d853d6..14413dc9c7
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/3a667d10e9..04989786e9
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/75423c310e..5b90d5e756
* src/third_party/depot_tools: 2ffa1bde79..08bb5c487f
* src/third_party/freetype/src: cff026d415..33ceac2afc
* src/third_party/googletest/src: e2f3978937..af29db7ec2
* src/third_party/harfbuzz-ng/src: 64b29dbd59..56c4670935
* src/third_party/icu: bf66d373ae..20f8ac695a
* src/third_party/libjpeg_turbo: 02959c3ee1..ed683925e4
* src/third_party/libunwindstack: 6868358481..3c86843ae0
* src/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/92a65a8f5d..ce877209e1
* src/tools: 198dc87952..f85dc28ce5
DEPS diff: 829c6df33d..7d683aeda8/DEPS

Clang version changed llvmorg-14-init-8564-g34b903d8:llvmorg-16-init-4949-g8ace9ea258c9
Details: 829c6df33d..7d683aeda8/tools/clang/scripts/update.py

TBR=mbonadei@chromium.org
BUG=None

Change-Id: I29a61f5e47def397ebda05d56062001e009df58d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3909683
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-09-22 14:56:57 +00:00
Frank Barchard
f9fda6e7d8 Fix shift amount for SSSE3 assembly for I012 format conversions
Bug: libyuv:938, libyuv:942
Change-Id: I6fb6e7e17fa941785e398bc630f465baf72fcabd
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3906091
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-09-20 23:07:53 +00:00
Frank Barchard
8fc02134c8 10/12 bit YUV replicate upper bits to low bits before converting to RGB
- shift high bits of 10 and 12 bit into lower bits

Bug: libyuv:941, libyuv:942,
Change-Id: I14381dbf226ef27dcce06893ea88860835639baa
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3906085
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-09-20 20:56:43 +00:00
Frank Barchard
e4b1ddd8fe Fix immediate offsets for row_neon build on gcc
Bug: libyuv:942
Change-Id: I7d2dc87a44cc1cc5c79c37f407583e0c907dc2de
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3906088
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-09-20 20:16:13 +00:00
Frank Barchard
248172e2ba I422ToRGB24, I422ToRAW, I422ToRGB24MatrixFilter conversion functions added.
- YUV to RGB use linear for first and last row.
- add assert(yuvconstants)
- rename pointers to match row functions.
- use macros that match row functions.
- use 12 bit upsampler for conversions of 10 and 12 bits

Cortex A53 AArch32
I420ToRGB24_Opt (3627 ms)
I422ToRGB24_Opt (4099 ms)
I444ToRGB24_Opt (4186 ms)
I420ToRGB24Filter_Opt (5451 ms)
I422ToRGB24Filter_Opt (5430 ms)

AVX2
Was I420ToRGB24Filter_Opt (583 ms)
Now I420ToRGB24Filter_Opt (560 ms)

Neon Cortex A7
Was I420ToRGB24Filter_Opt (5447 ms)
Now I420ToRGB24Filter_Opt (5439 ms)

Bug: libyuv:938


Change-Id: I1731f2dd591073ae11a756f06574103ba0f803c7
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3906082
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-09-20 02:00:52 +00:00
Frank Barchard
be50557db7 Remove include resource.h for Fuchsia build
Bug: None
Change-Id: I3e0748d3aebdc8bc1ff8ddfc79d9cdb751c03e0f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3906081
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2022-09-19 19:30:35 +00:00
Frank Barchard
f71c83552d I420ToRGB24MatrixFilter function added
- Implemented as 3 steps: Upsample UV to 4:4:4, I444ToARGB, ARGBToRGB24
- Fix some build warnings for missing prototypes.

Pixel 4
I420ToRGB24_Opt (743 ms)
I420ToRGB24Filter_Opt (1331 ms)

Windows with skylake xeon:
x86 32 bit
I420ToRGB24_Opt (387 ms)
I420ToRGB24Filter_Opt (571 ms)
x64 64 bit
I420ToRGB24_Opt (384 ms)
I420ToRGB24Filter_Opt (582 ms)


Bug: libyuv:938, libyuv:830
Change-Id: Ie27f70816ec084437014f8a1c630ae011ee2348c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3900298
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-09-16 19:46:47 +00:00
Frank Barchard
3e38ce5058 SSE2 MM21->YUY2 conversion
Add SSE2 optimization for MM21ToYUY2 conversion.

Bug: b/238137982
Change-Id: I189f712514308322f651b082b496bce9c015c4ee
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3832525
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2022-08-17 18:39:05 +00:00
Frank Barchard
65e7c9d570 MM21ToYUY2 and ABGRToJ420 conversion
MM21 to YUY2 use zip1 for performance

Cortex A510
Was MM21ToYUY2 (612 ms)
Now MM21ToYUY2 (573 ms)

Prefetches help Cortex A53
Was MM21ToYUY2 (4998 ms)
Now MM21ToYUY2 (1900 ms)

Pixel 4 Cortex A76
Was MM21ToYUY2 (215 ms)
Now MM21ToYUY2 (173 ms)

ABGRToJ420
- NEON, SSSE3 and AVX2 row functions
- J400, J420 and J422 formats.
- Added AVX2 for UV on ARGBToJ420.  Was SSSE3

Same code/performance as ARGBToJ420 but with constants re-ordered.
Pixel 4
ABGRToJ420_Opt (623 ms)
ABGRToJ422_Opt (702 ms)
ABGRToJ400_Opt (238 ms)

Skylake Xeon
With LIBYUV_BIT_EXACT which uses C for UV
ABGRToJ420_Opt (988 ms)
ABGRToJ422_Opt (1872 ms)
ABGRToJ400_Opt (186 ms)
Skylake Xeon using AVX2
ABGRToJ420_Opt (251 ms)
ABGRToJ422_Opt (245 ms)
ABGRToJ400_Opt (184 ms)
Skylake Xeon using SSSE3
ABGRToJ420_Opt (328 ms)
ABGRToJ422_Opt (362 ms)
ABGRToJ400_Opt (185 ms)

Bug: b/238137982
Change-Id: I559c3fe3fb80fa2ce5be3d8218736f9cbc627666
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3832111
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-08-16 22:07:38 +00:00
Frank Barchard
1c5a8bb17a AB64ToARGB fix for inplace conversion
- add tests for all single plane formats that reduce or stay same in size

Bug: b/242233673
Change-Id: Ic25d808114f11995ac56ea9c31b99f66ba36d345
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3828485
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-08-12 01:28:13 +00:00
Vignesh Venkatasubramanian
9b17af9bef Bump up version to 1838
Commit a5a1102a added a function to the public ABI. Update the
version number to 1838.

Bug: b/241451603

Change-Id: I615792672c0dc097e2b1b2637ec5c3a1586d9f09
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3821166
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-08-09 21:47:55 +00:00
Vignesh Venkatasubramanian
a5a1102a60 Add I422ToRGB565Matrix
The code already exists to use a specific matrix. This CL simply
adds a function to use a generic YUV matrix for the conversion.

Bug: b/241451603
Change-Id: I0eea7e96a891d045905a9c963b56c053097029ec
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3820903
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-08-09 20:15:44 +00:00
Frank Barchard
d53f1beecd RAWToJ400 require multiple of 16 pixels for NEON
- fix crash when width is not a multiple of 16
- apply clang format
- bump version

Bug: libyuv:940, b/240094327
Change-Id: Ic18e5b7b64f78f26e8b7d8440bf490a679bda200
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3812594
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-08-04 22:55:48 +00:00
Vignesh Venkatasubramanian
394436b289 row_neon*: Explicitly initialize pad in RgbConstants
Explicitly initialize the 'pad' field of RgbConstants to 0. This
prevents the following warning/error in some compilers:
error: missing field 'pad' initializer [-Werror,-Wmissing-field-initializers]

Bug: b/241008246
Change-Id: Id6a0beb75c5c709404290c75915049f8a3898c83
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3808044
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-08-04 18:19:46 +00:00
Wan-Teh Chang
9892d70c96 Fix MSVC warnings by adding casts
Fix the following MSVC warnings:
src\source\row_win.cc(117): warning C4309: 'argument': truncation of
constant value
src\source\row_win.cc(136): warning C4309: 'argument': truncation of
constant value
src\source\row_win.cc(155): warning C4309: 'argument': truncation of
constant value
src\source\row_win.cc(174): warning C4309: 'argument': truncation of
constant value
src\source\row_common.cc(1712): warning C4244: 'initializing':
conversion from 'uint16_t' to 'int8_t', possible loss of data
src\source\row_common.cc(1731): warning C4244: 'initializing':
conversion from 'int16_t' to 'int8_t', possible loss of data
src\source\row_common.cc(1786): warning C4244: 'initializing':
conversion from 'uint16_t' to 'int8_t', possible loss of data
src\source\row_common.cc(1805): warning C4244: 'initializing':
conversion from 'uint16_t' to 'int8_t', possible loss of data

Bug: libyuv:939
Change-Id: Ie87ba6e716732d1ff1ae5c236dfd9cfdac13439d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3807105
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-08-03 21:24:21 +00:00
Wan-Teh Chang
ab046f1dfc Define _CRT_SECURE_NO_WARNINGS if MSVC CRT is used
Suppress the following MSVC compiler warnings:
src\source\cpu_id.cc(140): warning C4996: 'fopen': This function or
variable may be unsafe. Consider using fopen_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
src\source\cpu_id.cc(169): warning C4996: 'fopen': This function or
variable may be unsafe. Consider using fopen_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

Note that build/config/win/BUILD.gn defines _CRT_SECURE_NO_DEPRECATE
instead. _CRT_SECURE_NO_WARNINGS is the new name of the macro. See
https://docs.microsoft.com/en-us/cpp/c-runtime-library/security-features-in-the-crt?view=msvc-140

Bug: libyuv:939
Change-Id: I0d1715b31e672126c35e29b99f5cbf08e4338f40
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3807104
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-08-03 21:18:02 +00:00
Vignesh Venkatasubramanian
02b8b88548 Reduce cmake verbosity and update min version
These changes were landed in the android's snapshot of libyuv.

Pushing those to upstream so that they can be kept in sync.

Android changes:
http://aosp/1949358
http://ag/17942984

Bug: b/241008246
Change-Id: Id0bcff13e2e6ad5a132141a50ccdfd72f551113d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3803131
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2022-08-03 06:59:54 +00:00
Wan-Teh Chang
ffa8efbb11 Set IMPORT_PREFIX to "lib" on Windows
Fix the follwing Ninja warning:
ninja: warning: multiple rules generate yuv.lib. builds involving this
target will not be correct; continuing anyway [-w dupbuild=warn]

Without this change, both the static library and the DLL's import
library are named "yuv.lib". With this change, the DLL's import library
is named "libyuv.lib", corresponding to the DLL name "libyuv.dll".

Bug: libyuv:939
Change-Id: I879e51b54070e5ab8cb128adb5dde765f881dbec
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3806073
Commit-Queue: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-08-03 00:30:24 +00:00
Vignesh Venkatasubramanian
e65dacada5 Android.bp: Remove reference to LICENSE_THIRD_PARTY
This file was removed in commit ebbe88ac.

Bug: b/241008246
Change-Id: Id08d9a6e550610c9b00755ed76edf1a255f48618
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3806159
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-08-02 22:13:44 +00:00
Yuan Tong
98ec7c28d5 Fix SSE2 version of ScalePlaneUp2_16_Bilinear
- Define HAS_SCALEROWUP2_BILINEAR_16_SSE2: it's now fixed.
- Correct function name to ScaleRowUp2_Bilinear_16_Any_SSE2:
   this row function uses only SSE2 instructions.

Bug: libyuv:882
Change-Id: Ib1c7ac5b09997cb5b32bc54109d8c566af762433
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3800842
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-08-02 20:35:48 +00:00
Frank Barchard
b028453ba6 Disable bilinear 16 bit scale up for SSE2
- Undefine HAS_SCALEROWUP2_BILINEAR_16_SSE2
- Save XMM7 in ScaleRowUp2_Bilinear_16_SSE2().
- Rename HAS_SCALEROWUP2LINEAR_xxx to HAS_SCALEROWUP2_LINEAR_xxx
- DetileSplitUVRow_C() is implemented using SplitUVRow_C().
- Changes to unit_test/planar_test.cc.

Bug: libyuv:882
Change-Id: I0a8e8e5fb43bdf58ded87244e802343eacb789f2
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3795063
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-08-01 22:54:48 +00:00
Frank Barchard
fe8c78b61a Add .vpython3 to libyuv.
Bug: b/238765359
No-Try: True
Change-Id: Ic43403f04337625ceb2b3bf69e6d7bf830698088
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3764580
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-07-15 18:43:49 +00:00
Mirko Bonadei
7413965da8 Switch from python to python3.
Some hooks were still referring python.

No-Try: True
Bug: b/238765359
Change-Id: I0a547bdc22696e8fae03e2d2fafbce697df481bc
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3758073
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-07-14 17:45:41 +00:00
Frank Barchard
d248929c05 Enable 256x144 scale tests for libyuv
- This test used to fail on ARM, but is passing now, so re-enable
- Kept behind a flag so it can be disabled with /DDISABLE_SLOW_TESTS

Bug:  libyuv:905, b/197551385
Change-Id: Iff3c75c1778610c136621b595adee4b1004df9a5
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3758943
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-07-13 11:08:29 +00:00
Frank Barchard
6900494d90 Merge/SplitRGB fix -mcmodel=large x86 and InterpolateRow_16To8_NEON
MergeRGB and SplitRGB use a register to point to 9 shuffle tables.

- fixes an out of registers error with -mcmodel=large

InterpolateRow_16To8_NEON improves performance for I210ToI420:

On Pixel 4 for 720p x1000 images
Was I210ToI420_Opt (608 ms)
Now I210ToI420_Opt (336 ms)

On Skylake Xeon
Was I210ToI420_Opt (259 ms)
Now I210ToI420_Opt (209 ms)


Bug: libyuv:931, libyuv:930
Change-Id: I20f8244803f06da511299bf1a2ffc7945eb35221
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3717054
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2022-06-29 00:00:46 +00:00
Frank Barchard
fe4a50df8e Bilinear scale up msan fix
- Avoid stepping to height + 1 for bilinear filter 2nd row for last row of source
- Box filter ubsan fix for 3/4 and 3/8 scaling for 16 bit planar
- Height 1 asan fixes

Bug: libyuv:935, b/206716399
Change-Id: I56088520f2a884a37b987ee5265def175047673e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3717263
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-06-22 00:11:49 +00:00
Frank Barchard
e906ba9fe9 InterpolateRow_Any test if fraction is 0 and dont memcpy 2nd row.
Bug: b/228605787
Change-Id: Ia8912e4c1599401320ee82882a2593e78bf56582
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3708833
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-06-17 18:15:09 +00:00
Frank Barchard
30f9b28048 Add I210ToI420
Bug: libyuv:931, b/228605787, b/233233302, b/233634772, b/234558395, b/234340482
Change-Id: Ib135d0b4ff17665f6a4ab60edb782a7b314219a4
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3696042
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2022-06-09 08:07:50 +00:00
Frank Barchard
baef414478 Convert16To8Row_NEON use shift without rounding
Fixes chromium PaintCanvasVideoRendererTest.HighBitDepth

sqdmulh was creating a 9 bit value with rounding, and then shifted it right 1 with no rounding.  The rounding had an off by 1 impact in some tests.

Pixel 3
C           I010ToI420_Opt (749 ms)
Was sqdmulh I010ToI420_Opt (370 ms)
Now ushl    I010ToI420_Opt (324 ms)

Pixel 4
C           I010ToI420_Opt (581 ms)
Was sqdmulh I010ToI420_Opt (240 ms)
Now ushl    I010ToI420_Opt (231 ms)

Bug:  b/216321733, b/233233302
Change-Id: I26f673bb411401d1e4a8126bf22d61c649223e9b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3694143
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-06-08 19:40:30 +00:00