@img/sharp-libvips-dev-wasm32 1.3.0-rc.7 → 1.3.0-rc.8

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.
Files changed (93) hide show
  1. package/include/aom/aom_codec.h +1 -1
  2. package/include/aom/aom_decoder.h +4 -0
  3. package/include/aom/aom_encoder.h +19 -8
  4. package/include/aom/aom_ext_ratectrl.h +664 -0
  5. package/include/aom/aom_image.h +93 -30
  6. package/include/aom/aom_tpl.h +99 -0
  7. package/include/aom/aomcx.h +89 -16
  8. package/include/aom/aomdx.h +12 -0
  9. package/include/expat.h +1 -1
  10. package/include/expat_config.h +3 -3
  11. package/include/glib-2.0/gio/gdbusconnection.h +2 -8
  12. package/include/glib-2.0/gio/gio-visibility.h +34 -0
  13. package/include/glib-2.0/gio/gioenums.h +5 -4
  14. package/include/glib-2.0/glib/glib-visibility.h +34 -0
  15. package/include/glib-2.0/glib/gmacros.h +3 -3
  16. package/include/glib-2.0/glib/gmarkup.h +10 -0
  17. package/include/glib-2.0/glib/gmem.h +4 -4
  18. package/include/glib-2.0/glib/gmessages.h +6 -8
  19. package/include/glib-2.0/glib/gsequence.h +2 -2
  20. package/include/glib-2.0/glib/gstrfuncs.h +190 -0
  21. package/include/glib-2.0/glib/gutils.h +9 -0
  22. package/include/glib-2.0/glib/gversionmacros.h +9 -0
  23. package/include/glib-2.0/gmodule/gmodule-visibility.h +34 -0
  24. package/include/glib-2.0/gobject/gobject-visibility.h +34 -0
  25. package/include/glib-2.0/gobject/gsignal.h +5 -5
  26. package/include/glib-2.0/gobject/gtype.h +14 -14
  27. package/include/libheif/heif.h +2 -0
  28. package/include/libheif/heif_color.h +127 -11
  29. package/include/libheif/heif_components.h +264 -0
  30. package/include/libheif/heif_context.h +2 -1
  31. package/include/libheif/heif_cxx.h +10 -10
  32. package/include/libheif/heif_decoding.h +51 -7
  33. package/include/libheif/heif_encoding.h +15 -9
  34. package/include/libheif/heif_error.h +9 -2
  35. package/include/libheif/heif_export.h +48 -0
  36. package/include/libheif/heif_image.h +81 -66
  37. package/include/libheif/heif_image_handle.h +2 -2
  38. package/include/libheif/heif_items.h +1 -1
  39. package/include/libheif/heif_library.h +8 -16
  40. package/include/libheif/heif_omaf.h +104 -0
  41. package/include/libheif/heif_plugin.h +16 -9
  42. package/include/libheif/heif_properties.h +250 -12
  43. package/include/libheif/heif_security.h +16 -4
  44. package/include/libheif/heif_sequences.h +74 -2
  45. package/include/libheif/heif_tiling.h +2 -2
  46. package/include/libheif/heif_uncompressed.h +44 -332
  47. package/include/libheif/heif_version.h +2 -2
  48. package/include/vips/version.h +4 -4
  49. package/lib/glib-2.0/include/glibconfig.h +2 -4
  50. package/lib/libaom.a +0 -0
  51. package/lib/libcgif.a +0 -0
  52. package/lib/libexif.a +0 -0
  53. package/lib/libexpat.a +0 -0
  54. package/lib/libexpat.la +1 -1
  55. package/lib/libffi.a +0 -0
  56. package/lib/libgio-2.0.a +0 -0
  57. package/lib/libglib-2.0.a +0 -0
  58. package/lib/libgmodule-2.0.a +0 -0
  59. package/lib/libgobject-2.0.a +0 -0
  60. package/lib/libgthread-2.0.a +0 -0
  61. package/lib/libheif.a +0 -0
  62. package/lib/libhwy.a +0 -0
  63. package/lib/libimagequant.a +0 -0
  64. package/lib/libjpeg.a +0 -0
  65. package/lib/liblcms2.a +0 -0
  66. package/lib/libpng.a +0 -0
  67. package/lib/libpng16.a +0 -0
  68. package/lib/libresvg.a +0 -0
  69. package/lib/libsharpyuv.a +0 -0
  70. package/lib/libtiff.a +0 -0
  71. package/lib/libuhdr.a +0 -0
  72. package/lib/libvips-cpp.a +0 -0
  73. package/lib/libvips.a +0 -0
  74. package/lib/libwebp.a +0 -0
  75. package/lib/libwebpdecoder.a +0 -0
  76. package/lib/libwebpdemux.a +0 -0
  77. package/lib/libwebpmux.a +0 -0
  78. package/lib/libz.a +0 -0
  79. package/lib/pkgconfig/aom.pc +2 -2
  80. package/lib/pkgconfig/expat.pc +1 -1
  81. package/lib/pkgconfig/gio-2.0.pc +1 -1
  82. package/lib/pkgconfig/glib-2.0.pc +1 -1
  83. package/lib/pkgconfig/gmodule-2.0.pc +1 -1
  84. package/lib/pkgconfig/gmodule-export-2.0.pc +1 -1
  85. package/lib/pkgconfig/gmodule-no-export-2.0.pc +1 -1
  86. package/lib/pkgconfig/gobject-2.0.pc +1 -1
  87. package/lib/pkgconfig/gthread-2.0.pc +1 -1
  88. package/lib/pkgconfig/libheif.pc +2 -2
  89. package/lib/pkgconfig/vips-cpp.pc +1 -1
  90. package/lib/pkgconfig/vips.pc +1 -1
  91. package/package.json +1 -1
  92. package/versions.json +8 -8
  93. package/include/libheif/heif_uncompressed_types.h +0 -143
@@ -43,8 +43,17 @@ typedef enum aom_img_fmt {
43
43
  AOM_IMG_FMT_YV12 =
44
44
  AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP | 1, /**< planar YVU */
45
45
  AOM_IMG_FMT_I420 = AOM_IMG_FMT_PLANAR | 2,
46
- AOM_IMG_FMT_AOMYV12 = AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP |
47
- 3, /** < planar 4:2:0 format with aom color space */
46
+ /** Planar 4:2:0 format with aom color space
47
+ *
48
+ * \deprecated This value is unsupported and will be removed in a future
49
+ * release.
50
+ */
51
+ AOM_IMG_FMT_AOMYV12 = AOM_IMG_FMT_PLANAR | AOM_IMG_FMT_UV_FLIP | 3,
52
+ /** Planar 4:2:0 format with aom color space
53
+ *
54
+ * \deprecated This value is unsupported and will be removed in a future
55
+ * release.
56
+ */
48
57
  AOM_IMG_FMT_AOMI420 = AOM_IMG_FMT_PLANAR | 4,
49
58
  AOM_IMG_FMT_I422 = AOM_IMG_FMT_PLANAR | 5,
50
59
  AOM_IMG_FMT_I444 = AOM_IMG_FMT_PLANAR | 6,
@@ -123,10 +132,14 @@ typedef enum aom_matrix_coefficients {
123
132
  AOM_CICP_MC_SMPTE_2085 = 11, /**< SMPTE ST 2085 YDzDx */
124
133
  AOM_CICP_MC_CHROMAT_NCL =
125
134
  12, /**< Chromaticity-derived non-constant luminance */
126
- AOM_CICP_MC_CHROMAT_CL = 13, /**< Chromaticity-derived constant luminance */
127
- AOM_CICP_MC_ICTCP = 14, /**< BT.2100 ICtCp */
128
- AOM_CICP_MC_RESERVED_15 = 15 /**< For future use (values 15-255) */
129
- } aom_matrix_coefficients_t; /**< alias for enum aom_matrix_coefficients */
135
+ AOM_CICP_MC_CHROMAT_CL = 13, /**< Chromaticity-derived constant luminance */
136
+ AOM_CICP_MC_ICTCP = 14, /**< BT.2100 ICtCp */
137
+ AOM_CICP_MC_RESERVED_15 = 15, /**< For backward compatibility */
138
+ AOM_CICP_MC_IPT_C2 = 15, /**< IPT-C2 */
139
+ AOM_CICP_MC_YCGCO_RE = 16, /**< YCgCo-Re */
140
+ AOM_CICP_MC_YCGCO_RO = 17, /**< YCgCo-Ro */
141
+ /**< For future use (values 18-255) */
142
+ } aom_matrix_coefficients_t; /**< alias for enum aom_matrix_coefficients */
130
143
 
131
144
  /*!\brief List of supported color range */
132
145
  typedef enum aom_color_range {
@@ -154,17 +167,33 @@ typedef enum aom_chroma_sample_position {
154
167
  *
155
168
  * While encoding, when metadata is added to an aom_image via
156
169
  * aom_img_add_metadata(), the flag passed along with the metadata will
157
- * determine where the metadata OBU will be placed in the encoded OBU stream.
158
- * Metadata will be emitted into the output stream within the next temporal unit
159
- * if it satisfies the specified insertion flag.
160
- *
161
- * During decoding, when the library encounters a metadata OBU, it is always
162
- * flagged as AOM_MIF_ANY_FRAME and emitted with the next output aom_image.
170
+ * determine where the metadata OBU will be placed in the encoded OBU stream,
171
+ * and whether it's layer-specific. Metadata will be emitted into the output
172
+ * stream within the next temporal unit if it satisfies the specified insertion
173
+ * flag.
174
+ *
175
+ * If the video contains multiple spatial and/or temporal layers,
176
+ * a layer-specific metadata OBU only applies to the current frame's layer, as
177
+ * determined by the frame's temporal_id and spatial_id. Some metadata types
178
+ * cannot be layer-specific, as listed in Section 6.7.1 of the draft AV1
179
+ * specification as of 2025-03-06.
180
+ *
181
+ * During decoding, when the library encounters a metadata OBU, it is emitted
182
+ * with the next output aom_image. Its insert_flag is set to either
183
+ * AOM_MIF_ANY_FRAME, or AOM_MIF_ANY_FRAME_LAYER_SPECIFIC if the OBU contains an
184
+ * OBU header extension (i.e. the video contains multiple layers AND the
185
+ * metadata was added using *_LAYER_SPECIFIC insert flag if using libaom).
163
186
  */
164
187
  typedef enum aom_metadata_insert_flags {
165
- AOM_MIF_NON_KEY_FRAME = 0, /**< Adds metadata if it's not keyframe */
188
+ AOM_MIF_NON_KEY_FRAME = 0, /**< Adds metadata if it's not a keyframe */
166
189
  AOM_MIF_KEY_FRAME = 1, /**< Adds metadata only if it's a keyframe */
167
- AOM_MIF_ANY_FRAME = 2 /**< Adds metadata to any type of frame */
190
+ AOM_MIF_ANY_FRAME = 2, /**< Adds metadata to any type of frame */
191
+ /** Adds layer-specific metadata if it's not a keyframe */
192
+ AOM_MIF_NON_KEY_FRAME_LAYER_SPECIFIC = 16,
193
+ /** Adds layer-specific metadata only if it's a keyframe */
194
+ AOM_MIF_KEY_FRAME_LAYER_SPECIFIC = 17,
195
+ /** Adds layer-specific metadata to any type of frame */
196
+ AOM_MIF_ANY_FRAME_LAYER_SPECIFIC = 18,
168
197
  } aom_metadata_insert_flags_t;
169
198
 
170
199
  /*!\brief Array of aom_metadata structs for an image. */
@@ -213,8 +242,13 @@ typedef struct aom_image {
213
242
  /* planes[AOM_PLANE_V] = NULL and stride[AOM_PLANE_V] = 0 when fmt ==
214
243
  * AOM_IMG_FMT_NV12 */
215
244
  unsigned char *planes[3]; /**< pointer to the top left pixel for each plane */
216
- int stride[3]; /**< stride between rows for each plane */
217
- size_t sz; /**< data size */
245
+ /*!Stride between rows for each plane
246
+ *
247
+ * \note With planar formats, \c stride[AOM_PLANE_U] must be the same as \c
248
+ * stride[AOM_PLANE_V].
249
+ */
250
+ int stride[3];
251
+ size_t sz; /**< data size */
218
252
 
219
253
  int bps; /**< bits per sample (for packed formats) */
220
254
 
@@ -268,26 +302,55 @@ aom_image_t *aom_img_alloc(aom_image_t *img, aom_img_fmt_t fmt,
268
302
  * storage for the image has been allocated elsewhere, and a descriptor is
269
303
  * desired to "wrap" that storage.
270
304
  *
271
- * \param[in] img Pointer to storage for descriptor. If this parameter
272
- * is NULL, the storage for the descriptor will be
273
- * allocated on the heap.
274
- * \param[in] fmt Format for the image
275
- * \param[in] d_w Width of the image. Must not exceed 0x08000000
276
- * (2^27).
277
- * \param[in] d_h Height of the image. Must not exceed 0x08000000
278
- * (2^27).
279
- * \param[in] align Alignment, in bytes, of each row in the image
280
- * (stride). Must not exceed 65536.
281
- * \param[in] img_data Storage to use for the image. The storage must
282
- * outlive the returned image descriptor; it can be
283
- * disposed of after calling aom_img_free().
305
+ * \param[in] img Pointer to storage for descriptor. If this
306
+ * parameter is NULL, the storage for the descriptor
307
+ * will be allocated on the heap.
308
+ * \param[in] fmt Format for the image
309
+ * \param[in] d_w Width of the image. Must not exceed 0x08000000
310
+ * (2^27).
311
+ * \param[in] d_h Height of the image. Must not exceed 0x08000000
312
+ * (2^27).
313
+ * \param[in] stride_align Alignment, in bytes, of each row in the image
314
+ * (stride). Must not exceed 65536.
315
+ * \param[in] img_data Storage to use for the image. The storage must
316
+ * outlive the returned image descriptor; it can be
317
+ * disposed of after calling aom_img_free().
284
318
  *
285
319
  * \return Returns a pointer to the initialized image descriptor. If the img
286
320
  * parameter is non-null, the value of the img parameter will be
287
321
  * returned.
322
+ *
323
+ * \note \a img_data is required to have a minimum allocation size that
324
+ * satisfies the requirements of the \a fmt, \a d_w, \a d_h and \a
325
+ * stride_align parameters. This size can be calculated as follows (see
326
+ * \c img_alloc_helper in the aom_image.c file in the libaom source tree
327
+ * for more detail):
328
+ * \code
329
+ * align = (1 << x_chroma_shift) - 1;
330
+ * w = (d_w + align) & ~align;
331
+ * align = (1 << y_chroma_shift) - 1;
332
+ * h = (d_h + align) & ~align;
333
+ *
334
+ * s = (fmt & AOM_IMG_FMT_PLANAR) ? w : (uint64_t)bps * w / 8;
335
+ * s = (fmt & AOM_IMG_FMT_HIGHBITDEPTH) ? s * 2 : s;
336
+ * s = (s + stride_align - 1) & ~((uint64_t)stride_align - 1);
337
+ * s = (fmt & AOM_IMG_FMT_HIGHBITDEPTH) ? s / 2 : s;
338
+ * alloc_size = (fmt & AOM_IMG_FMT_PLANAR) ? (uint64_t)h * s * bps / 8
339
+ * : (uint64_t)h * s;
340
+ * \endcode
341
+ * \a x_chroma_shift, \a y_chroma_shift and \a bps can be obtained by calling
342
+ * \ref aom_img_wrap with a non-\c NULL \a img_data parameter. The \c
343
+ * aom_image_t pointer should \em not be used in other API calls until \em after
344
+ * a successful call to \ref aom_img_wrap with a valid image buffer. For
345
+ * example:
346
+ * \code
347
+ * aom_img_wrap(img, fmt, d_w, d_h, stride_align, (unsigned char *)1);
348
+ * ... calculate buffer size and allocate buffer as described earlier
349
+ * aom_img_wrap(img, fmt, d_w, d_h, stride_align, img_data);
350
+ * \endcode
288
351
  */
289
352
  aom_image_t *aom_img_wrap(aom_image_t *img, aom_img_fmt_t fmt, unsigned int d_w,
290
- unsigned int d_h, unsigned int align,
353
+ unsigned int d_h, unsigned int stride_align,
291
354
  unsigned char *img_data);
292
355
 
293
356
  /*!\brief Open a descriptor, allocating storage for the underlying image with a
@@ -0,0 +1,99 @@
1
+ /*
2
+ * Copyright (c) 2025, Alliance for Open Media. All rights reserved.
3
+ *
4
+ * This source code is subject to the terms of the BSD 2 Clause License and
5
+ * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6
+ * was not distributed with this source code in the LICENSE file, you can
7
+ * obtain it at www.aomedia.org/license/software. If the Alliance for Open
8
+ * Media Patent License 1.0 was not distributed with this source code in the
9
+ * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10
+ */
11
+
12
+ /*!\file
13
+ * \brief Defines structs related to temporal dependency model stats, needed for
14
+ * external rate control.
15
+ *
16
+ * \attention Experimental. Not part of the stable API.
17
+ */
18
+ #ifndef AOM_AOM_AOM_TPL_H_
19
+ #define AOM_AOM_AOM_TPL_H_
20
+
21
+ #include "aom/aom_integer.h"
22
+
23
+ #ifdef __cplusplus
24
+ extern "C" {
25
+ #endif
26
+
27
+ /*!\brief Current ABI version number
28
+ *
29
+ * \internal
30
+ * If this file is altered in any way that changes the ABI, this value
31
+ * must be bumped. Examples include, but are not limited to, changing
32
+ * types, removing or reassigning enums, adding/removing/rearranging
33
+ * fields to structures
34
+ */
35
+ #define AOM_TPL_ABI_VERSION 1 /**<\hideinitializer*/
36
+
37
+ #define AOM_RC_INTER_REFS_PER_FRAME 7
38
+
39
+ // The motion vector in units of full pixel
40
+ typedef struct aom_fullpel_mv {
41
+ int16_t row;
42
+ int16_t col;
43
+ } AOM_FULLPEL_MV;
44
+
45
+ // The motion vector in units of 1/8-pel
46
+ typedef struct aom_mv {
47
+ int16_t row;
48
+ int16_t col;
49
+ } AOM_MV;
50
+
51
+ typedef union aom_int_mv {
52
+ uint32_t as_int;
53
+ AOM_MV as_mv;
54
+ AOM_FULLPEL_MV as_fullmv;
55
+ } aom_int_mv; /* facilitates faster equality tests and copies */
56
+
57
+ /*!\brief Temporal dependency model stats for each block before propagation */
58
+ typedef struct AomTplBlockStats {
59
+ int16_t row; /**< Pixel row of the top left corner */
60
+ int16_t col; /**< Pixel col of the top left corner */
61
+ int64_t srcrf_sse;
62
+ int64_t srcrf_dist;
63
+ int64_t recrf_sse;
64
+ int64_t recrf_dist;
65
+ int64_t intra_sse;
66
+ int64_t intra_dist;
67
+ int64_t cmp_recrf_dist[2];
68
+ int64_t mc_dep_rate;
69
+ int64_t mc_dep_dist;
70
+ int64_t pred_error[AOM_RC_INTER_REFS_PER_FRAME];
71
+ int32_t intra_cost;
72
+ int32_t inter_cost;
73
+ int32_t srcrf_rate;
74
+ int32_t recrf_rate;
75
+ int32_t intra_rate;
76
+ int32_t cmp_recrf_rate[2];
77
+ aom_int_mv mv[AOM_RC_INTER_REFS_PER_FRAME];
78
+ int8_t ref_frame_index[2];
79
+ } AomTplBlockStats;
80
+
81
+ /*!\brief Temporal dependency model stats for each frame before propagation */
82
+ typedef struct AomTplFrameStats {
83
+ int frame_width; /**< Frame width */
84
+ int frame_height; /**< Frame height */
85
+ int num_blocks; /**< Number of blocks. Size of block_stats_list */
86
+ AomTplBlockStats *block_stats_list; /**< List of tpl stats for each block */
87
+ } AomTplFrameStats;
88
+
89
+ /*!\brief Temporal dependency model stats for each GOP before propagation */
90
+ typedef struct AomTplGopStats {
91
+ int size; /**< GOP size, also the size of frame_stats_list. */
92
+ AomTplFrameStats *frame_stats_list; /**< List of tpl stats for each frame */
93
+ } AomTplGopStats;
94
+
95
+ #ifdef __cplusplus
96
+ } // extern "C"
97
+ #endif
98
+
99
+ #endif // AOM_AOM_AOM_TPL_H_
@@ -18,6 +18,7 @@
18
18
  */
19
19
  #include "aom/aom.h"
20
20
  #include "aom/aom_encoder.h"
21
+ #include "aom/aom_ext_ratectrl.h"
21
22
  #include "aom/aom_external_partition.h"
22
23
 
23
24
  /*!\file
@@ -197,7 +198,9 @@ enum aome_enc_control_id {
197
198
  AOME_SET_SCALEMODE = 11,
198
199
 
199
200
  /*!\brief Codec control function to set encoder spatial layer id, int
200
- * parameter.
201
+ * parameter. Spatial layer id must be within valid range of 0 to the
202
+ * allowed number of spatial layers, set via the control
203
+ * AV1E_SET_SVC_PARAMS, or via AOME_SET_NUMBER_SPATIAL_LAYERS.
201
204
  */
202
205
  AOME_SET_SPATIAL_LAYER_ID = 12,
203
206
 
@@ -219,7 +222,7 @@ enum aome_enc_control_id {
219
222
  */
220
223
  AOME_SET_CPUUSED = 13,
221
224
 
222
- /*!\brief Codec control function to enable automatic set and use alf frames,
225
+ /*!\brief Codec control function to enable automatic set and use arf frames,
223
226
  * unsigned int parameter
224
227
  *
225
228
  * - 0 = disable
@@ -1288,7 +1291,9 @@ enum aome_enc_control_id {
1288
1291
  /* NOTE: enums 145-149 unused */
1289
1292
 
1290
1293
  /*!\brief Codec control function to set the layer id, aom_svc_layer_id_t*
1291
- * parameter
1294
+ * parameter. Layer id for spatial or temporal layer must be within valid
1295
+ * range of 0 to the allowed number of spatial or temporal layers, set via
1296
+ * the control AV1E_SET_SVC_PARAMS, or via AOME_SET_NUMBER_SPATIAL_LAYERS.
1292
1297
  */
1293
1298
  AV1E_SET_SVC_LAYER_ID = 131,
1294
1299
 
@@ -1595,9 +1600,10 @@ enum aome_enc_control_id {
1595
1600
  /*!\brief Codec control to set the screen content detection mode,
1596
1601
  * aom_screen_detection_mode parameter.
1597
1602
  *
1598
- * - 1: AOM_SCREEN_DETECTION_STANDARD = standard (default)
1603
+ * - 1: AOM_SCREEN_DETECTION_STANDARD = standard (default in good quality and
1604
+ realtime modes)
1599
1605
  * - 2: AOM_SCREEN_DETECTION_ANTIALIASING_AWARE = anti-aliased text and
1600
- * graphics aware
1606
+ * graphics aware (default in all intra mode)
1601
1607
  */
1602
1608
  AV1E_SET_SCREEN_CONTENT_DETECTION_MODE = 171,
1603
1609
 
@@ -1617,6 +1623,30 @@ enum aome_enc_control_id {
1617
1623
  */
1618
1624
  AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS = 172,
1619
1625
 
1626
+ /*!\brief Codec control function to enable external rate control library.
1627
+ *
1628
+ * args: a pointer to aom_rc_funcs_t that contains implementation of callbacks
1629
+ *
1630
+ * \attention Experimental. Not part of the stable API.
1631
+ */
1632
+ AV1E_SET_EXTERNAL_RATE_CONTROL = 173,
1633
+
1634
+ /*!\brief Codec control function to get GOP structure from the encoder.
1635
+ *
1636
+ * args: a pointer to aom_gop_info_t
1637
+ *
1638
+ * \attention Experimental. Not part of the stable API.
1639
+ */
1640
+ AV1E_GET_GOP_INFO,
1641
+
1642
+ /*!\brief Codec control function to validate HBD input.
1643
+ *
1644
+ * AV1 allows the encoder to validate the high bitdepth (HBD) input and
1645
+ * ensure that every pixel is within the valid range. To disable/enable,
1646
+ * set this parameter to 0/1. The default value is set to be 1.
1647
+ */
1648
+ AOME_SET_VALIDATE_HBD_INPUT,
1649
+
1620
1650
  // Any new encoder control IDs should be added above.
1621
1651
  // Maximum allowed encoder control ID is 229.
1622
1652
  // No encoder control ID should be added below.
@@ -1718,10 +1748,10 @@ typedef enum {
1718
1748
  * Changes the encoder to tune for certain types of input material.
1719
1749
  *
1720
1750
  * \note
1721
- * AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 are restricted to all intra mode
1722
- * (AOM_USAGE_ALL_INTRA). Setting the tuning option to either AOM_TUNE_IQ or
1723
- * AOM_TUNE_SSIMULACRA2 causes the following options to be set (expressed as
1724
- * command-line options):
1751
+ * AOM_TUNE_IQ and AOM_TUNE_SSIMULACRA2 are meant for image encoding. Using
1752
+ * these tuning modes for videos isn't recommended.
1753
+ * Setting the tuning option to either AOM_TUNE_IQ or AOM_TUNE_SSIMULACRA2
1754
+ * causes the following options to be set (expressed as command-line options):
1725
1755
  * * --enable-qm=1
1726
1756
  * * --qm-min=2
1727
1757
  * * --qm-max=10
@@ -1746,16 +1776,30 @@ typedef enum {
1746
1776
  AOM_TUNE_VMAF_SALIENCY_MAP = 9,
1747
1777
  /*!\brief Allows detection of the presence of AOM_TUNE_IQ at compile time. */
1748
1778
  #define AOM_HAVE_TUNE_IQ 1
1749
- /* Image quality (or intra quality). Increases image quality and consistency,
1779
+ /* "Image Quality" tuning mode. Increases image quality and consistency,
1750
1780
  * guided by the SSIMULACRA 2 metric and subjective quality checks. Shares
1751
1781
  * the rdmult code with AOM_TUNE_SSIM.
1782
+ * Note: AOM_TUNE_IQ is only meant to be used to encode a still image or a
1783
+ * layered AVIF image.
1752
1784
  */
1753
1785
  AOM_TUNE_IQ = 10,
1754
1786
  /*!\brief Allows detection of the presence of AOM_TUNE_SSIMULACRA2 at compile
1755
1787
  * time. */
1756
1788
  #define AOM_HAVE_TUNE_SSIMULACRA2 1
1757
- /* Tune that optimizes for maximum SSIMULACRA 2 scores. Shares the rdmult code
1758
- with AOM_TUNE_SSIM. */
1789
+ /* A tuning mode that optimizes for maximum SSIMULACRA 2 scores. Shares the
1790
+ * rdmult code with AOM_TUNE_SSIM.
1791
+ * Unlike metrics like AOM_TUNE_VMAF_* or AOM_TUNE_BUTTERAUGLI,
1792
+ * AOM_TUNE_SSIMULACRA2 doesn't use the SSIMULACRA 2 metric for
1793
+ * rate-distortion optimization decisions. Instead, the tuning mode relies
1794
+ * purely on hand-crafted heuristics. This means no additional external
1795
+ * dependencies are required.
1796
+ * AOM_TUNE_SSIMULACRA2 shares most of the tweaks and optimizations with
1797
+ * AOM_TUNE_IQ. However, AOM_TUNE_SSIMULACRA2 fine-tunes the encoder in ways
1798
+ * that have been shown to not come with a corresponding positive impact on
1799
+ * subjective quality in human evaluations.
1800
+ * Note: AOM_TUNE_SSIMULACRA2 is only meant to be used to encode a still
1801
+ * image or a layered AVIF image.
1802
+ */
1759
1803
  AOM_TUNE_SSIMULACRA2 = 11,
1760
1804
  } aom_tune_metric;
1761
1805
 
@@ -1807,10 +1851,14 @@ typedef struct aom_svc_params {
1807
1851
  * \li When \em not using #AV1E_SET_SVC_REF_FRAME_CONFIG: [1, 3]
1808
1852
  */
1809
1853
  int number_temporal_layers;
1810
- int max_quantizers[AOM_MAX_LAYERS]; /**< Max Q for each layer */
1811
- int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */
1812
- int scaling_factor_num[AOM_MAX_SS_LAYERS]; /**< Scaling factor-numerator */
1813
- int scaling_factor_den[AOM_MAX_SS_LAYERS]; /**< Scaling factor-denominator */
1854
+ int max_quantizers[AOM_MAX_LAYERS]; /**< Max Q for each layer */
1855
+ int min_quantizers[AOM_MAX_LAYERS]; /**< Min Q for each layer */
1856
+ /*! Scaling factor-numerator */
1857
+ int scaling_factor_num[AOM_MAX_SS_LAYERS];
1858
+ /*! Scaling factor-denominator: must be greater than or equal to the
1859
+ * scaling_factor_num[].
1860
+ */
1861
+ int scaling_factor_den[AOM_MAX_SS_LAYERS];
1814
1862
  /*! Target bitrate for each layer, in kilobits per second */
1815
1863
  int layer_target_bitrate[AOM_MAX_LAYERS];
1816
1864
  /*! Frame rate factor for each temporal layer */
@@ -1853,6 +1901,22 @@ typedef enum {
1853
1901
  AOM_FULL_SUPERFRAME_DROP, /**< Only full superframe can drop. */
1854
1902
  } AOM_SVC_FRAME_DROP_MODE;
1855
1903
 
1904
+ /*!\brief The GOP structure information determined by the encoder.
1905
+ * 250 is MAX_STATIC_GF_GROUP_LENGTH defined in av1/firstpass.h.
1906
+ * This is a subset of GF_GROUP. More fields can be added if needed.
1907
+ *
1908
+ * \attention Experimental. Not part of the stable API.
1909
+ */
1910
+ typedef struct aom_gop_info {
1911
+ int gop_size; /**< The number of frames of this GOP */
1912
+ /*! The coding index for each entry in the gop */
1913
+ int coding_index[250];
1914
+ /*! The display index for each entry in the gop */
1915
+ int display_index[250];
1916
+ /*! The layer depth for each entry in the gop */
1917
+ int layer_depth[250];
1918
+ } aom_gop_info_t;
1919
+
1856
1920
  /*!\cond */
1857
1921
  /*!\brief Encoder control function parameter type
1858
1922
  *
@@ -2293,6 +2357,9 @@ AOM_CTRL_USE_TYPE(AV1E_SET_LOOPFILTER_CONTROL, int)
2293
2357
  AOM_CTRL_USE_TYPE(AOME_GET_LOOPFILTER_LEVEL, int *)
2294
2358
  #define AOM_CTRL_AOME_GET_LOOPFILTER_LEVEL
2295
2359
 
2360
+ AOM_CTRL_USE_TYPE(AOME_SET_VALIDATE_HBD_INPUT, int)
2361
+ #define AOM_CTRL_AOME_SET_VALIDATE_HBD_INPUT
2362
+
2296
2363
  AOM_CTRL_USE_TYPE(AV1E_SET_AUTO_INTRA_TOOLS_OFF, unsigned int)
2297
2364
  #define AOM_CTRL_AV1E_SET_AUTO_INTRA_TOOLS_OFF
2298
2365
 
@@ -2360,6 +2427,12 @@ AOM_CTRL_USE_TYPE(AV1E_SET_SCREEN_CONTENT_DETECTION_MODE,
2360
2427
  AOM_CTRL_USE_TYPE(AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS, unsigned int)
2361
2428
  #define AOM_CTRL_AV1E_SET_ENABLE_ADAPTIVE_SHARPNESS
2362
2429
 
2430
+ AOM_CTRL_USE_TYPE(AV1E_SET_EXTERNAL_RATE_CONTROL, aom_rc_funcs_t *)
2431
+ #define AOM_CTRL_AV1E_SET_EXTERNAL_RATE_CONTROL
2432
+
2433
+ AOM_CTRL_USE_TYPE(AV1E_GET_GOP_INFO, aom_gop_info_t *)
2434
+ #define AOM_CTRL_AV1E_GET_GOP_INFO
2435
+
2363
2436
  /*!\endcond */
2364
2437
  /*! @} - end defgroup aom_encoder */
2365
2438
  #ifdef __cplusplus
@@ -466,6 +466,15 @@ enum aom_dec_control_id {
466
466
  * be used.
467
467
  */
468
468
  AV1D_GET_MI_INFO,
469
+
470
+ /*!\brief Codec control function to set the maximum frame size, unsigned int
471
+ * parameter
472
+ *
473
+ * - 0 = unlimited (default)
474
+ * - nonzero = frame size (width * height) must be less than or equal to this
475
+ * maximum
476
+ */
477
+ AOMD_SET_FRAME_SIZE_LIMIT,
469
478
  };
470
479
 
471
480
  /*!\cond */
@@ -598,6 +607,9 @@ AOM_CTRL_USE_TYPE(AOMD_GET_ORDER_HINT, unsigned int *)
598
607
  // The AOM_CTRL_USE_TYPE macro can't be used with AV1D_GET_MI_INFO because
599
608
  // AV1D_GET_MI_INFO takes more than one parameter.
600
609
  #define AOM_CTRL_AV1D_GET_MI_INFO
610
+
611
+ AOM_CTRL_USE_TYPE(AOMD_SET_FRAME_SIZE_LIMIT, unsigned int)
612
+ #define AOM_CTRL_AOMD_SET_FRAME_SIZE_LIMIT
601
613
  /*!\endcond */
602
614
  /*! @} - end defgroup aom_decoder */
603
615
  #ifdef __cplusplus
package/include/expat.h CHANGED
@@ -1094,7 +1094,7 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled);
1094
1094
  */
1095
1095
  # define XML_MAJOR_VERSION 2
1096
1096
  # define XML_MINOR_VERSION 8
1097
- # define XML_MICRO_VERSION 0
1097
+ # define XML_MICRO_VERSION 1
1098
1098
 
1099
1099
  # ifdef __cplusplus
1100
1100
  }
@@ -83,7 +83,7 @@
83
83
  #define PACKAGE_NAME "expat"
84
84
 
85
85
  /* Define to the full name and version of this package. */
86
- #define PACKAGE_STRING "expat 2.8.0"
86
+ #define PACKAGE_STRING "expat 2.8.1"
87
87
 
88
88
  /* Define to the one symbol short name of this package. */
89
89
  #define PACKAGE_TARNAME "expat"
@@ -92,7 +92,7 @@
92
92
  #define PACKAGE_URL ""
93
93
 
94
94
  /* Define to the version of this package. */
95
- #define PACKAGE_VERSION "2.8.0"
95
+ #define PACKAGE_VERSION "2.8.1"
96
96
 
97
97
  /* Define to 1 if all of the C89 standard headers exist (not just the ones
98
98
  required in a freestanding environment). This macro is provided for
@@ -100,7 +100,7 @@
100
100
  #define STDC_HEADERS 1
101
101
 
102
102
  /* Version number of package */
103
- #define VERSION "2.8.0"
103
+ #define VERSION "2.8.1"
104
104
 
105
105
  /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
106
106
  significant byte first (like Motorola and SPARC, unlike Intel). */
@@ -406,10 +406,7 @@ struct _GDBusInterfaceVTable
406
406
  GDBusInterfaceSetPropertyFunc set_property;
407
407
 
408
408
  /*< private >*/
409
- /* Padding for future expansion - also remember to update
410
- * gdbusconnection.c:_g_dbus_interface_vtable_copy() when
411
- * changing this.
412
- */
409
+ /* Padding for future expansion */
413
410
  gpointer padding[8];
414
411
  };
415
412
 
@@ -552,10 +549,7 @@ struct _GDBusSubtreeVTable
552
549
  GDBusSubtreeDispatchFunc dispatch;
553
550
 
554
551
  /*< private >*/
555
- /* Padding for future expansion - also remember to update
556
- * gdbusconnection.c:_g_dbus_subtree_vtable_copy() when
557
- * changing this.
558
- */
552
+ /* Padding for future expansion */
559
553
  gpointer padding[8];
560
554
  };
561
555
 
@@ -1120,3 +1120,37 @@
1120
1120
  #define GIO_AVAILABLE_ENUMERATOR_IN_2_88
1121
1121
  #define GIO_AVAILABLE_TYPE_IN_2_88
1122
1122
  #endif
1123
+
1124
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_90
1125
+ #define GIO_DEPRECATED_IN_2_90 GIO_DEPRECATED
1126
+ #define GIO_DEPRECATED_IN_2_90_FOR(f) GIO_DEPRECATED_FOR (f)
1127
+ #define GIO_DEPRECATED_MACRO_IN_2_90 GLIB_DEPRECATED_MACRO
1128
+ #define GIO_DEPRECATED_MACRO_IN_2_90_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
1129
+ #define GIO_DEPRECATED_ENUMERATOR_IN_2_90 GLIB_DEPRECATED_ENUMERATOR
1130
+ #define GIO_DEPRECATED_ENUMERATOR_IN_2_90_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
1131
+ #define GIO_DEPRECATED_TYPE_IN_2_90 GLIB_DEPRECATED_TYPE
1132
+ #define GIO_DEPRECATED_TYPE_IN_2_90_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
1133
+ #else
1134
+ #define GIO_DEPRECATED_IN_2_90 _GIO_EXTERN
1135
+ #define GIO_DEPRECATED_IN_2_90_FOR(f) _GIO_EXTERN
1136
+ #define GIO_DEPRECATED_MACRO_IN_2_90
1137
+ #define GIO_DEPRECATED_MACRO_IN_2_90_FOR(f)
1138
+ #define GIO_DEPRECATED_ENUMERATOR_IN_2_90
1139
+ #define GIO_DEPRECATED_ENUMERATOR_IN_2_90_FOR(f)
1140
+ #define GIO_DEPRECATED_TYPE_IN_2_90
1141
+ #define GIO_DEPRECATED_TYPE_IN_2_90_FOR(f)
1142
+ #endif
1143
+
1144
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_90
1145
+ #define GIO_AVAILABLE_IN_2_90 GIO_UNAVAILABLE (2, 90)
1146
+ #define GIO_AVAILABLE_STATIC_INLINE_IN_2_90 GLIB_UNAVAILABLE_STATIC_INLINE (2, 90)
1147
+ #define GIO_AVAILABLE_MACRO_IN_2_90 GLIB_UNAVAILABLE_MACRO (2, 90)
1148
+ #define GIO_AVAILABLE_ENUMERATOR_IN_2_90 GLIB_UNAVAILABLE_ENUMERATOR (2, 90)
1149
+ #define GIO_AVAILABLE_TYPE_IN_2_90 GLIB_UNAVAILABLE_TYPE (2, 90)
1150
+ #else
1151
+ #define GIO_AVAILABLE_IN_2_90 _GIO_EXTERN
1152
+ #define GIO_AVAILABLE_STATIC_INLINE_IN_2_90
1153
+ #define GIO_AVAILABLE_MACRO_IN_2_90
1154
+ #define GIO_AVAILABLE_ENUMERATOR_IN_2_90
1155
+ #define GIO_AVAILABLE_TYPE_IN_2_90
1156
+ #endif
@@ -799,7 +799,7 @@ typedef enum {
799
799
  *
800
800
  * GResourceFlags give information about a particular file inside a resource
801
801
  * bundle.
802
- *
802
+ *
803
803
  * Since: 2.32
804
804
  **/
805
805
  typedef enum {
@@ -812,7 +812,7 @@ typedef enum {
812
812
  * @G_RESOURCE_LOOKUP_FLAGS_NONE: No flags set.
813
813
  *
814
814
  * GResourceLookupFlags determine how resource path lookups are handled.
815
- *
815
+ *
816
816
  * Since: 2.32
817
817
  **/
818
818
  typedef enum /*< flags >*/ {
@@ -1510,8 +1510,9 @@ typedef enum
1510
1510
  * @G_APPLICATION_IS_LAUNCHER: Don't try to become the primary instance.
1511
1511
  * @G_APPLICATION_HANDLES_OPEN: This application handles opening files (in
1512
1512
  * the primary instance). Note that this flag only affects the default
1513
- * implementation of local_command_line(), and has no effect if
1514
- * %G_APPLICATION_HANDLES_COMMAND_LINE is given.
1513
+ * implementation of local_command_line(). It can be useful even when
1514
+ * using `G_APPLICATION_HANDLES_COMMAND_LINE` to handle
1515
+ * `org.freedesktop.Application.open`.
1515
1516
  * See g_application_run() for details.
1516
1517
  * @G_APPLICATION_HANDLES_COMMAND_LINE: This application handles command line
1517
1518
  * arguments (in the primary instance). Note that this flag only affect
@@ -1120,3 +1120,37 @@
1120
1120
  #define GLIB_AVAILABLE_ENUMERATOR_IN_2_88
1121
1121
  #define GLIB_AVAILABLE_TYPE_IN_2_88
1122
1122
  #endif
1123
+
1124
+ #if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_90
1125
+ #define GLIB_DEPRECATED_IN_2_90 GLIB_DEPRECATED
1126
+ #define GLIB_DEPRECATED_IN_2_90_FOR(f) GLIB_DEPRECATED_FOR (f)
1127
+ #define GLIB_DEPRECATED_MACRO_IN_2_90 GLIB_DEPRECATED_MACRO
1128
+ #define GLIB_DEPRECATED_MACRO_IN_2_90_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f)
1129
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90 GLIB_DEPRECATED_ENUMERATOR
1130
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f)
1131
+ #define GLIB_DEPRECATED_TYPE_IN_2_90 GLIB_DEPRECATED_TYPE
1132
+ #define GLIB_DEPRECATED_TYPE_IN_2_90_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f)
1133
+ #else
1134
+ #define GLIB_DEPRECATED_IN_2_90 _GLIB_EXTERN
1135
+ #define GLIB_DEPRECATED_IN_2_90_FOR(f) _GLIB_EXTERN
1136
+ #define GLIB_DEPRECATED_MACRO_IN_2_90
1137
+ #define GLIB_DEPRECATED_MACRO_IN_2_90_FOR(f)
1138
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90
1139
+ #define GLIB_DEPRECATED_ENUMERATOR_IN_2_90_FOR(f)
1140
+ #define GLIB_DEPRECATED_TYPE_IN_2_90
1141
+ #define GLIB_DEPRECATED_TYPE_IN_2_90_FOR(f)
1142
+ #endif
1143
+
1144
+ #if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_90
1145
+ #define GLIB_AVAILABLE_IN_2_90 GLIB_UNAVAILABLE (2, 90)
1146
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_90 GLIB_UNAVAILABLE_STATIC_INLINE (2, 90)
1147
+ #define GLIB_AVAILABLE_MACRO_IN_2_90 GLIB_UNAVAILABLE_MACRO (2, 90)
1148
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_90 GLIB_UNAVAILABLE_ENUMERATOR (2, 90)
1149
+ #define GLIB_AVAILABLE_TYPE_IN_2_90 GLIB_UNAVAILABLE_TYPE (2, 90)
1150
+ #else
1151
+ #define GLIB_AVAILABLE_IN_2_90 _GLIB_EXTERN
1152
+ #define GLIB_AVAILABLE_STATIC_INLINE_IN_2_90
1153
+ #define GLIB_AVAILABLE_MACRO_IN_2_90
1154
+ #define GLIB_AVAILABLE_ENUMERATOR_IN_2_90
1155
+ #define GLIB_AVAILABLE_TYPE_IN_2_90
1156
+ #endif