mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-08 01:36:47 +08:00
When developing WebRTC applications with custom video sources, libyuv's API is often the required part of the project. For that, application developers can link with a separate standalone instance of libyuv. However, it is even better to avoid that binary code duplication and link against libyuv as a part compiled into the WebRTC library. When building WebRTC as a static library target, the symbols from libyuv are normally accessible to the linker without any extra actions. When building WebRTC as a shared library, that does not work as the exported symbols are those marked as visible, while libyuv is built with the hidden visibility setting by default. This patch adds an extra flag to enable switching the symbol visibility to default when building shared library targets depending on libyuv in WebRTC and Chromium projects. By default the flag is not enabled, preserving the prior behaviour. Bug: NONE Change-Id: I48893cb9f54b1e1b49a34e14434e67f91d3e5e79 Reviewed-on: https://chromium-review.googlesource.com/827746 Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org> |
||
|---|---|---|
| build_overrides | ||
| docs | ||
| include | ||
| infra/config | ||
| source | ||
| tools_libyuv | ||
| unit_test | ||
| util | ||
| .clang-format | ||
| .gitignore | ||
| .gn | ||
| .vpython | ||
| all.gyp | ||
| Android.bp | ||
| Android.mk | ||
| AUTHORS | ||
| BUILD.gn | ||
| cleanup_links.py | ||
| CM_linux_packages.cmake | ||
| CMakeLists.txt | ||
| codereview.settings | ||
| DEPS | ||
| download_vs_toolchain.py | ||
| gyp_libyuv | ||
| gyp_libyuv.py | ||
| libyuv_nacl.gyp | ||
| libyuv_test.gyp | ||
| libyuv.gni | ||
| libyuv.gyp | ||
| libyuv.gypi | ||
| LICENSE | ||
| LICENSE_THIRD_PARTY | ||
| linux.mk | ||
| OWNERS | ||
| PATENTS | ||
| PRESUBMIT.py | ||
| public.mk | ||
| pylintrc | ||
| README.chromium | ||
| README.md | ||
| winarm.mk | ||
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] 1 for instructions on how to get started developing.
You can also browse the [docs directory] 2 for more documentation.