2419 Commits

Author SHA1 Message Date
Frank Barchard
2bdc210be9 MergeUV_AVX512BW for I420ToNV12
On Skylake Xeon 640x360 100000 iterations
AVX512   MergeUVPlane_Opt (1196 ms)
AVX2     MergeUVPlane_Opt (1565 ms)
SSE2     MergeUVPlane_Opt (1780 ms)
Pixel 7  MergeUVPlane_Opt (1177 ms)

Bug: None
Change-Id: If47d4fa957cf27781bba5fd6a2f0bf554101a5c6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4242247
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2023-02-13 20:14:57 +00:00
Sergio Garcia Murillo
b2528b0be9 Add support for odd width and height in I410ToI420
Bug: libyuv:950
Change-Id: Ic9a094463af875aefd927023f730b5f35f8551de
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4154630
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-01-23 19:05:00 +00:00
Hao Chen
0809713775 Refine some functions on the Longarch platform.
Add ARGBToYMatrixRow_LSX/LASX, RGBAToYMatrixRow_LSX/LASX and
RGBToYMatrixRow_LSX/LASX functions with RgbConstants argument.

Bug: libyuv:912
Change-Id: I956e639d1f0da4a47a55b79c9d41dcd29e29bdc5
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4167860
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-18 18:54:14 +00:00
Frank Barchard
0faf8dd0e0 Fix for DivideRow_NEON functions
- was dup of 8h but mul of 4s.  now use umull

Bug: libyuv:951
Change-Id: If6cb01f5f006c2235886b81ce120642d7e24a9bb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4166563
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-18 00:30:05 +00:00
Frank Barchard
541d8efbaf Fix for divide row functions used by P010ToI010
Bug: libyuv:951
Change-Id: Id323656cb6f99b1be0be7aaa854d3cc15feeba69
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4166562
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-17 21:40:45 +00:00
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