@img/sharp-libvips-dev-wasm32 1.3.0-rc.1 → 1.3.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -23
- package/include/aom/aom_codec.h +1 -1
- package/include/aom/aom_decoder.h +4 -0
- package/include/aom/aom_encoder.h +19 -8
- package/include/aom/aom_ext_ratectrl.h +664 -0
- package/include/aom/aom_image.h +93 -30
- package/include/aom/aom_tpl.h +99 -0
- package/include/aom/aomcx.h +89 -16
- package/include/aom/aomdx.h +12 -0
- package/include/expat.h +15 -3
- package/include/expat_config.h +6 -6
- package/include/expat_external.h +4 -4
- package/include/glib-2.0/gio/gdbusconnection.h +2 -8
- package/include/glib-2.0/gio/gfileattribute.h +1 -1
- package/include/glib-2.0/gio/gfileinfo.h +5 -0
- package/include/glib-2.0/gio/gicon.h +1 -1
- package/include/glib-2.0/gio/gio-autocleanups.h +0 -1
- package/include/glib-2.0/gio/gio-visibility.h +34 -0
- package/include/glib-2.0/gio/gio.h +2 -0
- package/include/glib-2.0/gio/gioenums.h +66 -44
- package/include/glib-2.0/gio/gioenumtypes.h +2 -0
- package/include/glib-2.0/gio/giptosmessage.h +46 -0
- package/include/glib-2.0/gio/gipv6tclassmessage.h +46 -0
- package/include/glib-2.0/gio/gresolver.h +1 -1
- package/include/glib-2.0/gio/gsettings.h +1 -1
- package/include/glib-2.0/gio/gsocketcontrolmessage.h +2 -0
- package/include/glib-2.0/glib/gatomic.h +26 -2
- package/include/glib-2.0/glib/gfileutils.h +2 -2
- package/include/glib-2.0/glib/ghook.h +3 -1
- package/include/glib-2.0/glib/giochannel.h +1 -1
- package/include/glib-2.0/glib/gkeyfile.h +1 -1
- package/include/glib-2.0/glib/glib-visibility.h +34 -0
- package/include/glib-2.0/glib/gmacros.h +32 -0
- package/include/glib-2.0/glib/gmain.h +4 -0
- package/include/glib-2.0/glib/gmarkup.h +18 -1
- package/include/glib-2.0/glib/gmem.h +4 -4
- package/include/glib-2.0/glib/gmessages.h +7 -9
- package/include/glib-2.0/glib/gnode.h +1 -1
- package/include/glib-2.0/glib/goption.h +1 -1
- package/include/glib-2.0/glib/gsequence.h +2 -2
- package/include/glib-2.0/glib/gslice.h +12 -4
- package/include/glib-2.0/glib/gspawn.h +1 -1
- package/include/glib-2.0/glib/gstrfuncs.h +191 -1
- package/include/glib-2.0/glib/gtestutils.h +6 -3
- package/include/glib-2.0/glib/gtimer.h +1 -0
- package/include/glib-2.0/glib/guri.h +3 -3
- package/include/glib-2.0/glib/gutils.h +10 -1
- package/include/glib-2.0/glib/gvarianttype.h +16 -16
- package/include/glib-2.0/glib/gversionmacros.h +22 -0
- package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
- package/include/glib-2.0/gmodule.h +1 -1
- package/include/glib-2.0/gobject/gbinding.h +1 -1
- package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
- package/include/glib-2.0/gobject/gobject.h +1 -1
- package/include/glib-2.0/gobject/gparam.h +1 -1
- package/include/glib-2.0/gobject/gsignal.h +8 -8
- package/include/glib-2.0/gobject/gtype.h +17 -17
- package/include/hwy/aligned_allocator.h +44 -2
- package/include/hwy/auto_tune.h +22 -6
- package/include/hwy/base.h +60 -90
- package/include/hwy/bit_set.h +410 -0
- package/include/hwy/cache_control.h +3 -2
- package/include/hwy/detect_compiler_arch.h +134 -14
- package/include/hwy/detect_targets.h +82 -36
- package/include/hwy/highway.h +15 -0
- package/include/hwy/nanobenchmark.h +12 -3
- package/include/hwy/ops/arm_neon-inl.h +96 -25
- package/include/hwy/ops/arm_sve-inl.h +250 -95
- package/include/hwy/ops/emu128-inl.h +12 -7
- package/include/hwy/ops/generic_ops-inl.h +271 -131
- package/include/hwy/ops/loongarch_lasx-inl.h +31 -9
- package/include/hwy/ops/loongarch_lsx-inl.h +33 -12
- package/include/hwy/ops/ppc_vsx-inl.h +99 -19
- package/include/hwy/ops/rvv-inl.h +239 -130
- package/include/hwy/ops/scalar-inl.h +22 -7
- package/include/hwy/ops/set_macros-inl.h +163 -107
- package/include/hwy/ops/wasm_128-inl.h +13 -22
- package/include/hwy/ops/x86_128-inl.h +223 -120
- package/include/hwy/ops/x86_256-inl.h +70 -134
- package/include/hwy/ops/x86_512-inl.h +130 -134
- package/include/hwy/print-inl.h +2 -0
- package/include/hwy/profiler.h +355 -264
- package/include/hwy/robust_statistics.h +3 -1
- package/include/hwy/timer.h +44 -0
- package/include/lcms2.h +35 -5
- package/include/lcms2_plugin.h +1 -1
- package/include/libexif/exif-utils.h +1 -1
- package/include/libheif/heif.h +2 -0
- package/include/libheif/heif_aux_images.h +2 -2
- package/include/libheif/heif_brands.h +16 -4
- package/include/libheif/heif_color.h +147 -25
- package/include/libheif/heif_components.h +264 -0
- package/include/libheif/heif_context.h +18 -4
- package/include/libheif/heif_cxx.h +20 -18
- package/include/libheif/heif_decoding.h +63 -9
- package/include/libheif/heif_encoding.h +46 -12
- package/include/libheif/heif_error.h +15 -6
- package/include/libheif/heif_export.h +48 -0
- package/include/libheif/heif_image.h +94 -32
- package/include/libheif/heif_image_handle.h +54 -3
- package/include/libheif/heif_items.h +25 -2
- package/include/libheif/heif_library.h +13 -18
- package/include/libheif/heif_metadata.h +5 -2
- package/include/libheif/heif_omaf.h +104 -0
- package/include/libheif/heif_plugin.h +80 -13
- package/include/libheif/heif_properties.h +259 -5
- package/include/libheif/heif_regions.h +5 -3
- package/include/libheif/heif_security.h +24 -2
- package/include/libheif/heif_sequences.h +163 -14
- package/include/libheif/heif_text.h +161 -0
- package/include/libheif/heif_tiling.h +2 -2
- package/include/libheif/heif_uncompressed.h +29 -5
- package/include/libheif/heif_version.h +2 -2
- package/include/libpng16/png.h +637 -488
- package/include/libpng16/pngconf.h +2 -2
- package/include/libpng16/pnglibconf.h +2 -2
- package/include/png.h +637 -488
- package/include/pngconf.h +2 -2
- package/include/pnglibconf.h +2 -2
- package/include/resvg.h +3 -3
- package/include/tiffconf.h +9 -10
- package/include/tiffio.h +10 -9
- package/include/tiffvers.h +1 -1
- package/include/ultrahdr_api.h +5 -11
- package/include/vips/colour.h +2 -2
- package/include/vips/memory.h +1 -1
- package/include/vips/version.h +4 -4
- package/include/zlib.h +3 -3
- package/lib/glib-2.0/include/glibconfig.h +1 -3
- package/lib/libaom.a +0 -0
- package/lib/libcgif.a +0 -0
- package/lib/libexif.a +0 -0
- package/lib/libexif.la +1 -1
- package/lib/libexpat.a +0 -0
- package/lib/libexpat.la +2 -2
- package/lib/libffi.a +0 -0
- package/lib/libgio-2.0.a +0 -0
- package/lib/libglib-2.0.a +0 -0
- package/lib/libgmodule-2.0.a +0 -0
- package/lib/libgobject-2.0.a +0 -0
- package/lib/libgthread-2.0.a +0 -0
- package/lib/libheif.a +0 -0
- package/lib/libhwy.a +0 -0
- package/lib/libimagequant.a +0 -0
- package/lib/libjpeg.a +0 -0
- package/lib/liblcms2.a +0 -0
- package/lib/libpng.a +0 -0
- package/lib/libpng.la +2 -2
- package/lib/libpng16.a +0 -0
- package/lib/libpng16.la +2 -2
- package/lib/libresvg.a +0 -0
- package/lib/libsharpyuv.a +0 -0
- package/lib/libtiff.a +0 -0
- package/lib/libuhdr.a +0 -0
- package/lib/libvips-cpp.a +0 -0
- package/lib/libvips.a +0 -0
- package/lib/libwebp.a +0 -0
- package/lib/libwebpdecoder.a +0 -0
- package/lib/libwebpdemux.a +0 -0
- package/lib/libwebpmux.a +0 -0
- package/lib/libz.a +0 -0
- package/lib/pkgconfig/aom.pc +2 -2
- package/lib/pkgconfig/cgif.pc +1 -1
- package/lib/pkgconfig/expat.pc +1 -1
- package/lib/pkgconfig/gio-2.0.pc +1 -1
- package/lib/pkgconfig/glib-2.0.pc +1 -1
- package/lib/pkgconfig/gmodule-2.0.pc +1 -1
- package/lib/pkgconfig/gmodule-export-2.0.pc +1 -1
- package/lib/pkgconfig/gmodule-no-export-2.0.pc +1 -1
- package/lib/pkgconfig/gobject-2.0.pc +1 -1
- package/lib/pkgconfig/gthread-2.0.pc +1 -1
- package/lib/pkgconfig/lcms2.pc +1 -1
- package/lib/pkgconfig/libexif.pc +1 -1
- package/lib/pkgconfig/libheif.pc +1 -1
- package/lib/pkgconfig/libhwy.pc +3 -4
- package/lib/pkgconfig/libpng.pc +1 -1
- package/lib/pkgconfig/libpng16.pc +1 -1
- package/lib/pkgconfig/libsharpyuv.pc +1 -1
- package/lib/pkgconfig/libtiff-4.pc +2 -2
- package/lib/pkgconfig/libwebp.pc +1 -1
- package/lib/pkgconfig/libwebpdecoder.pc +11 -0
- package/lib/pkgconfig/libwebpmux.pc +1 -1
- package/lib/pkgconfig/vips-cpp.pc +1 -1
- package/lib/pkgconfig/vips.pc +1 -1
- package/package.json +1 -1
- package/versions.json +15 -15
- package/lib/libsharpyuv.la +0 -41
- package/lib/libtiff.la +0 -41
- package/lib/libwebp.la +0 -41
- package/lib/libwebpdemux.la +0 -41
- package/lib/libwebpmux.la +0 -41
|
@@ -123,8 +123,10 @@ T Median(T* values, const size_t num_values) {
|
|
|
123
123
|
if (num_values % 2) {
|
|
124
124
|
return values[half];
|
|
125
125
|
}
|
|
126
|
+
// For integers, round rather than truncate.
|
|
127
|
+
const T bias = hwy::IsInteger<T>() ? T{1} : T{0};
|
|
126
128
|
// Even count: return average of middle two.
|
|
127
|
-
return (values[half] + values[half - 1] +
|
|
129
|
+
return (values[half] + values[half - 1] + bias) / 2;
|
|
128
130
|
}
|
|
129
131
|
|
|
130
132
|
// Returns a robust measure of variability.
|
package/include/hwy/timer.h
CHANGED
|
@@ -232,6 +232,50 @@ static HWY_INLINE Ticks Stop() {
|
|
|
232
232
|
|
|
233
233
|
} // namespace timer
|
|
234
234
|
|
|
235
|
+
// Wrapper around Start/Stop that checks whether the CPU supports Stop.
|
|
236
|
+
class Timer {
|
|
237
|
+
public:
|
|
238
|
+
Timer() {
|
|
239
|
+
char cpu100[100];
|
|
240
|
+
have_timer_stop_ = platform::HaveTimerStop(cpu100);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// Before/After have fences to prevent the measured code 'leaking out'.
|
|
244
|
+
timer::Ticks Before() const { return timer::Start(); }
|
|
245
|
+
timer::Ticks After() const {
|
|
246
|
+
return have_timer_stop_ ? timer::Stop() : timer::Start();
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
private:
|
|
250
|
+
bool have_timer_stop_;
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
static inline double Seconds(timer::Ticks ticks) {
|
|
254
|
+
return static_cast<double>(ticks) / platform::InvariantTicksPerSecond();
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Measures elapsed time since construction, with automatic reset.
|
|
258
|
+
class Stopwatch {
|
|
259
|
+
public:
|
|
260
|
+
explicit Stopwatch(const Timer& timestamps) : timer_(timestamps) { Reset(); }
|
|
261
|
+
|
|
262
|
+
timer::Ticks Origin() const { return t0_; }
|
|
263
|
+
void Reset() { t0_ = timer_.Before(); }
|
|
264
|
+
|
|
265
|
+
// Also resets the start time to the current time to enable reuse without a
|
|
266
|
+
// second call to the timer.
|
|
267
|
+
timer::Ticks Elapsed() {
|
|
268
|
+
const timer::Ticks t1 = timer_.After();
|
|
269
|
+
const timer::Ticks elapsed = t1 - t0_;
|
|
270
|
+
t0_ = t1;
|
|
271
|
+
return elapsed;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
private:
|
|
275
|
+
const Timer& timer_;
|
|
276
|
+
timer::Ticks t0_;
|
|
277
|
+
};
|
|
278
|
+
|
|
235
279
|
} // namespace hwy
|
|
236
280
|
|
|
237
281
|
#endif // HIGHWAY_HWY_TIMER_H_
|
package/include/lcms2.h
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//---------------------------------------------------------------------------------
|
|
2
2
|
//
|
|
3
3
|
// Little Color Management System
|
|
4
|
-
// Copyright (c) 1998-
|
|
4
|
+
// Copyright (c) 1998-2026 Marti Maria Saguer
|
|
5
5
|
//
|
|
6
6
|
// Permission is hereby granted, free of charge, to any person obtaining
|
|
7
7
|
// a copy of this software and associated documentation files (the "Software"),
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
//
|
|
24
24
|
//---------------------------------------------------------------------------------
|
|
25
25
|
//
|
|
26
|
-
// Version 2.
|
|
26
|
+
// Version 2.19
|
|
27
27
|
//
|
|
28
28
|
|
|
29
29
|
#ifndef _lcms2_H
|
|
@@ -37,6 +37,13 @@
|
|
|
37
37
|
// "long long" type.
|
|
38
38
|
// #define CMS_DONT_USE_INT64 1
|
|
39
39
|
|
|
40
|
+
// Uncomment this one to enable large file support on file/stream I/O.
|
|
41
|
+
// LittleCMS is still limited by ICC 32-bit offsets and sizes, so the
|
|
42
|
+
// practical maximum remains 4 GiB minus profile overhead. Be careful
|
|
43
|
+
// because such huge profiles have to be loaded into memory and that's
|
|
44
|
+
// usually a very bad idea.
|
|
45
|
+
// #define CMS_LARGE_FILE_SUPPORT 1
|
|
46
|
+
|
|
40
47
|
// Uncomment this if your compiler doesn't work with fast floor function
|
|
41
48
|
// #define CMS_DONT_USE_FAST_FLOOR 1
|
|
42
49
|
|
|
@@ -87,7 +94,7 @@ extern "C" {
|
|
|
87
94
|
#endif
|
|
88
95
|
|
|
89
96
|
// Version/release
|
|
90
|
-
#define LCMS_VERSION
|
|
97
|
+
#define LCMS_VERSION 2190
|
|
91
98
|
|
|
92
99
|
// I will give the chance of redefining basic types for compilers that are not fully C99 compliant
|
|
93
100
|
#ifndef CMS_BASIC_TYPES_ALREADY_DEFINED
|
|
@@ -168,6 +175,9 @@ typedef double cmsFloat64Number;
|
|
|
168
175
|
#ifdef CMS_DONT_USE_INT64
|
|
169
176
|
typedef cmsUInt32Number cmsUInt64Number[2];
|
|
170
177
|
typedef cmsInt32Number cmsInt64Number[2];
|
|
178
|
+
# if defined(CMS_LARGE_FILE_SUPPORT)
|
|
179
|
+
# error "You need int64 for large file support"
|
|
180
|
+
# endif
|
|
171
181
|
#endif
|
|
172
182
|
|
|
173
183
|
// Derivative types
|
|
@@ -504,7 +514,13 @@ typedef enum {
|
|
|
504
514
|
cmsSigLinkClass = 0x6C696E6B, // 'link'
|
|
505
515
|
cmsSigAbstractClass = 0x61627374, // 'abst'
|
|
506
516
|
cmsSigColorSpaceClass = 0x73706163, // 'spac'
|
|
507
|
-
cmsSigNamedColorClass = 0x6e6d636c
|
|
517
|
+
cmsSigNamedColorClass = 0x6e6d636c, // 'nmcl'
|
|
518
|
+
|
|
519
|
+
// iccMAX only
|
|
520
|
+
cmsSigColorEncodingSpaceClass = 0x63656E63, // 'cenc'
|
|
521
|
+
cmsSigMultiplexIdentificationClass = 0x6D696420, // 'mid '
|
|
522
|
+
cmsSigMultiplexLinkClass = 0x6d6c6e6b, // 'mlnk'
|
|
523
|
+
cmsSigMultiplexVisualizationClass = 0x6d766973 // 'mvis'
|
|
508
524
|
|
|
509
525
|
} cmsProfileClassSignature;
|
|
510
526
|
|
|
@@ -1078,8 +1094,12 @@ CMSAPI int CMSEXPORT cmsGetEncodedCMMversion(void);
|
|
|
1078
1094
|
// Support of non-standard functions --------------------------------------------------------------------------------------
|
|
1079
1095
|
|
|
1080
1096
|
CMSAPI int CMSEXPORT cmsstrcasecmp(const char* s1, const char* s2);
|
|
1081
|
-
CMSAPI long int CMSEXPORT cmsfilelength(FILE* f);
|
|
1082
1097
|
|
|
1098
|
+
#ifdef CMS_LARGE_FILE_SUPPORT
|
|
1099
|
+
CMSAPI long long int CMSEXPORT cmsfilelength(FILE* f);
|
|
1100
|
+
#else
|
|
1101
|
+
CMSAPI long int CMSEXPORT cmsfilelength(FILE* f);
|
|
1102
|
+
#endif
|
|
1083
1103
|
|
|
1084
1104
|
// Context handling --------------------------------------------------------------------------------------------------------
|
|
1085
1105
|
|
|
@@ -1502,6 +1522,7 @@ CMSAPI cmsHPROFILE CMSEXPORT cmsCreateProfilePlaceholder(cmsContext Contex
|
|
|
1502
1522
|
CMSAPI cmsContext CMSEXPORT cmsGetProfileContextID(cmsHPROFILE hProfile);
|
|
1503
1523
|
CMSAPI cmsInt32Number CMSEXPORT cmsGetTagCount(cmsHPROFILE hProfile);
|
|
1504
1524
|
CMSAPI cmsTagSignature CMSEXPORT cmsGetTagSignature(cmsHPROFILE hProfile, cmsUInt32Number n);
|
|
1525
|
+
CMSAPI cmsBool CMSEXPORT cmsGetTagOffsetAndSize(cmsHPROFILE hProfile, cmsUInt32Number n, cmsUInt32Number* offset, cmsUInt32Number* size);
|
|
1505
1526
|
CMSAPI cmsBool CMSEXPORT cmsIsTag(cmsHPROFILE hProfile, cmsTagSignature sig);
|
|
1506
1527
|
|
|
1507
1528
|
// Read and write pre-formatted data
|
|
@@ -1525,6 +1546,8 @@ CMSAPI void CMSEXPORT cmsGetHeaderAttributes(cmsHPROFILE hProfile,
|
|
|
1525
1546
|
CMSAPI void CMSEXPORT cmsGetHeaderProfileID(cmsHPROFILE hProfile, cmsUInt8Number* ProfileID);
|
|
1526
1547
|
CMSAPI cmsBool CMSEXPORT cmsGetHeaderCreationDateTime(cmsHPROFILE hProfile, struct tm *Dest);
|
|
1527
1548
|
CMSAPI cmsUInt32Number CMSEXPORT cmsGetHeaderRenderingIntent(cmsHPROFILE hProfile);
|
|
1549
|
+
CMSAPI cmsUInt32Number CMSEXPORT cmsGetHeaderCMM(cmsHPROFILE hProfile);
|
|
1550
|
+
|
|
1528
1551
|
|
|
1529
1552
|
CMSAPI void CMSEXPORT cmsSetHeaderFlags(cmsHPROFILE hProfile, cmsUInt32Number Flags);
|
|
1530
1553
|
CMSAPI cmsUInt32Number CMSEXPORT cmsGetHeaderManufacturer(cmsHPROFILE hProfile);
|
|
@@ -1867,6 +1890,13 @@ CMSAPI cmsContext CMSEXPORT cmsGetTransformContextID(cmsHTRANSFORM hTransf
|
|
|
1867
1890
|
CMSAPI cmsUInt32Number CMSEXPORT cmsGetTransformInputFormat(cmsHTRANSFORM hTransform);
|
|
1868
1891
|
CMSAPI cmsUInt32Number CMSEXPORT cmsGetTransformOutputFormat(cmsHTRANSFORM hTransform);
|
|
1869
1892
|
|
|
1893
|
+
// Access the optimized pipeline and gamut-check pipeline inside a transform.
|
|
1894
|
+
CMSAPI cmsPipeline* CMSEXPORT cmsGetTransformPipeline(cmsHTRANSFORM hTransform);
|
|
1895
|
+
CMSAPI cmsPipeline* CMSEXPORT cmsGetTransformGamutCheckPipeline(cmsHTRANSFORM hTransform);
|
|
1896
|
+
// Grab colorants
|
|
1897
|
+
CMSAPI cmsNAMEDCOLORLIST* CMSEXPORT cmsGetTransformInputColorants(cmsHTRANSFORM hTransform);
|
|
1898
|
+
CMSAPI cmsNAMEDCOLORLIST* CMSEXPORT cmsGetTransformOutputColorants(cmsHTRANSFORM hTransform);
|
|
1899
|
+
|
|
1870
1900
|
// For backwards compatibility
|
|
1871
1901
|
CMSAPI cmsBool CMSEXPORT cmsChangeBuffersFormat(cmsHTRANSFORM hTransform,
|
|
1872
1902
|
cmsUInt32Number InputFormat,
|
package/include/lcms2_plugin.h
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//---------------------------------------------------------------------------------
|
|
2
2
|
//
|
|
3
3
|
// Little Color Management System
|
|
4
|
-
// Copyright (c) 1998-
|
|
4
|
+
// Copyright (c) 1998-2026 Marti Maria Saguer
|
|
5
5
|
//
|
|
6
6
|
// Permission is hereby granted, free of charge, to any person obtaining
|
|
7
7
|
// a copy of this software and associated documentation files (the "Software"),
|
|
@@ -170,7 +170,7 @@ void exif_set_srational (unsigned char *b, ExifByteOrder order,
|
|
|
170
170
|
ExifSRational value);
|
|
171
171
|
|
|
172
172
|
/*! \internal */
|
|
173
|
-
void exif_convert_utf16_to_utf8 (char *out, const unsigned char *in, int
|
|
173
|
+
void exif_convert_utf16_to_utf8 (char *out, unsigned int outlen, const unsigned char *in, unsigned int inlen);
|
|
174
174
|
|
|
175
175
|
/* Please do not use this function outside of the library. */
|
|
176
176
|
|
package/include/libheif/heif.h
CHANGED
|
@@ -51,12 +51,12 @@ heif_error heif_image_handle_get_depth_image_handle(const heif_image_handle* han
|
|
|
51
51
|
heif_image_handle** out_depth_handle);
|
|
52
52
|
|
|
53
53
|
|
|
54
|
-
enum heif_depth_representation_type {
|
|
54
|
+
typedef enum heif_depth_representation_type {
|
|
55
55
|
heif_depth_representation_type_uniform_inverse_Z = 0,
|
|
56
56
|
heif_depth_representation_type_uniform_disparity = 1,
|
|
57
57
|
heif_depth_representation_type_uniform_Z = 2,
|
|
58
58
|
heif_depth_representation_type_nonuniform_disparity = 3
|
|
59
|
-
};
|
|
59
|
+
} heif_depth_representation_type;
|
|
60
60
|
|
|
61
61
|
typedef struct heif_depth_representation_info {
|
|
62
62
|
uint8_t version;
|
|
@@ -250,7 +250,19 @@ typedef uint32_t heif_brand2;
|
|
|
250
250
|
#define heif_brand2_avci heif_fourcc('a','v','c','i')
|
|
251
251
|
#define heif_brand2_avcs heif_fourcc('a','v','c','s')
|
|
252
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Unified ID namespace (`unif`) brand.
|
|
255
|
+
*
|
|
256
|
+
* All IDs (item, track, entity group) share a single global namespace.
|
|
257
|
+
*
|
|
258
|
+
* See ISO/IEC 14496-12.
|
|
259
|
+
*/
|
|
260
|
+
#define heif_brand2_unif heif_fourcc('u','n','i','f')
|
|
261
|
+
|
|
253
262
|
#define heif_brand2_iso8 heif_fourcc('i','s','o','8')
|
|
263
|
+
#define heif_brand2_isom heif_fourcc('i','s','o','m')
|
|
264
|
+
#define heif_brand2_mp41 heif_fourcc('m','p','4','1')
|
|
265
|
+
#define heif_brand2_mp42 heif_fourcc('m','p','4','2')
|
|
254
266
|
|
|
255
267
|
// input data should be at least 12 bytes
|
|
256
268
|
LIBHEIF_API
|
|
@@ -308,13 +320,13 @@ const char* heif_get_file_mime_type(const uint8_t* data, int len);
|
|
|
308
320
|
|
|
309
321
|
// ========================= file type check ======================
|
|
310
322
|
|
|
311
|
-
enum heif_filetype_result
|
|
323
|
+
typedef enum heif_filetype_result
|
|
312
324
|
{
|
|
313
325
|
heif_filetype_no,
|
|
314
326
|
heif_filetype_yes_supported, // it is heif and can be read by libheif
|
|
315
327
|
heif_filetype_yes_unsupported, // it is heif, but cannot be read by libheif
|
|
316
328
|
heif_filetype_maybe // not sure whether it is an heif, try detection with more input data
|
|
317
|
-
};
|
|
329
|
+
} heif_filetype_result;
|
|
318
330
|
|
|
319
331
|
// input data should be at least 12 bytes
|
|
320
332
|
LIBHEIF_API
|
|
@@ -339,7 +351,7 @@ int heif_check_jpeg_filetype(const uint8_t* data, int len);
|
|
|
339
351
|
// ===================== DEPRECATED =====================
|
|
340
352
|
|
|
341
353
|
// DEPRECATED, use heif_brand2 and the heif_brand2_* constants instead
|
|
342
|
-
enum heif_brand
|
|
354
|
+
typedef enum heif_brand
|
|
343
355
|
{
|
|
344
356
|
heif_unknown_brand,
|
|
345
357
|
heif_heic, // HEIF image with h265
|
|
@@ -359,7 +371,7 @@ enum heif_brand
|
|
|
359
371
|
heif_evbs, // EVC sequence
|
|
360
372
|
heif_j2ki, // JPEG2000 image
|
|
361
373
|
heif_j2is, // JPEG2000 image sequence
|
|
362
|
-
};
|
|
374
|
+
} heif_brand;
|
|
363
375
|
|
|
364
376
|
// input data should be at least 12 bytes
|
|
365
377
|
// DEPRECATED, use heif_read_main_brand() instead
|
|
@@ -31,7 +31,7 @@ extern "C" {
|
|
|
31
31
|
typedef struct heif_image heif_image;
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
enum heif_chroma_downsampling_algorithm
|
|
34
|
+
typedef enum heif_chroma_downsampling_algorithm
|
|
35
35
|
{
|
|
36
36
|
heif_chroma_downsampling_nearest_neighbor = 1,
|
|
37
37
|
heif_chroma_downsampling_average = 2,
|
|
@@ -39,13 +39,13 @@ enum heif_chroma_downsampling_algorithm
|
|
|
39
39
|
// Combine with 'heif_chroma_upsampling_bilinear' for best quality.
|
|
40
40
|
// Makes edges look sharper when using YUV 420 with bilinear chroma upsampling.
|
|
41
41
|
heif_chroma_downsampling_sharp_yuv = 3
|
|
42
|
-
};
|
|
42
|
+
} heif_chroma_downsampling_algorithm;
|
|
43
43
|
|
|
44
|
-
enum heif_chroma_upsampling_algorithm
|
|
44
|
+
typedef enum heif_chroma_upsampling_algorithm
|
|
45
45
|
{
|
|
46
46
|
heif_chroma_upsampling_nearest_neighbor = 1,
|
|
47
47
|
heif_chroma_upsampling_bilinear = 2
|
|
48
|
-
};
|
|
48
|
+
} heif_chroma_upsampling_algorithm;
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
typedef struct heif_color_conversion_options
|
|
@@ -55,8 +55,8 @@ typedef struct heif_color_conversion_options
|
|
|
55
55
|
|
|
56
56
|
// --- version 1 options
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
heif_chroma_downsampling_algorithm preferred_chroma_downsampling_algorithm;
|
|
59
|
+
heif_chroma_upsampling_algorithm preferred_chroma_upsampling_algorithm;
|
|
60
60
|
|
|
61
61
|
// When set to 'false' libheif may also use a different algorithm if the preferred one is not available
|
|
62
62
|
// or using a different algorithm is computationally less complex. Note that currently (v1.17.0) this
|
|
@@ -71,12 +71,12 @@ typedef struct heif_color_conversion_options
|
|
|
71
71
|
} heif_color_conversion_options;
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
enum heif_alpha_composition_mode
|
|
74
|
+
typedef enum heif_alpha_composition_mode
|
|
75
75
|
{
|
|
76
76
|
heif_alpha_composition_mode_none,
|
|
77
77
|
heif_alpha_composition_mode_solid_color,
|
|
78
78
|
heif_alpha_composition_mode_checkerboard,
|
|
79
|
-
};
|
|
79
|
+
} heif_alpha_composition_mode;
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
typedef struct heif_color_conversion_options_ext
|
|
@@ -85,7 +85,7 @@ typedef struct heif_color_conversion_options_ext
|
|
|
85
85
|
|
|
86
86
|
// --- version 1 options
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
heif_alpha_composition_mode alpha_composition_mode;
|
|
89
89
|
|
|
90
90
|
// color values should be specified in the range [0, 65535]
|
|
91
91
|
uint16_t background_red, background_green, background_blue;
|
|
@@ -111,13 +111,13 @@ void heif_color_conversion_options_ext_free(heif_color_conversion_options_ext*);
|
|
|
111
111
|
|
|
112
112
|
// ------------------------- color profiles -------------------------
|
|
113
113
|
|
|
114
|
-
enum heif_color_profile_type
|
|
114
|
+
typedef enum heif_color_profile_type
|
|
115
115
|
{
|
|
116
116
|
heif_color_profile_type_not_present = 0,
|
|
117
117
|
heif_color_profile_type_nclx = heif_fourcc('n', 'c', 'l', 'x'),
|
|
118
118
|
heif_color_profile_type_rICC = heif_fourcc('r', 'I', 'C', 'C'),
|
|
119
119
|
heif_color_profile_type_prof = heif_fourcc('p', 'r', 'o', 'f')
|
|
120
|
-
};
|
|
120
|
+
} heif_color_profile_type;
|
|
121
121
|
|
|
122
122
|
|
|
123
123
|
// Returns 'heif_color_profile_type_not_present' if there is no color profile.
|
|
@@ -126,7 +126,7 @@ enum heif_color_profile_type
|
|
|
126
126
|
// However, you can still use heif_image_handle_get_raw_color_profile() and
|
|
127
127
|
// heif_image_handle_get_nclx_color_profile() to access both profiles.
|
|
128
128
|
LIBHEIF_API
|
|
129
|
-
|
|
129
|
+
heif_color_profile_type heif_image_handle_get_color_profile_type(const heif_image_handle* handle);
|
|
130
130
|
|
|
131
131
|
LIBHEIF_API
|
|
132
132
|
size_t heif_image_handle_get_raw_color_profile_size(const heif_image_handle* handle);
|
|
@@ -137,7 +137,7 @@ struct heif_error heif_image_handle_get_raw_color_profile(const heif_image_handl
|
|
|
137
137
|
void* out_data);
|
|
138
138
|
|
|
139
139
|
|
|
140
|
-
enum heif_color_primaries
|
|
140
|
+
typedef enum heif_color_primaries
|
|
141
141
|
{
|
|
142
142
|
heif_color_primaries_ITU_R_BT_709_5 = 1, // g=0.3;0.6, b=0.15;0.06, r=0.64;0.33, w=0.3127,0.3290
|
|
143
143
|
heif_color_primaries_unspecified = 2,
|
|
@@ -151,9 +151,9 @@ enum heif_color_primaries
|
|
|
151
151
|
heif_color_primaries_SMPTE_RP_431_2 = 11,
|
|
152
152
|
heif_color_primaries_SMPTE_EG_432_1 = 12,
|
|
153
153
|
heif_color_primaries_EBU_Tech_3213_E = 22
|
|
154
|
-
};
|
|
154
|
+
} heif_color_primaries;
|
|
155
155
|
|
|
156
|
-
enum heif_transfer_characteristics
|
|
156
|
+
typedef enum heif_transfer_characteristics
|
|
157
157
|
{
|
|
158
158
|
heif_transfer_characteristic_ITU_R_BT_709_5 = 1,
|
|
159
159
|
heif_transfer_characteristic_unspecified = 2,
|
|
@@ -172,9 +172,9 @@ enum heif_transfer_characteristics
|
|
|
172
172
|
heif_transfer_characteristic_ITU_R_BT_2100_0_PQ = 16,
|
|
173
173
|
heif_transfer_characteristic_SMPTE_ST_428_1 = 17,
|
|
174
174
|
heif_transfer_characteristic_ITU_R_BT_2100_0_HLG = 18
|
|
175
|
-
};
|
|
175
|
+
} heif_transfer_characteristics;
|
|
176
176
|
|
|
177
|
-
enum heif_matrix_coefficients
|
|
177
|
+
typedef enum heif_matrix_coefficients
|
|
178
178
|
{
|
|
179
179
|
heif_matrix_coefficients_RGB_GBR = 0,
|
|
180
180
|
heif_matrix_coefficients_ITU_R_BT_709_5 = 1, // TODO: or 709-6 according to h.273
|
|
@@ -190,7 +190,7 @@ enum heif_matrix_coefficients
|
|
|
190
190
|
heif_matrix_coefficients_chromaticity_derived_non_constant_luminance = 12,
|
|
191
191
|
heif_matrix_coefficients_chromaticity_derived_constant_luminance = 13,
|
|
192
192
|
heif_matrix_coefficients_ICtCp = 14
|
|
193
|
-
};
|
|
193
|
+
} heif_matrix_coefficients;
|
|
194
194
|
|
|
195
195
|
typedef struct heif_color_profile_nclx
|
|
196
196
|
{
|
|
@@ -198,9 +198,9 @@ typedef struct heif_color_profile_nclx
|
|
|
198
198
|
|
|
199
199
|
uint8_t version;
|
|
200
200
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
201
|
+
heif_color_primaries color_primaries;
|
|
202
|
+
heif_transfer_characteristics transfer_characteristics;
|
|
203
|
+
heif_matrix_coefficients matrix_coefficients;
|
|
204
204
|
uint8_t full_range_flag;
|
|
205
205
|
|
|
206
206
|
// --- decoded values (not used when saving nclx)
|
|
@@ -240,7 +240,7 @@ void heif_nclx_color_profile_free(heif_color_profile_nclx* nclx_profile);
|
|
|
240
240
|
// This function will now return ICC if one is present and NCLX only if there is no ICC.
|
|
241
241
|
// You may better avoid this function and simply query for NCLX and ICC directly.
|
|
242
242
|
LIBHEIF_API
|
|
243
|
-
|
|
243
|
+
heif_color_profile_type heif_image_get_color_profile_type(const heif_image* image);
|
|
244
244
|
|
|
245
245
|
// Returns the size of the ICC profile if one is assigned to the image. Otherwise, it returns 0.
|
|
246
246
|
LIBHEIF_API
|
|
@@ -276,17 +276,34 @@ heif_error heif_image_set_nclx_color_profile(heif_image* image,
|
|
|
276
276
|
|
|
277
277
|
// --- content light level ---
|
|
278
278
|
|
|
279
|
-
//
|
|
280
|
-
//
|
|
279
|
+
// Semantics follow the H.265 'Content light level information' SEI message
|
|
280
|
+
// (ITU-T H.265 Annex D.3.35). Identifies upper bounds for the nominal
|
|
281
|
+
// target brightness light level of the pictures. The bounds are defined
|
|
282
|
+
// against samples in a 4:4:4 RGB representation in the linear light domain,
|
|
283
|
+
// in units of candelas per square metre (cd/m^2 = nits). A field value
|
|
284
|
+
// of 0 means "no upper bound indicated" (i.e. undefined).
|
|
281
285
|
typedef struct heif_content_light_level
|
|
282
286
|
{
|
|
287
|
+
// Upper bound on the maximum light level among all individual linear-light
|
|
288
|
+
// 4:4:4 RGB samples across the sequence, in cd/m^2 (= field).
|
|
289
|
+
// Also called MaxCLL.
|
|
283
290
|
uint16_t max_content_light_level;
|
|
291
|
+
|
|
292
|
+
// Upper bound on the maximum per-picture average light level among the
|
|
293
|
+
// linear-light 4:4:4 RGB samples (averaged over any individual picture),
|
|
294
|
+
// in cd/m^2 (= field). Also called MaxFALL (or MaxPALL).
|
|
295
|
+
// For letterboxed content the average is expected to be taken only over
|
|
296
|
+
// the visually relevant region (H.265 D.3.35 NOTE 3).
|
|
284
297
|
uint16_t max_pic_average_light_level;
|
|
285
298
|
} heif_content_light_level;
|
|
286
299
|
|
|
287
300
|
LIBHEIF_API
|
|
288
301
|
int heif_image_has_content_light_level(const heif_image*);
|
|
289
302
|
|
|
303
|
+
LIBHEIF_API
|
|
304
|
+
int heif_image_handle_has_content_light_level(const heif_image_handle*);
|
|
305
|
+
|
|
306
|
+
// TODO: this function should also return 'int' to be consistent to heif_image_handle_get_content_light_level.
|
|
290
307
|
LIBHEIF_API
|
|
291
308
|
void heif_image_get_content_light_level(const heif_image*, heif_content_light_level* out);
|
|
292
309
|
|
|
@@ -297,16 +314,49 @@ int heif_image_handle_get_content_light_level(const heif_image_handle*, heif_con
|
|
|
297
314
|
LIBHEIF_API
|
|
298
315
|
void heif_image_set_content_light_level(const heif_image*, const heif_content_light_level* in);
|
|
299
316
|
|
|
317
|
+
LIBHEIF_API
|
|
318
|
+
void heif_image_handle_set_content_light_level(const heif_image_handle*, const heif_content_light_level* in);
|
|
319
|
+
|
|
300
320
|
|
|
301
321
|
// --- mastering display colour volume ---
|
|
302
322
|
|
|
303
|
-
//
|
|
323
|
+
// Semantics follow the H.265 'Mastering display colour volume' SEI message
|
|
324
|
+
// (ITU-T H.265 Annex D.3.28) and SMPTE ST 2086. Identifies the colour
|
|
325
|
+
// volume (primaries, white point, luminance range) of the mastering display
|
|
326
|
+
// for the associated content. CIE 1931 chromaticity coordinates are defined
|
|
327
|
+
// by ISO 11664-1 (see also ISO 11664-3 and CIE 15).
|
|
328
|
+
//
|
|
329
|
+
// For RGB mastering displays, H.265 suggests the index order
|
|
330
|
+
// [0]=green, [1]=blue, [2]=red
|
|
331
|
+
// (see H.265 Annex E, Table E.3).
|
|
304
332
|
typedef struct heif_mastering_display_colour_volume
|
|
305
333
|
{
|
|
334
|
+
// CIE 1931 chromaticity coordinates of the three colour primaries, in
|
|
335
|
+
// normalized increments of 0.00002 (CIE value = field / 50000).
|
|
336
|
+
// Valid ranges per H.265: x in 5..37000, y in 5..42000 inclusive; values
|
|
337
|
+
// outside indicate "unknown / unspecified".
|
|
338
|
+
// Note: SMPTE ST 2086 uses four-decimal-place coordinates, i.e. multiples
|
|
339
|
+
// of 5 in this encoding.
|
|
306
340
|
uint16_t display_primaries_x[3];
|
|
307
341
|
uint16_t display_primaries_y[3];
|
|
342
|
+
|
|
343
|
+
// CIE 1931 chromaticity coordinates of the mastering display's white
|
|
344
|
+
// point, in normalized increments of 0.00002. Valid ranges as for the
|
|
345
|
+
// primaries (x in 5..37000, y in 5..42000).
|
|
346
|
+
// Note: ANSI/CTA 861-G uses (0,0) to indicate that the white point
|
|
347
|
+
// chromaticity is unknown.
|
|
308
348
|
uint16_t white_point_x;
|
|
309
349
|
uint16_t white_point_y;
|
|
350
|
+
|
|
351
|
+
// Nominal maximum / minimum display luminance of the mastering display,
|
|
352
|
+
// in units of 0.0001 candelas per square metre (cd/m^2 = field / 10000).
|
|
353
|
+
// Valid ranges per H.265:
|
|
354
|
+
// max in 50000..100000000 (5..10000 cd/m^2)
|
|
355
|
+
// min in 1..50000 (0.0001..5 cd/m^2)
|
|
356
|
+
// When max == 50000, min shall not equal 50000.
|
|
357
|
+
// Note: ANSI/CTA 861-G uses 0 to indicate "unknown".
|
|
358
|
+
// Note: SMPTE ST 2086 (2018) specifies max as a multiple of 1 cd/m^2, i.e.
|
|
359
|
+
// a multiple of 10000 in this encoding.
|
|
310
360
|
uint32_t max_display_mastering_luminance;
|
|
311
361
|
uint32_t min_display_mastering_luminance;
|
|
312
362
|
} heif_mastering_display_colour_volume;
|
|
@@ -322,9 +372,24 @@ typedef struct heif_decoded_mastering_display_colour_volume
|
|
|
322
372
|
double min_display_mastering_luminance;
|
|
323
373
|
} heif_decoded_mastering_display_colour_volume;
|
|
324
374
|
|
|
375
|
+
// Semantics follow the H.265 'Ambient viewing environment' SEI message
|
|
376
|
+
// (ITU-T H.265 Annex D.3.39). Identifies the nominal ambient viewing
|
|
377
|
+
// environment intended for display of the associated content.
|
|
325
378
|
typedef struct heif_ambient_viewing_environment
|
|
326
379
|
{
|
|
380
|
+
// Environmental illuminance of the ambient viewing environment, in units
|
|
381
|
+
// of 0.0001 lux (i.e. lux = value / 10000). In H.265 this field is called
|
|
382
|
+
// 'ambient_illuminance' and is required to be non-zero; 0 is treated here
|
|
383
|
+
// as "undefined".
|
|
327
384
|
uint32_t ambient_illumination;
|
|
385
|
+
|
|
386
|
+
// Normalized CIE 1931 chromaticity coordinates of the environmental
|
|
387
|
+
// ambient light, in units of 0.00002 (i.e. CIE x = value / 50000).
|
|
388
|
+
// Valid range per H.265 is 0..50000 inclusive. CIE 1931 x/y are defined
|
|
389
|
+
// by ISO 11664-1 (see also ISO 11664-3 and CIE 15).
|
|
390
|
+
//
|
|
391
|
+
// Example (Rec. ITU-R BT.2035, D65 background): ambient_illumination=100000,
|
|
392
|
+
// ambient_light_x=15635, ambient_light_y=16450.
|
|
328
393
|
uint16_t ambient_light_x;
|
|
329
394
|
uint16_t ambient_light_y;
|
|
330
395
|
} heif_ambient_viewing_environment;
|
|
@@ -332,6 +397,9 @@ typedef struct heif_ambient_viewing_environment
|
|
|
332
397
|
LIBHEIF_API
|
|
333
398
|
int heif_image_has_mastering_display_colour_volume(const heif_image*);
|
|
334
399
|
|
|
400
|
+
LIBHEIF_API
|
|
401
|
+
int heif_image_handle_has_mastering_display_colour_volume(const heif_image_handle*);
|
|
402
|
+
|
|
335
403
|
LIBHEIF_API
|
|
336
404
|
void heif_image_get_mastering_display_colour_volume(const heif_image*, heif_mastering_display_colour_volume* out);
|
|
337
405
|
|
|
@@ -342,6 +410,60 @@ int heif_image_handle_get_mastering_display_colour_volume(const heif_image_handl
|
|
|
342
410
|
LIBHEIF_API
|
|
343
411
|
void heif_image_set_mastering_display_colour_volume(const heif_image*, const heif_mastering_display_colour_volume* in);
|
|
344
412
|
|
|
413
|
+
LIBHEIF_API
|
|
414
|
+
void heif_image_handle_set_mastering_display_colour_volume(const heif_image_handle*, const heif_mastering_display_colour_volume* in);
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
// --- ambient viewing environment ---
|
|
418
|
+
|
|
419
|
+
LIBHEIF_API
|
|
420
|
+
int heif_image_has_ambient_viewing_environment(const heif_image*);
|
|
421
|
+
|
|
422
|
+
LIBHEIF_API
|
|
423
|
+
int heif_image_handle_has_ambient_viewing_environment(const heif_image_handle*);
|
|
424
|
+
|
|
425
|
+
// Returns whether the image has 'ambient viewing environment' information. If 0 is returned, the output is not filled.
|
|
426
|
+
LIBHEIF_API
|
|
427
|
+
int heif_image_get_ambient_viewing_environment(const heif_image*, heif_ambient_viewing_environment* out);
|
|
428
|
+
|
|
429
|
+
// Returns whether the image has 'ambient viewing environment' information. If 0 is returned, the output is not filled.
|
|
430
|
+
LIBHEIF_API
|
|
431
|
+
int heif_image_handle_get_ambient_viewing_environment(const heif_image_handle*, heif_ambient_viewing_environment* out);
|
|
432
|
+
|
|
433
|
+
LIBHEIF_API
|
|
434
|
+
void heif_image_set_ambient_viewing_environment(const heif_image*, const heif_ambient_viewing_environment* in);
|
|
435
|
+
|
|
436
|
+
LIBHEIF_API
|
|
437
|
+
void heif_image_handle_set_ambient_viewing_environment(const heif_image_handle*, const heif_ambient_viewing_environment* in);
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
// --- nominal diffuse white ---
|
|
441
|
+
|
|
442
|
+
// Nominal diffuse white luminance (ISO/IEC 23008-12 'ndwt' box). The luminance
|
|
443
|
+
// is given in units of 0.0001 candelas per square metre. A value of 0 is valid
|
|
444
|
+
// and selects the default definition of ISO/TS 22028-5.
|
|
445
|
+
|
|
446
|
+
// If the image has no 'nominal diffuse white' information, the getter returns 0,
|
|
447
|
+
// which is indistinguishable from a stored luminance of 0. Use the has_ function
|
|
448
|
+
// to disambiguate.
|
|
449
|
+
LIBHEIF_API
|
|
450
|
+
int heif_image_has_nominal_diffuse_white_luminance(const heif_image*);
|
|
451
|
+
|
|
452
|
+
LIBHEIF_API
|
|
453
|
+
uint32_t heif_image_get_nominal_diffuse_white_luminance(const heif_image*);
|
|
454
|
+
|
|
455
|
+
LIBHEIF_API
|
|
456
|
+
void heif_image_set_nominal_diffuse_white_luminance(const heif_image*, uint32_t luminance);
|
|
457
|
+
|
|
458
|
+
LIBHEIF_API
|
|
459
|
+
int heif_image_handle_has_nominal_diffuse_white_luminance(const heif_image_handle*);
|
|
460
|
+
|
|
461
|
+
LIBHEIF_API
|
|
462
|
+
uint32_t heif_image_handle_get_nominal_diffuse_white_luminance(const heif_image_handle*);
|
|
463
|
+
|
|
464
|
+
LIBHEIF_API
|
|
465
|
+
void heif_image_handle_set_nominal_diffuse_white_luminance(const heif_image_handle*, uint32_t luminance);
|
|
466
|
+
|
|
345
467
|
|
|
346
468
|
// Converts the internal numeric representation of heif_mastering_display_colour_volume to the
|
|
347
469
|
// normalized values, collected in heif_decoded_mastering_display_colour_volume.
|