| # libavif third party sources | |
| Anything in this directory is imported from third party sources with minimal changes. | |
| See `LICENSE` file of respective subdirectories of this directory for license information. | |
| ## libyuv | |
| This subdirectory contains source code imported from libyuv as of `def473f501acbd652cd4593fd2a90a067e8c9f1a`, with | |
| modifications intended to keep them relatively small and simple. | |
| ### Importing from upstream | |
| When importing source code from upstream libyuv, the following changes must be done: | |
| 1. Source hierarchy is to be kept the same as in libyuv. | |
| 2. The only APIs that are called by libavif for scaling are `ScalePlane()` and `ScalePlane_12()`. Anything else must be | |
| left out. | |
| 3. In function `ScalePlane()` and `ScalePlane_16()`, only the `ScalePlaneVertical()`, `CopyPlane()`, `ScalePlaneBox()`, | |
| `ScalePlaneUp2_Linear()`, `ScalePlaneUp2_Bilinear()`, `ScalePlaneBilinearUp()`, `ScalePlaneBilinearDown()` and | |
| `ScalePlaneSimple()` paths (and their `_16` equivalents) from libyuv must be kept; any other paths are to be stripped | |
| out (including SIMD). | |
| 4. The commit hash of libyuv from where the files got imported in this README.md file must be updated. | |
| 5. `LIBYUV_API` must be removed from any and all imported functions as these files are always built static. | |
| 6. Replace .cc file extension by .c. |