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 c60323de1756f489bd061e66aea9c3c73a8ef72c, 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 hierachy 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 if possible.
  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.