Frank Barchard 49ebc996aa Make 2 step transitive tests measure 2 step time.
Add tests of all macros used by libyuv public headers

When a 1 step conversion is added, a 2 step test can compare
the old 2 step method to the 1 step.  A 1 step unittest is
also added which compares C to SIMD.  Making the 2 step
conversions measure performance of the 2 steps allows the
old 2 step performance to be compared to 1 step.

All macros used in public headers are added to an ifdef test.
Showing them in a unittest allows some diagnostics when
a test is failing.

Bug: libyuv:901
Change-Id: I7ffa6ed0cb3b506fa1b7fd4b7b1b729658c3c266
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/2857916
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2021-04-30 18:14:57 +00:00
build_overrides [build] Remove obsolete gn flag 2021-01-26 20:16:56 +00:00
docs Add support for AR64 format 2021-03-13 20:55:21 +00:00
include Make 2 step transitive tests measure 2 step time. 2021-04-30 18:14:57 +00:00
source Make 2 step transitive tests measure 2 step time. 2021-04-30 18:14:57 +00:00
tools_libyuv Fix autoroller main branch. 2021-04-28 15:34:12 +00:00
unit_test Make 2 step transitive tests measure 2 step time. 2021-04-30 18:14:57 +00:00
util Scale 12 functions that are scale 16 but with only low 12 bits valid 2021-02-19 18:04:48 +00:00
.clang-format clang-format libyuv 2016-11-07 17:37:23 -08:00
.gitignore Update to r1732 for more robust jpeg 2019-07-01 22:32:36 +00:00
.gn Allowing C++14 in libyuv. 2019-09-17 17:53:26 +00:00
.vpython Fix libyuv deps autoroll and roll chromium deps. 2020-09-15 06:21:24 +00:00
Android.bp Scale 12 functions that are scale 16 but with only low 12 bits valid 2021-02-19 18:04:48 +00:00
Android.mk MJPGToNV12 added and build files sorted 2020-10-28 16:24:38 +00:00
AUTHORS Revert "Allow negative height when ConvertToI420/ARGB is called with NV12/NV21" 2018-06-01 00:19:40 +00:00
BUILD.gn Scale 12 functions that are scale 16 but with only low 12 bits valid 2021-02-19 18:04:48 +00:00
cleanup_links.py Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
CM_linux_packages.cmake Add installer builds to cmake for linux 2017-01-26 23:05:17 +00:00
CMakeLists.txt [libyuv] - Switch from gflags to absl/flags. 2021-02-19 08:54:30 +00:00
codereview.settings [infra] remove no longer supported git cl upload setting. 2021-04-28 12:47:52 +00:00
DEPS Remove yasm in DEPS 2021-04-17 03:24:13 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-09 19:34:43 +00:00
download_vs_toolchain.py Fix python linter errors. 2021-04-02 18:54:11 +00:00
libyuv.gni libyuv:loongson optimize compare/row/scale/rotate files with mmi. 2018-07-20 22:53:04 +00:00
LICENSE Update Copyright notice to follow new chromium conventions. 2012-08-08 19:04:24 +00:00
linux.mk Scale 12 functions that are scale 16 but with only low 12 bits valid 2021-02-19 18:04:48 +00:00
OWNERS Move metadata in OWNERS files to DIR_METADATA files 2021-02-09 19:34:43 +00:00
PATENTS LibYuv: Adding PATENT and LICENSE files 2011-10-25 16:15:49 +00:00
PRESUBMIT.py Remove running valgrind tests at presubmit time. 2021-04-02 18:56:22 +00:00
public.mk use unix line endings 2018-06-20 23:19:59 +00:00
pylintrc Use DEPS for all dependencies + add PRESUBMIT.py 2017-02-03 11:36:53 +00:00
README.chromium Make 2 step transitive tests measure 2 step time. 2021-04-30 18:14:57 +00:00
README.md README: fix doc links 2018-08-13 18:28:55 +00:00
winarm.mk NV12 Copy, include scale_uv.h 2020-12-08 18:54:16 +00:00

libyuv is an open source project that includes YUV scaling and conversion functionality.

  • Scale YUV to prepare content for compression, with point, bilinear or box filter.
  • Convert to YUV from webcam formats for compression.
  • Convert to RGB formats for rendering/effects.
  • Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
  • Optimized for SSSE3/AVX2 on x86/x64.
  • Optimized for Neon on Arm.
  • Optimized for MSA on Mips.

Development

See Getting started for instructions on how to get started developing.

You can also browse the docs directory for more documentation.