From 9cafb3605d27404101fbb1e2ed4785a371c94b0c Mon Sep 17 00:00:00 2001 From: DreamPiggy Date: Wed, 1 May 2019 13:53:45 +0800 Subject: [PATCH] Upgrade the dependency libavif to 0.1.3 --- AVIFQuickLook/Info.plist | 48 +++++++++++++++---------------- App/AVIF.app/Contents/Info.plist | 28 ++++++++++++++++-- Dependency/include/avif/avif.h | 10 +++++-- Dependency/lib/libavif.a | Bin 57808 -> 60096 bytes 4 files changed, 57 insertions(+), 29 deletions(-) diff --git a/AVIFQuickLook/Info.plist b/AVIFQuickLook/Info.plist index 5d82be9..7f40d36 100644 --- a/AVIFQuickLook/Info.plist +++ b/AVIFQuickLook/Info.plist @@ -57,29 +57,29 @@ QLThumbnailMinimumSize 17 - UTImportedTypeDeclarations - - - UTTypeConformsTo - - public.image - - UTTypeDescription - AVIF image - UTTypeIdentifier - public.avif - UTTypeReferenceURL - https://aomediacodec.github.io/av1-avif/ - UTTypeTagSpecification - - public.filename-extension - - avif - - public.mime-type - image/avif - - - + UTImportedTypeDeclarations + + + UTTypeConformsTo + + public.image + + UTTypeDescription + AVIF Image + UTTypeIdentifier + public.avif + UTTypeReferenceURL + https://aomediacodec.github.io/av1-avif/ + UTTypeTagSpecification + + public.filename-extension + + avif + + public.mime-type + image/avif + + + diff --git a/App/AVIF.app/Contents/Info.plist b/App/AVIF.app/Contents/Info.plist index a98dfc5..badd812 100644 --- a/App/AVIF.app/Contents/Info.plist +++ b/App/AVIF.app/Contents/Info.plist @@ -56,7 +56,7 @@ bundleDividerCollapsed bundlePositionOfDivider - 0.0 + 0 dividerCollapsed eventLogLevel @@ -78,7 +78,31 @@ public.image UTTypeDescription - AVIF image + AVIF Image + UTTypeIdentifier + public.avif + UTTypeReferenceURL + https://aomediacodec.github.io/av1-avif/ + UTTypeTagSpecification + + public.filename-extension + + avif + + public.mime-type + image/avif + + + + UTImportedTypeDeclarations + + + UTTypeConformsTo + + public.image + + UTTypeDescription + AVIF Image UTTypeIdentifier public.avif UTTypeReferenceURL diff --git a/Dependency/include/avif/avif.h b/Dependency/include/avif/avif.h index d40e78c..e4c342e 100644 --- a/Dependency/include/avif/avif.h +++ b/Dependency/include/avif/avif.h @@ -16,7 +16,7 @@ extern "C" { #define AVIF_VERSION_MAJOR 0 #define AVIF_VERSION_MINOR 1 -#define AVIF_VERSION_PATCH 0 +#define AVIF_VERSION_PATCH 3 #define AVIF_VERSION (AVIF_VERSION_MAJOR * 10000) + (AVIF_VERSION_MINOR * 100) + AVIF_VERSION_PATCH typedef int avifBool; @@ -55,7 +55,7 @@ enum avifChannelIndex // --------------------------------------------------------------------------- // Utils -const char * avifVersion(); +const char * avifVersion(void); // Yes, clamp macros are nasty. Do not use them. #define AVIF_CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) @@ -170,12 +170,14 @@ typedef enum avifNclxColourPrimaries AVIF_NCLX_COLOUR_PRIMARIES_XYZ = 10, AVIF_NCLX_COLOUR_PRIMARIES_ST428 = 10, AVIF_NCLX_COLOUR_PRIMARIES_RP431_2 = 11, - AVIF_NCLX_COLOUR_PRIMARIES_RP432_1 = 12, + AVIF_NCLX_COLOUR_PRIMARIES_EG432_1 = 12, + AVIF_NCLX_COLOUR_PRIMARIES_P3 = 12, AVIF_NCLX_COLOUR_PRIMARIES_EBU3213E = 22 } avifNclxColourPrimaries; // outPrimaries: rX, rY, gX, gY, bX, bY, wX, wY void avifNclxColourPrimariesGetValues(avifNclxColourPrimaries ancp, float outPrimaries[8]); +avifNclxColourPrimaries avifNclxColourPrimariesFind(float inPrimaries[8], const char ** outName); typedef enum avifNclxTransferCharacteristics { @@ -225,6 +227,8 @@ typedef enum avifNclxMatrixCoefficients AVIF_NCLX_MATRIX_COEFFICIENTS_BT2100 = 9, AVIF_NCLX_MATRIX_COEFFICIENTS_BT2020_CL = 10, AVIF_NCLX_MATRIX_COEFFICIENTS_ST2085 = 11, + AVIF_NCLX_MATRIX_COEFFICIENTS_CHROMA_DERIVED_NCL = 12, + AVIF_NCLX_MATRIX_COEFFICIENTS_CHROMA_DERIVED_CL = 13, AVIF_NCLX_MATRIX_COEFFICIENTS_ICTCP = 14 } avifNclxMatrixCoefficients; diff --git a/Dependency/lib/libavif.a b/Dependency/lib/libavif.a index 7742a65b85d8f2059a952862d9a71a6f149d9a39..8e4aea33beadc084bba07227a79297079c2b2366 100644 GIT binary patch delta 14421 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 delta 12387 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