2414 Commits

Author SHA1 Message Date
Frank Barchard
d5aa3d4a76 P010ToI010 and P012ToI012 conversion functions
- Convert 10 and 12 bit biplanar formats to planar.
- Shift 10 MSB to 10 LSB
- P010 is similar to NV12 in layout, but uses 10 MSB of 16 bit values.
- I010 is similar to I420 in layout, but uses 10 LSB of 16 bit values.

Bug: libyuv:951
Change-Id: I16a1bc64239d0fa4f41810910da448bf5720935f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4166560
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-13 19:20:12 +00:00
Mirko Bonadei
010dea8ba4 Remove auto from DEPS.
This should fix:
gclient.py: error: Wrong dep format: src/third_party/auto/src@ should be of the form dep@rev.


Bug: None
Change-Id: Id9896f464d788bb3e1eb7516b7f6b1402a9c4790
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4147349
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-09 21:18:53 +00:00
Frank Barchard
6e4b0acb4b I422Rotate take stride for temporary buffers
- Minor variable name changes first/last to top/bottom
- Comments explaining rotate temporary buffers usage
- Add asserts for scale parameter
- Use NULL and stddef.h instead of 0
- Use void * for allocation in row.h
- Add () around size parameter in macros


Bug: libyuv:926, libyuv:949
Change-Id: Ib55417570926ccada0a0f8abd1753dc12e5b162e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4136762
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-04 23:11:52 +00:00
Sergio Garcia Murillo
f8626a7224 Add 10 bit rotate methods.
This initial implementation is based on current unoptimized code in webrtc using just plain for loops.

Bug: libyuv:949
Change-Id: Ic87ee49c3a0b62edbaaa4255c263c1f7be4ea02b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4110782
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-04 21:10:01 +00:00
Sergio Garcia Murillo
22a579c438 Use ScalePlaneDown2_16To8 for avoiding the 2 step process
Bug: libyuv:950
Change-Id: I5a77bca9a0230fe00abd810939e217833a14683f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4134524
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-03 21:41:21 +00:00
Sergio Garcia Murillo
f583b1b4b8 Add I410Copy and I410ToI420 methods
The I410To420 implementation does a two step approach for scaling down and 10-to-8 bit conversion using the Y plane as temporal storage.

Bug: libyuv:950
Change-Id: I3d35fad4b99e17253230456233fbd947e013c0ec
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4110783
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-01-03 20:27:28 +00:00
Frank Barchard
3abd6f36b6 Casting for scale functions
- MT2T support for source strides added, but only works for positive values.
- Reduced casting in row_common - one cast per assignment.
- scaling functions use intptr_t for intermediate calculations, then cast strides to ptrdiff_t

Bug: libyuv:948, b/257266635, b/262468594
Change-Id: I0409a0ce916b777da2a01c0ab0b56dccefed3b33
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4102203
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Ernest Hua <ernesthua@google.com>
2022-12-15 22:34:22 +00:00
Frank Barchard
610e0cdead MT2T Warning fixes for fuchsia
Bug: b/258474032, b/257266635
Change-Id: Ic5cbbc60e2e1463361e359a2fe3e97976c1ea929
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4081348
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2022-12-06 19:54:40 +00:00
Mirko Bonadei
c19943b4d0 Add DEPS to build libyuv for Fuchsia.
Bug: libyuv:948
Change-Id: Ibdbe7461f8aa909c3d6e91eb0b90194de5fa1064
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4064025
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-30 19:57:32 +00:00
Frank Barchard
4a3c79cb31 yuvconstants check for 3 arguments and show help
- show command line help for yuvconstants util
- fix for jpeg link on OSX with CMake

Bug: libyuv:946, libyuv:947
Change-Id: Icb11a2da376af07f0e03c1db467342b1f0d509cc
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4054461
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-11-28 18:30:27 +00:00
Sergei Trofimovich
f428a642e3 libyuv: fix libyuv.so underlinking
When `libyuv` is built with `jpeg` support it does not directly link
`libjpeg` in any form. As a result dynamic loading of the library
fails as:

    >>> import pillow_avif._avif
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: /usr/lib/libyuv.so: undefined symbol: jpeg_resync_to_restart

We can reproduce the same problem at build time if we build `libyuv` with
`LDFLAGS=-Wl,--no-undefined`:

    [ 99%] Linking CXX executable yuvconstants
    ld: CMakeFiles/yuv_shared.dir/source/mjpeg_decoder.cc.o: in function `libyuv::MJpegDecoder::MJpegDecoder()':
    mjpeg_decoder.cc:(.text+0xfc): undefined reference to `jpeg_resync_to_restart'
    ld: mjpeg_decoder.cc:(.text+0x136): undefined reference to `jpeg_std_error'
    ld: mjpeg_decoder.cc:(.text+0x194): undefined reference to `jpeg_CreateDecompress'

The change links `libgpeg` against `libyuv` itself to make it a
self-contained library. This fixes both loading if the library
itself and fixes linking of the library against other binaries
without explicit need for passing `-ljpeg`.

Change-Id: I044acb3799920e1536bdb3388442a40d4839348b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4050883
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-28 18:29:29 +00:00
Mirko Bonadei
cf7c3a1ba7 Roll chromium_revision 1c174f8519..504c069755 (1067099:1074965)
Change log: 1c174f8519..504c069755
Full diff: 1c174f8519..504c069755

Changed dependencies:
* src/base: 077682171b..f80120ff32
* src/build: 18e9d3c3ad..fe1231e1da
* src/buildtools: 33b52eafd5..3c8fef071e
* src/buildtools/third_party/libc++/trunk: fc6bbc5eb0..cd0a050474
* src/buildtools/third_party/libc++abi/trunk: 8dd405113a..1a32724f72
* src/buildtools/third_party/libunwind/trunk: aabcd87536..5870472fdd
* src/ios: 211070da56..866ec86ecb
* src/testing: aedf4723b9..b4dc828e84
* src/third_party: d6591989fa..eb60a9454b
* src/third_party/auto/src: 3659a0e643..097f0ee6ff
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/1ee71185a2..f0518d4511
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3ffa6b2228..4efb51be85
* src/third_party/depot_tools: b52683fa2e..2fc7e1ffd5
* src/third_party/freetype/src: dea2e6358b..1c44de209c
* src/third_party/harfbuzz-ng/src: 56c4670935..2822b589bc
* src/third_party/icu: da07448619..1b7d391f05
* src/third_party/junit/src: 64155f8a9b..05fe2a64f5
* src/tools: a185bbc6c0..a20d904d02
DEPS diff: 1c174f8519..504c069755/DEPS

Clang version changed llvmorg-16-init-9369-g87a20868:llvmorg-16-init-10736-ged9638c4
Details: 1c174f8519..504c069755/tools/clang/scripts/update.py

TBR=fbarchard@google.com
BUG=b/260148908

Change-Id: I7bd9806bc29dfa401f40efd2fa057d9ff30b4884
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4049153
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
2022-11-23 10:19:11 +00:00
Frank Barchard
ea26d7adb1 DetilePlane_16 AVX version
- fix ifdefs for DetilePlane_16 to use 16 bit versions, not 8 bit.  (no functional change)

Bug: b/258474032
Change-Id: Ic07e02d9801e21126ebee0ceb5779aa712a493ce
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4034812
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-18 23:59:06 +00:00
Frank Barchard
8713ba3f0b Add vzeroupper to AVX row functions
- move power of two macro to planar functions source
- revert row.h IS_ALIGNED change

Bug: b/258474032
Change-Id: If87bb8d55c9b9930dd3e378614f8e4faae0870e9
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4035166
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-11-17 23:00:08 +00:00
Frank Barchard
2d2cee418a Add Detile_16 planar function for 10 bit MT2T format
- Neon and SSE2
- Any for odd widths

Pixel 2 little core AArch32 build
C
TestDetilePlane_16 (1275 ms)
TestDetilePlane (1203 ms)
Neon
TestDetilePlane_16 (693 ms)
TestDetilePlane (660 ms)

Bug: b/258474032
Change-Id: Idbd09c5e9324e4deef5f1d54090d4b63cc7db812
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4031848
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-17 02:47:57 +00:00
Frank Barchard
6f21862f1b Roll chromium_revision 6974809249..1c174f8519 (1065463:1067099)
Change log: 6974809249..1c174f8519
Full diff: 6974809249..1c174f8519

Changed dependencies:
* src/base: 69a27d8442..077682171b
* src/build: dad0f9ca0f..18e9d3c3ad
* src/buildtools: 7f385a95b7..33b52eafd5
* src/buildtools/third_party/libc++/trunk: b093b39e7b..fc6bbc5eb0
* src/ios: efc2e0ecca..211070da56
* src/testing: 2e786640ff..aedf4723b9
* src/third_party: f15ee7dbb2..d6591989fa
* src/third_party/depot_tools: 7bd4611895..b52683fa2e
* src/third_party/nasm: fc8e0bd892..0873b2bae6
* src/tools: 4aa7126c82..a185bbc6c0
DEPS diff: 6974809249..1c174f8519/DEPS

Clang version changed llvmorg-16-init-9061-g1e7c1dd6:llvmorg-16-init-9369-g87a20868
Details: 6974809249..1c174f8519/tools/clang/scripts/update.py

TBR=fbarchard@google.com
BUG=libyuv:891

Change-Id: I7a4cd88a66476de6cf0167ea6242e3820aadd3f0
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4004297
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-11-03 22:26:19 +00:00
Mirko Bonadei
2f31ea2a16 Roll chromium_revision 219d891495..6974809249 (1060441:1065463)
Change log: 219d891495..6974809249
Full diff: 219d891495..6974809249

Changed dependencies:
* src/base: 3d848a5c51..69a27d8442
* src/build: 2cf254f018..dad0f9ca0f
* src/buildtools: ca6213a9de..7f385a95b7
* src/buildtools/third_party/libc++/trunk: e6caea47f8..b093b39e7b
* src/buildtools/third_party/libc++abi/trunk: 685c4ad257..8dd405113a
* src/buildtools/third_party/libunwind/trunk: 1111799723..aabcd87536
* src/ios: 2c96114418..efc2e0ecca
* src/testing: 20937c1154..2e786640ff
* src/third_party: 5d8d8067d0..f15ee7dbb2
* src/third_party/auto/src: b8f2bad387..3659a0e643
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b049f00cff..3ffa6b2228
* src/third_party/depot_tools: dbaca22bdf..7bd4611895
* src/third_party/freetype/src: 8493877e78..dea2e6358b
* src/third_party/nasm: 5fd9246276..fc8e0bd892
* src/tools: 11bbc9af4d..4aa7126c82
DEPS diff: 219d891495..6974809249/DEPS

Clang version changed llvmorg-16-init-7184-gdeb82d4a:llvmorg-16-init-9061-g1e7c1dd6
Details: 219d891495..6974809249/tools/clang/scripts/update.py

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

Change-Id: I82e41b04f0fd2e840530de4c1bfb50c906921733
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3996686
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-02 17:16:15 +00:00
Mirko Bonadei
a4f82ffdd3 Remove --send-mail from roll script
This should remove the problematic Code-Review+1 label that prevents
the upload to complete.

Bug: libyuv:891
Change-Id: I6dc34b1be160d22691d77ba6da63d3974333260d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3996684
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-02 17:15:17 +00:00
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