21 #ifndef LIBHEIF_HEIF_H
22 #define LIBHEIF_HEIF_H
36 #include <libheif/heif_version.h>
58 #if (defined(_WIN32) || defined __CYGWIN__) && !defined(LIBHEIF_STATIC_BUILD)
59 #ifdef LIBHEIF_EXPORTS
60 #define LIBHEIF_API __declspec(dllexport)
62 #define LIBHEIF_API __declspec(dllimport)
64 #elif defined(HAVE_VISIBILITY) && HAVE_VISIBILITY
65 #ifdef LIBHEIF_EXPORTS
66 #define LIBHEIF_API __attribute__((__visibility__("default")))
74 #define heif_fourcc(a, b, c, d) ((uint32_t)((a<<24) | (b<<16) | (c<<8) | d))
94 #define LIBHEIF_MAKE_VERSION(h, m, l) ((h) << 24 | (m) << 16 | (l) << 8)
95 #define LIBHEIF_HAVE_VERSION(h, m, l) (LIBHEIF_NUMERIC_VERSION >= LIBHEIF_MAKE_VERSION(h, m, l))
98 struct heif_image_handle;
472 #define heif_chroma_interleaved_24bit heif_chroma_interleaved_RGB
473 #define heif_chroma_interleaved_32bit heif_chroma_interleaved_RGBA
598 int* out_nPluginsLoaded,
599 int output_array_size);
682 #define heif_brand2_heic heif_fourcc('h','e','i','c')
691 #define heif_brand2_heix heif_fourcc('h','e','i','x')
700 #define heif_brand2_hevc heif_fourcc('h','e','v','c')
709 #define heif_brand2_hevx heif_fourcc('h','e','v','x')
718 #define heif_brand2_heim heif_fourcc('h','e','i','m')
728 #define heif_brand2_heis heif_fourcc('h','e','i','s')
737 #define heif_brand2_hevm heif_fourcc('h','e','v','m')
747 #define heif_brand2_hevs heif_fourcc('h','e','v','s')
754 #define heif_brand2_avif heif_fourcc('a','v','i','f')
761 #define heif_brand2_avis heif_fourcc('a','v','i','s')
770 #define heif_brand2_mif1 heif_fourcc('m','i','f','1')
781 #define heif_brand2_mif2 heif_fourcc('m','i','f','2')
788 #define heif_brand2_mif3 heif_fourcc('m','i','f','3')
797 #define heif_brand2_msf1 heif_fourcc('m','s','f','1')
804 #define heif_brand2_vvic heif_fourcc('v','v','i','c')
811 #define heif_brand2_vvis heif_fourcc('v','v','i','s')
818 #define heif_brand2_evbi heif_fourcc('e','v','b','i')
825 #define heif_brand2_evmi heif_fourcc('e','v','m','i')
832 #define heif_brand2_evbs heif_fourcc('e','v','b','s')
839 #define heif_brand2_evms heif_fourcc('e','v','m','s')
846 #define heif_brand2_jpeg heif_fourcc('j','p','e','g')
853 #define heif_brand2_jpgs heif_fourcc('j','p','g','s')
860 #define heif_brand2_j2ki heif_fourcc('j','2','k','i')
867 #define heif_brand2_j2is heif_fourcc('j','2','i','s')
876 #define heif_brand2_miaf heif_fourcc('m','i','a','f')
885 #define heif_brand2_1pic heif_fourcc('1','p','i','c')
958 struct heif_reading_options;
1058 const struct heif_reading_options*);
1065 const void* mem,
size_t size,
1066 const struct heif_reading_options*);
1072 const void* mem,
size_t size,
1073 const struct heif_reading_options*);
1079 const struct heif_reading_options*);
1104 struct heif_image_handle**);
1110 struct heif_image_handle**);
1293 int process_image_transformations,
1294 uint32_t tile_x, uint32_t tile_y,
1305 struct heif_image** out_img,
1309 uint32_t tile_x, uint32_t tile_y);
1328 uint32_t type_filter,
1330 int* out_num_groups);
1352 struct heif_image_handle** out_depth_handle);
1418 struct heif_image_handle** out_thumbnail_handle);
1423 #define LIBHEIF_AUX_IMAGE_FILTER_OMIT_ALPHA (1UL<<1)
1424 #define LIBHEIF_AUX_IMAGE_FILTER_OMIT_DEPTH (2UL<<1)
1439 const char** out_type);
1443 const char** out_type);
1448 const char** out_type);
1454 struct heif_image_handle** out_auxiliary_handle);
1463 const char* type_filter);
1469 const char* type_filter,
1672 struct heif_camera_extrinsic_matrix;
1679 struct heif_camera_extrinsic_matrix** out_matrix);
1686 double* out_matrix_row_major);
1816 struct heif_image** out_img,
1873 int left,
int right,
int top,
int bottom);
1913 struct heif_scaling_options;
1918 struct heif_image** output,
1919 int width,
int height,
1920 const struct heif_scaling_options* options);
1926 uint32_t width, uint32_t height);
1932 const char* profile_type_fourcc_string,
1933 const void* profile_data,
1934 const size_t profile_size);
1953 int first_warning_idx,
1955 int max_output_buffer_entries);
2054 const char* filename);
2083 struct heif_encoder;
2086 struct heif_encoder_descriptor;
2091 struct heif_encoder_parameter;
2093 struct heif_decoder_descriptor;
2102 const struct heif_decoder_descriptor** out_decoders,
2125 const char* name_filter,
2126 const struct heif_encoder_descriptor** out_encoders,
2137 const char* name_filter,
2138 const struct heif_encoder_descriptor** out_encoders,
2164 const struct heif_encoder_descriptor*,
2165 struct heif_encoder** out_encoder);
2184 struct heif_encoder**);
2242 int* have_minimum_maximum,
2243 int* minimum,
int* maximum);
2249 int* have_minimum,
int* have_maximum,
2250 int* minimum,
int* maximum,
2251 int* num_valid_values,
2252 const int** out_integer_array);
2256 const char*
const** out_stringarray);
2261 const char* parameter_name,
2266 const char* parameter_name,
2272 const char* parameter_name,
2273 int* have_minimum_maximum,
2274 int* minimum,
int* maximum);
2278 const char* parameter_name,
2283 const char* parameter_name,
2288 const char* parameter_name,
2293 const char* parameter_name,
2294 char* value,
int value_size);
2299 const char* parameter_name,
2300 const char*
const** out_stringarray);
2304 const char* parameter_name,
2305 int* have_minimum,
int* have_maximum,
2306 int* minimum,
int* maximum,
2307 int* num_valid_values,
2308 const int** out_integer_array);
2321 const char* parameter_name,
2328 const char* parameter_name,
2329 char* value_ptr,
int value_size);
2334 const char* parameter_name);
2410 const struct heif_image* image,
2411 struct heif_encoder* encoder,
2413 struct heif_image_handle** out_image_handle);
2429 struct heif_image** tiles,
2432 struct heif_encoder* encoder,
2434 struct heif_image_handle** out_image_handle);
2438 uint32_t image_width,
2439 uint32_t image_height,
2440 uint32_t tile_columns,
2443 struct heif_image_handle** out_grid_image_handle);
2447 struct heif_image_handle* tiled_image,
2448 uint32_t tile_x, uint32_t tile_y,
2449 const struct heif_image* image,
2450 struct heif_encoder* encoder);
2456 uint32_t image_width,
2457 uint32_t image_height,
2461 const uint16_t background_rgba[4],
2462 struct heif_image_handle** out_iovl_image_handle);
2466 struct heif_image_handle* image_handle);
2477 const struct heif_image* image,
2478 const struct heif_image_handle* master_image_handle,
2479 struct heif_encoder* encoder,
2482 struct heif_image_handle** out_thumb_image_handle);
2487 const struct heif_image_handle* master_image,
2488 const struct heif_image_handle* thumbnail_image);
2493 const struct heif_image_handle* image_handle,
2494 const void* data,
int size);
2499 const struct heif_image_handle* image_handle,
2500 const void* data,
int size);
2505 const struct heif_image_handle* image_handle,
2506 const void* data,
int size,
2515 const struct heif_image_handle* image_handle,
2516 const void* data,
int size,
2517 const char* item_type,
const char* content_type);
2523 const struct heif_image_handle* image_handle,
2524 const void* data,
int size,
2525 const char* item_uri_type,
2547 struct heif_image** out_image);
2580 int width,
int height,
int bit_depth);
2585 int is_premultiplied_alpha);
2602 struct heif_decoder_plugin;
2603 struct heif_encoder_plugin;
struct heif_error heif_encoder_set_parameter_boolean(struct heif_encoder *, const char *parameter_name, int value)
void heif_image_handle_release_auxiliary_type(const struct heif_image_handle *handle, const char **out_type)
int heif_image_handle_has_alpha_channel(const struct heif_image_handle *)
struct heif_error heif_image_handle_get_metadata(const struct heif_image_handle *handle, heif_item_id metadata_id, void *out_data)
int heif_image_handle_get_content_light_level(const struct heif_image_handle *, struct heif_content_light_level *out)
int heif_context_get_number_of_top_level_images(struct heif_context *ctx)
void heif_deinit(void)
Deinitialise and clean up library.
heif_plugin_type
Definition: heif.h:579
@ heif_plugin_type_decoder
Definition: heif.h:581
@ heif_plugin_type_encoder
Definition: heif.h:580
int heif_image_handle_get_height(const struct heif_image_handle *handle)
void heif_image_handle_release(const struct heif_image_handle *)
const char * heif_encoder_parameter_get_name(const struct heif_encoder_parameter *)
const char * heif_encoder_descriptor_get_id_name(const struct heif_encoder_descriptor *)
int heif_encoder_descriptor_supports_lossy_compression(const struct heif_encoder_descriptor *)
uint32_t heif_brand2
Definition: heif.h:673
enum heif_colorspace heif_image_get_colorspace(const struct heif_image *)
const uint8_t * heif_image_get_plane_readonly(const struct heif_image *, enum heif_channel channel, int *out_stride)
struct heif_error heif_encoder_get_parameter(struct heif_encoder *, const char *parameter_name, char *value_ptr, int value_size)
struct heif_error heif_encoder_get_parameter_string(struct heif_encoder *, const char *parameter_name, char *value, int value_size)
heif_channel
Definition: heif.h:504
@ heif_channel_interleaved
Definition: heif.h:512
@ heif_channel_filter_array
Definition: heif.h:513
@ heif_channel_depth
Definition: heif.h:514
@ heif_channel_G
Definition: heif.h:509
@ heif_channel_Y
Definition: heif.h:505
@ heif_channel_Cb
Definition: heif.h:506
@ heif_channel_B
Definition: heif.h:510
@ heif_channel_R
Definition: heif.h:508
@ heif_channel_Alpha
Definition: heif.h:511
@ heif_channel_Cr
Definition: heif.h:507
@ heif_channel_disparity
Definition: heif.h:515
heif_item_id heif_image_handle_get_item_id(const struct heif_image_handle *handle)
enum heif_compression_format heif_encoder_descriptor_get_compression_format(const struct heif_encoder_descriptor *)
int heif_image_handle_has_camera_intrinsic_matrix(const struct heif_image_handle *handle)
LIBHEIF_API void heif_image_set_premultiplied_alpha(struct heif_image *image, int is_premultiplied_alpha)
heif_colorspace
Definition: heif.h:477
@ heif_colorspace_monochrome
Definition: heif.h:497
@ heif_colorspace_undefined
Definition: heif.h:478
@ heif_colorspace_YCbCr
Definition: heif.h:484
@ heif_colorspace_RGB
Definition: heif.h:494
@ heif_colorspace_nonvisual
Definition: heif.h:500
struct heif_error heif_context_read_from_reader(struct heif_context *, const struct heif_reader *reader, void *userdata, const struct heif_reading_options *)
void heif_image_set_mastering_display_colour_volume(const struct heif_image *, const struct heif_mastering_display_colour_volume *in)
heif_chroma
Definition: heif.h:457
@ heif_chroma_interleaved_RGB
Definition: heif.h:463
@ heif_chroma_444
Definition: heif.h:462
@ heif_chroma_monochrome
Definition: heif.h:459
@ heif_chroma_interleaved_RGBA
Definition: heif.h:464
@ heif_chroma_interleaved_RRGGBBAA_BE
Definition: heif.h:466
@ heif_chroma_422
Definition: heif.h:461
@ heif_chroma_interleaved_RRGGBB_BE
Definition: heif.h:465
@ heif_chroma_undefined
Definition: heif.h:458
@ heif_chroma_interleaved_RRGGBB_LE
Definition: heif.h:467
@ heif_chroma_interleaved_RRGGBBAA_LE
Definition: heif.h:468
@ heif_chroma_420
Definition: heif.h:460
int heif_image_handle_get_width(const struct heif_image_handle *handle)
void heif_entity_groups_release(struct heif_entity_group *, int num_groups)
heif_brand
Definition: heif.h:646
@ heif_heic
Definition: heif.h:648
@ heif_hevs
Definition: heif.h:654
@ heif_mif1
Definition: heif.h:655
@ heif_j2is
Definition: heif.h:664
@ heif_heix
Definition: heif.h:649
@ heif_hevc
Definition: heif.h:650
@ heif_avis
Definition: heif.h:658
@ heif_evbs
Definition: heif.h:662
@ heif_vvic
Definition: heif.h:659
@ heif_hevx
Definition: heif.h:650
@ heif_heis
Definition: heif.h:652
@ heif_msf1
Definition: heif.h:656
@ heif_j2ki
Definition: heif.h:663
@ heif_evbi
Definition: heif.h:661
@ heif_hevm
Definition: heif.h:653
@ heif_unknown_brand
Definition: heif.h:647
@ heif_vvis
Definition: heif.h:660
@ heif_avif
Definition: heif.h:657
@ heif_heim
Definition: heif.h:651
int heif_image_handle_get_luma_bits_per_pixel(const struct heif_image_handle *)
void heif_context_debug_dump_boxes_to_file(struct heif_context *ctx, int fd)
struct heif_error heif_context_encode_grid(struct heif_context *ctx, struct heif_image **tiles, uint16_t rows, uint16_t columns, struct heif_encoder *encoder, const struct heif_encoding_options *input_options, struct heif_image_handle **out_image_handle)
Encodes an array of images into a grid.
struct heif_error heif_load_plugin(const char *filename, struct heif_plugin_info const **out_plugin)
void heif_context_set_max_decoding_threads(struct heif_context *ctx, int max_threads)
uint8_t * heif_image_get_plane(struct heif_image *, enum heif_channel channel, int *out_stride)
uint32_t heif_property_id
Definition: heif.h:365
int heif_image_get_decoding_warnings(struct heif_image *image, int first_warning_idx, struct heif_error *out_warnings, int max_output_buffer_entries)
LIBHEIF_API int heif_image_is_premultiplied_alpha(struct heif_image *image)
struct heif_error heif_encoder_parameter_get_valid_integer_values(const struct heif_encoder_parameter *, int *have_minimum, int *have_maximum, int *minimum, int *maximum, int *num_valid_values, const int **out_integer_array)
int heif_image_handle_has_depth_image(const struct heif_image_handle *)
heif_progress_step
Definition: heif.h:1702
@ heif_progress_step_total
Definition: heif.h:1703
@ heif_progress_step_load_tile
Definition: heif.h:1704
struct heif_error heif_context_add_exif_metadata(struct heif_context *, const struct heif_image_handle *image_handle, const void *data, int size)
struct heif_error heif_unload_plugin(const struct heif_plugin_info *plugin)
int heif_image_handle_get_number_of_thumbnails(const struct heif_image_handle *handle)
struct heif_error heif_decode_image(const struct heif_image_handle *in_handle, struct heif_image **out_img, enum heif_colorspace colorspace, enum heif_chroma chroma, const struct heif_decoding_options *options)
int heif_image_has_content_light_level(const struct heif_image *)
struct heif_error heif_image_crop(struct heif_image *img, int left, int right, int top, int bottom)
struct heif_error heif_image_handle_get_camera_extrinsic_matrix(const struct heif_image_handle *handle, struct heif_camera_extrinsic_matrix **out_matrix)
size_t heif_image_handle_get_metadata_size(const struct heif_image_handle *handle, heif_item_id metadata_id)
struct heif_error heif_context_encode_image(struct heif_context *, const struct heif_image *image, struct heif_encoder *encoder, const struct heif_encoding_options *options, struct heif_image_handle **out_image_handle)
struct heif_error heif_context_add_grid_image(struct heif_context *ctx, uint32_t image_width, uint32_t image_height, uint32_t tile_columns, uint32_t tile_rows, const struct heif_encoding_options *encoding_options, struct heif_image_handle **out_grid_image_handle)
enum heif_color_profile_type heif_image_get_color_profile_type(const struct heif_image *image)
const char * heif_get_version(void)
struct heif_error heif_nclx_color_profile_set_matrix_coefficients(struct heif_color_profile_nclx *nclx, uint16_t matrix_coefficients)
heif_brand2 heif_read_main_brand(const uint8_t *data, int len)
struct heif_error heif_list_compatible_brands(const uint8_t *data, int len, heif_brand2 **out_brands, int *out_size)
const char * heif_get_file_mime_type(const uint8_t *data, int len)
enum heif_encoder_parameter_type heif_encoder_parameter_get_type(const struct heif_encoder_parameter *)
heif_suberror_code
Definition: heif.h:146
@ heif_suberror_Encoder_encoding
Definition: heif.h:333
@ heif_suberror_No_ipma_box
Definition: heif.h:173
@ heif_suberror_No_av1C_box
Definition: heif.h:224
@ heif_suberror_Null_pointer_argument
Definition: heif.h:277
@ heif_suberror_Invalid_region_data
Definition: heif.h:235
@ heif_suberror_Security_limit_exceeded
Definition: heif.h:265
@ heif_suberror_Invalid_property
Definition: heif.h:295
@ heif_suberror_Item_reference_cycle
Definition: heif.h:298
@ heif_suberror_Unsupported_parameter
Definition: heif.h:289
@ heif_suberror_No_properties_assigned_to_item
Definition: heif.h:189
@ heif_suberror_No_icbr_box
Definition: heif.h:250
@ heif_suberror_Plugin_is_not_loaded
Definition: heif.h:342
@ heif_suberror_Unsupported_header_compression_method
Definition: heif.h:316
@ heif_suberror_Unspecified
Definition: heif.h:148
@ heif_suberror_No_pitm_box
Definition: heif.h:169
@ heif_suberror_Encoder_initialization
Definition: heif.h:332
@ heif_suberror_Unsupported_plugin_version
Definition: heif.h:283
@ heif_suberror_Unsupported_color_conversion
Definition: heif.h:312
@ heif_suberror_Compression_initialisation_error
Definition: heif.h:269
@ heif_suberror_No_item_data
Definition: heif.h:192
@ heif_suberror_Unknown_NCLX_matrix_coefficients
Definition: heif.h:232
@ heif_suberror_Unknown_color_profile_type
Definition: heif.h:214
@ heif_suberror_No_infe_box
Definition: heif.h:212
@ heif_suberror_No_idat_box
Definition: heif.h:161
@ heif_suberror_Unsupported_essential_property
Definition: heif.h:321
@ heif_suberror_Ipma_box_references_nonexisting_property
Definition: heif.h:186
@ heif_suberror_Invalid_mini_box
Definition: heif.h:255
@ heif_suberror_Plugin_loading_error
Definition: heif.h:341
@ heif_suberror_Unknown_NCLX_transfer_characteristics
Definition: heif.h:230
@ heif_suberror_Missing_grid_images
Definition: heif.h:198
@ heif_suberror_Unsupported_bit_depth
Definition: heif.h:325
@ heif_suberror_No_iinf_box
Definition: heif.h:177
@ heif_suberror_Invalid_clean_aperture
Definition: heif.h:200
@ heif_suberror_Unsupported_generic_compression_method
Definition: heif.h:319
@ heif_suberror_Overlay_image_outside_of_canvas
Definition: heif.h:206
@ heif_suberror_No_ipco_box
Definition: heif.h:171
@ heif_suberror_No_vvcC_box
Definition: heif.h:247
@ heif_suberror_No_avcC_box
Definition: heif.h:252
@ heif_suberror_Auxiliary_image_type_unspecified
Definition: heif.h:208
@ heif_suberror_Too_many_regions
Definition: heif.h:336
@ heif_suberror_No_iref_box
Definition: heif.h:181
@ heif_suberror_No_pict_handler
Definition: heif.h:183
@ heif_suberror_No_or_invalid_primary_item
Definition: heif.h:210
@ heif_suberror_Unsupported_writer_version
Definition: heif.h:286
@ heif_suberror_Nonexisting_item_referenced
Definition: heif.h:274
@ heif_suberror_Invalid_image_size
Definition: heif.h:220
@ heif_suberror_No_iloc_box
Definition: heif.h:175
@ heif_suberror_No_iprp_box
Definition: heif.h:179
@ heif_suberror_End_of_data
Definition: heif.h:153
@ heif_suberror_No_ftyp_box
Definition: heif.h:159
@ heif_suberror_Unsupported_codec
Definition: heif.h:304
@ heif_suberror_Invalid_grid_data
Definition: heif.h:195
@ heif_suberror_Invalid_overlay_data
Definition: heif.h:203
@ heif_suberror_Invalid_box_size
Definition: heif.h:156
@ heif_suberror_Unsupported_item_construction_method
Definition: heif.h:314
@ heif_suberror_No_hdlr_box
Definition: heif.h:165
@ heif_suberror_Cannot_read_plugin_directory
Definition: heif.h:343
@ heif_suberror_No_ispe_property
Definition: heif.h:238
@ heif_suberror_Unknown_NCLX_color_primaries
Definition: heif.h:228
@ heif_suberror_Nonexisting_image_channel_referenced
Definition: heif.h:280
@ heif_suberror_Wrong_tile_image_chroma_format
Definition: heif.h:216
@ heif_suberror_Invalid_J2K_codestream
Definition: heif.h:245
@ heif_suberror_Unsupported_data_version
Definition: heif.h:309
@ heif_suberror_No_matching_decoder_installed
Definition: heif.h:344
@ heif_suberror_Invalid_pixi_box
Definition: heif.h:222
@ heif_suberror_Camera_extrinsic_matrix_undefined
Definition: heif.h:242
@ heif_suberror_Encoder_cleanup
Definition: heif.h:334
@ heif_suberror_Invalid_parameter_value
Definition: heif.h:292
@ heif_suberror_Invalid_fractional_number
Definition: heif.h:218
@ heif_suberror_Unsupported_image_type
Definition: heif.h:307
@ heif_suberror_Camera_intrinsic_matrix_undefined
Definition: heif.h:240
@ heif_suberror_Decompression_invalid_data
Definition: heif.h:258
@ heif_suberror_No_hvcC_box
Definition: heif.h:167
@ heif_suberror_Wrong_tile_image_pixel_depth
Definition: heif.h:226
@ heif_suberror_No_meta_box
Definition: heif.h:163
@ heif_suberror_Cannot_write_output_data
Definition: heif.h:330
int heif_image_handle_get_chroma_bits_per_pixel(const struct heif_image_handle *)
struct heif_error heif_context_get_encoder_for_format(struct heif_context *context, enum heif_compression_format format, struct heif_encoder **)
void heif_image_set_content_light_level(const struct heif_image *, const struct heif_content_light_level *in)
enum heif_color_profile_type heif_image_handle_get_color_profile_type(const struct heif_image_handle *handle)
void heif_image_release(const struct heif_image *)
size_t heif_image_get_raw_color_profile_size(const struct heif_image *image)
int heif_image_handle_has_camera_extrinsic_matrix(const struct heif_image_handle *handle)
const char * heif_decoder_descriptor_get_id_name(const struct heif_decoder_descriptor *)
const char * heif_decoder_descriptor_get_name(const struct heif_decoder_descriptor *)
void heif_image_get_mastering_display_colour_volume(const struct heif_image *, struct heif_mastering_display_colour_volume *out)
struct heif_error heif_has_compatible_filetype(const uint8_t *data, int len)
Check the filetype box content for a supported file type.
void heif_context_free(struct heif_context *)
void heif_context_set_maximum_image_size_limit(struct heif_context *ctx, int maximum_width)
void heif_decoding_options_free(struct heif_decoding_options *)
int heif_image_get_primary_height(const struct heif_image *img)
Get the height of the main channel.
const char * heif_image_handle_get_metadata_type(const struct heif_image_handle *handle, heif_item_id metadata_id)
void heif_image_get_content_light_level(const struct heif_image *, struct heif_content_light_level *out)
struct heif_error heif_context_set_security_limits(struct heif_context *, const struct heif_security_limits *)
struct heif_error heif_image_handle_get_image_tiling(const struct heif_image_handle *handle, int process_image_transformations, struct heif_image_tiling *out_tiling)
LIBHEIF_API int heif_encoder_descriptor_supportes_lossy_compression(const struct heif_encoder_descriptor *)
struct heif_error heif_image_handle_get_auxiliary_image_handle(const struct heif_image_handle *main_image_handle, heif_item_id auxiliary_id, struct heif_image_handle **out_auxiliary_handle)
heif_error_code
Definition: heif.h:103
@ heif_error_Encoding_error
Definition: heif.h:132
@ heif_error_Invalid_input
Definition: heif.h:111
@ heif_error_Canceled
Definition: heif.h:141
@ heif_error_Memory_allocation_error
Definition: heif.h:123
@ heif_error_Input_does_not_exist
Definition: heif.h:108
@ heif_error_Decoder_plugin_error
Definition: heif.h:126
@ heif_error_Encoder_plugin_error
Definition: heif.h:129
@ heif_error_Plugin_loading_error
Definition: heif.h:138
@ heif_error_Unsupported_filetype
Definition: heif.h:114
@ heif_error_Ok
Definition: heif.h:105
@ heif_error_Unsupported_feature
Definition: heif.h:117
@ heif_error_Color_profile_does_not_exist
Definition: heif.h:135
@ heif_error_Usage_error
Definition: heif.h:120
struct heif_error heif_image_handle_get_camera_intrinsic_matrix(const struct heif_image_handle *handle, struct heif_camera_intrinsic_matrix *out_matrix)
struct heif_error heif_context_add_XMP_metadata(struct heif_context *, const struct heif_image_handle *image_handle, const void *data, int size)
struct heif_error heif_load_plugins(const char *directory, const struct heif_plugin_info **out_plugins, int *out_nPluginsLoaded, int output_array_size)
int heif_get_version_number_maintenance(void)
struct heif_error heif_context_read_from_file(struct heif_context *, const char *filename, const struct heif_reading_options *)
int heif_image_handle_get_ispe_height(const struct heif_image_handle *handle)
heif_compression_format
libheif known compression formats.
Definition: heif.h:375
@ heif_compression_EVC
EVC compression.
Definition: heif.h:427
@ heif_compression_JPEG2000
JPEG 2000 compression.
Definition: heif.h:434
@ heif_compression_AVC
AVC compression.
Definition: heif.h:396
@ heif_compression_uncompressed
Uncompressed encoding.
Definition: heif.h:440
@ heif_compression_mask
Mask image encoding.
Definition: heif.h:446
@ heif_compression_undefined
Unspecified / undefined compression format.
Definition: heif.h:382
@ heif_compression_VVC
VVC compression.
Definition: heif.h:419
@ heif_compression_JPEG
JPEG compression.
Definition: heif.h:403
@ heif_compression_HEVC
HEVC compression, used for HEIC images.
Definition: heif.h:388
@ heif_compression_HTJ2K
High Throughput JPEG 2000 (HT-J2K) compression.
Definition: heif.h:453
@ heif_compression_AV1
AV1 compression, used for AVIF images.
Definition: heif.h:411
struct heif_error heif_image_get_nclx_color_profile(const struct heif_image *image, struct heif_color_profile_nclx **out_data)
struct heif_entity_group * heif_context_get_entity_groups(const struct heif_context *, uint32_t type_filter, heif_item_id item_filter, int *out_num_groups)
struct heif_error heif_image_get_raw_color_profile(const struct heif_image *image, void *out_data)
struct heif_error heif_image_scale_image(const struct heif_image *input, struct heif_image **output, int width, int height, const struct heif_scaling_options *options)
enum heif_brand heif_main_brand(const uint8_t *data, int len)
int heif_get_version_number_major(void)
int heif_image_has_channel(const struct heif_image *, enum heif_channel channel)
struct heif_error heif_encoder_set_lossy_quality(struct heif_encoder *, int quality)
int heif_get_decoder_descriptors(enum heif_compression_format format_filter, const struct heif_decoder_descriptor **out_decoders, int count)
struct heif_error heif_encoder_set_logging_level(struct heif_encoder *, int level)
struct heif_error heif_context_get_image_handle(struct heif_context *ctx, heif_item_id id, struct heif_image_handle **)
heif_orientation
Definition: heif.h:2339
@ heif_orientation_rotate_180
Definition: heif.h:2342
@ heif_orientation_rotate_90_cw_then_flip_horizontally
Definition: heif.h:2344
@ heif_orientation_rotate_90_cw_then_flip_vertically
Definition: heif.h:2346
@ heif_orientation_flip_vertically
Definition: heif.h:2343
@ heif_orientation_rotate_270_cw
Definition: heif.h:2347
@ heif_orientation_flip_horizontally
Definition: heif.h:2341
@ heif_orientation_normal
Definition: heif.h:2340
@ heif_orientation_rotate_90_cw
Definition: heif.h:2345
int heif_image_handle_get_number_of_metadata_blocks(const struct heif_image_handle *handle, const char *type_filter)
int heif_context_is_top_level_image_ID(struct heif_context *ctx, heif_item_id id)
struct heif_context * heif_image_handle_get_context(const struct heif_image_handle *handle)
struct heif_color_profile_nclx * heif_nclx_color_profile_alloc(void)
struct heif_error heif_encoder_parameter_get_valid_string_values(const struct heif_encoder_parameter *, const char *const **out_stringarray)
struct heif_error heif_image_handle_decode_image_tile(const struct heif_image_handle *in_handle, struct heif_image **out_img, enum heif_colorspace colorspace, enum heif_chroma chroma, const struct heif_decoding_options *options, uint32_t tile_x, uint32_t tile_y)
struct heif_error heif_encoder_parameter_integer_valid_values(struct heif_encoder *, const char *parameter_name, int *have_minimum, int *have_maximum, int *minimum, int *maximum, int *num_valid_values, const int **out_integer_array)
uint32_t heif_item_id
Definition: heif.h:364
uint32_t heif_get_version_number(void)
void heif_encoding_options_free(struct heif_encoding_options *)
void heif_image_get_pixel_aspect_ratio(const struct heif_image *, uint32_t *aspect_h, uint32_t *aspect_v)
struct heif_error heif_encoder_get_parameter_boolean(struct heif_encoder *, const char *parameter_name, int *value)
struct heif_error heif_encoder_parameter_get_valid_integer_range(const struct heif_encoder_parameter *, int *have_minimum_maximum, int *minimum, int *maximum)
struct heif_error heif_context_encode_thumbnail(struct heif_context *, const struct heif_image *image, const struct heif_image_handle *master_image_handle, struct heif_encoder *encoder, const struct heif_encoding_options *options, int bbox_size, struct heif_image_handle **out_thumb_image_handle)
struct heif_error heif_context_get_primary_image_ID(struct heif_context *ctx, heif_item_id *id)
const struct heif_security_limits * heif_get_disabled_security_limits()
void heif_context_add_compatible_brand(struct heif_context *ctx, heif_brand2 compatible_brand)
heif_reader_grow_status
Definition: heif.h:961
@ heif_reader_grow_status_timeout
Definition: heif.h:963
@ heif_reader_grow_status_size_beyond_eof
Definition: heif.h:964
@ heif_reader_grow_status_size_reached
Definition: heif.h:962
@ heif_reader_grow_status_error
Definition: heif.h:965
LIBHEIF_API int heif_encoder_descriptor_supportes_lossless_compression(const struct heif_encoder_descriptor *)
void heif_nclx_color_profile_free(struct heif_color_profile_nclx *nclx_profile)
struct heif_error heif_nclx_color_profile_set_color_primaries(struct heif_color_profile_nclx *nclx, uint16_t cp)
struct heif_error heif_context_get_encoder(struct heif_context *context, const struct heif_encoder_descriptor *, struct heif_encoder **out_encoder)
int heif_image_get_width(const struct heif_image *img, enum heif_channel channel)
Get the width of a specified image channel.
void heif_image_add_decoding_warning(struct heif_image *image, struct heif_error err)
int heif_encoder_descriptor_supports_lossless_compression(const struct heif_encoder_descriptor *)
struct heif_error heif_context_add_XMP_metadata2(struct heif_context *, const struct heif_image_handle *image_handle, const void *data, int size, enum heif_metadata_compression compression)
int heif_image_handle_get_number_of_depth_images(const struct heif_image_handle *handle)
const char * heif_image_handle_get_metadata_item_uri_type(const struct heif_image_handle *handle, heif_item_id metadata_id)
void heif_camera_extrinsic_matrix_release(struct heif_camera_extrinsic_matrix *)
struct heif_error heif_context_write(struct heif_context *, struct heif_writer *writer, void *userdata)
struct heif_error heif_image_extend_to_size_fill_with_zero(struct heif_image *image, uint32_t width, uint32_t height)
int heif_image_get_bits_per_pixel(const struct heif_image *, enum heif_channel channel)
const struct heif_encoder_parameter *const * heif_encoder_list_parameters(struct heif_encoder *)
struct heif_context * heif_context_alloc(void)
const char * heif_encoder_get_name(const struct heif_encoder *)
heif_brand2 heif_read_minor_version_brand(const uint8_t *data, int len)
int heif_image_handle_get_ispe_width(const struct heif_image_handle *handle)
const char * heif_encoder_descriptor_get_name(const struct heif_encoder_descriptor *)
int heif_image_handle_get_pixel_aspect_ratio(const struct heif_image_handle *, uint32_t *aspect_h, uint32_t *aspect_v)
struct heif_error heif_context_add_generic_uri_metadata(struct heif_context *ctx, const struct heif_image_handle *image_handle, const void *data, int size, const char *item_uri_type, heif_item_id *out_item_id)
LIBHEIF_API struct heif_error heif_image_create(int width, int height, enum heif_colorspace colorspace, enum heif_chroma chroma, struct heif_image **out_image)
Create a new image of the specified resolution and colorspace.
int heif_image_handle_get_list_of_thumbnail_IDs(const struct heif_image_handle *handle, heif_item_id *ids, int count)
int heif_have_decoder_for_format(enum heif_compression_format format)
int heif_image_handle_get_number_of_auxiliary_images(const struct heif_image_handle *handle, int aux_filter)
int heif_context_get_list_of_top_level_image_IDs(struct heif_context *ctx, heif_item_id *ID_array, int count)
struct heif_error heif_encoder_set_parameter(struct heif_encoder *, const char *parameter_name, const char *value)
struct heif_error heif_image_handle_get_raw_color_profile(const struct heif_image_handle *handle, void *out_data)
LIBHEIF_API struct heif_error heif_register_encoder_plugin(const struct heif_encoder_plugin *)
int heif_image_get_height(const struct heif_image *img, enum heif_channel channel)
Get the height of a specified image channel.
size_t heif_image_handle_get_raw_color_profile_size(const struct heif_image_handle *handle)
struct heif_error heif_image_handle_get_nclx_color_profile(const struct heif_image_handle *handle, struct heif_color_profile_nclx **out_data)
struct heif_error heif_image_handle_get_thumbnail(const struct heif_image_handle *main_image_handle, heif_item_id thumbnail_id, struct heif_image_handle **out_thumbnail_handle)
int heif_get_encoder_descriptors(enum heif_compression_format format_filter, const char *name_filter, const struct heif_encoder_descriptor **out_encoders, int count)
int heif_image_handle_get_depth_image_representation_info(const struct heif_image_handle *handle, heif_item_id depth_image_id, const struct heif_depth_representation_info **out)
int heif_image_get_primary_width(const struct heif_image *img)
Get the width of the main channel.
void heif_encoder_release(struct heif_encoder *)
heif_metadata_compression
Definition: heif.h:519
@ heif_metadata_compression_deflate
Definition: heif.h:523
@ heif_metadata_compression_zlib
Definition: heif.h:524
@ heif_metadata_compression_off
Definition: heif.h:520
@ heif_metadata_compression_brotli
Definition: heif.h:525
@ heif_metadata_compression_auto
Definition: heif.h:521
@ heif_metadata_compression_unknown
Definition: heif.h:522
void heif_brand_to_fourcc(heif_brand2 brand, char *out_fourcc)
int heif_image_handle_get_list_of_auxiliary_image_IDs(const struct heif_image_handle *handle, int aux_filter, heif_item_id *ids, int count)
const struct heif_error heif_error_success
void heif_image_handle_free_auxiliary_types(const struct heif_image_handle *handle, const char **out_type)
void heif_free_plugin_directories(const char *const *)
void heif_depth_representation_info_free(const struct heif_depth_representation_info *info)
struct heif_error heif_context_assign_thumbnail(struct heif_context *, const struct heif_image_handle *master_image, const struct heif_image_handle *thumbnail_image)
struct heif_error heif_context_read_from_memory(struct heif_context *, const void *mem, size_t size, const struct heif_reading_options *)
int heif_image_handle_is_premultiplied_alpha(const struct heif_image_handle *)
struct heif_error heif_nclx_color_profile_set_transfer_characteristics(struct heif_color_profile_nclx *nclx, uint16_t transfer_characteristics)
#define LIBHEIF_API
Definition: heif.h:71
#define heif_fourcc(a, b, c, d)
Definition: heif.h:74
int heif_image_handle_get_mastering_display_colour_volume(const struct heif_image_handle *, struct heif_mastering_display_colour_volume *out)
LIBHEIF_API struct heif_error heif_register_decoder_plugin(const struct heif_decoder_plugin *)
int heif_image_handle_get_list_of_metadata_block_IDs(const struct heif_image_handle *handle, const char *type_filter, heif_item_id *ids, int count)
const struct heif_security_limits * heif_get_global_security_limits()
LIBHEIF_API struct heif_error heif_image_extend_padding_to_size(struct heif_image *image, int min_physical_width, int min_physical_height)
struct heif_error heif_image_set_nclx_color_profile(struct heif_image *image, const struct heif_color_profile_nclx *color_profile)
struct heif_error heif_context_add_overlay_image(struct heif_context *ctx, uint32_t image_width, uint32_t image_height, uint16_t nImages, const heif_item_id *image_ids, int32_t *offsets, const uint16_t background_rgba[4], struct heif_image_handle **out_iovl_image_handle)
heif_filetype_result
Definition: heif.h:617
@ heif_filetype_maybe
Definition: heif.h:621
@ heif_filetype_yes_unsupported
Definition: heif.h:620
@ heif_filetype_yes_supported
Definition: heif.h:619
@ heif_filetype_no
Definition: heif.h:618
const char * heif_image_handle_get_metadata_content_type(const struct heif_image_handle *handle, heif_item_id metadata_id)
struct heif_error heif_context_get_primary_image_handle(struct heif_context *ctx, struct heif_image_handle **)
struct heif_error heif_image_handle_get_grid_image_tile_id(const struct heif_image_handle *handle, int process_image_transformations, uint32_t tile_x, uint32_t tile_y, heif_item_id *out_tile_item_id)
heif_depth_representation_type
Definition: heif.h:1356
@ heif_depth_representation_type_nonuniform_disparity
Definition: heif.h:1360
@ heif_depth_representation_type_uniform_inverse_Z
Definition: heif.h:1357
@ heif_depth_representation_type_uniform_disparity
Definition: heif.h:1358
@ heif_depth_representation_type_uniform_Z
Definition: heif.h:1359
struct heif_error heif_context_write_to_file(struct heif_context *, const char *filename)
struct heif_error heif_encoder_set_parameter_integer(struct heif_encoder *, const char *parameter_name, int value)
struct heif_error heif_context_add_image_tile(struct heif_context *ctx, struct heif_image_handle *tiled_image, uint32_t tile_x, uint32_t tile_y, const struct heif_image *image, struct heif_encoder *encoder)
struct heif_error heif_encoder_parameter_string_valid_values(struct heif_encoder *, const char *parameter_name, const char *const **out_stringarray)
struct heif_error heif_mastering_display_colour_volume_decode(const struct heif_mastering_display_colour_volume *in, struct heif_decoded_mastering_display_colour_volume *out)
int heif_encoder_has_default(struct heif_encoder *, const char *parameter_name)
struct heif_error heif_camera_extrinsic_matrix_get_rotation_matrix(const struct heif_camera_extrinsic_matrix *, double *out_matrix_row_major)
heif_color_profile_type
Definition: heif.h:1508
@ heif_color_profile_type_rICC
Definition: heif.h:1511
@ heif_color_profile_type_prof
Definition: heif.h:1512
@ heif_color_profile_type_nclx
Definition: heif.h:1510
@ heif_color_profile_type_not_present
Definition: heif.h:1509
struct heif_error heif_image_handle_get_depth_image_handle(const struct heif_image_handle *handle, heif_item_id depth_image_id, struct heif_image_handle **out_depth_handle)
struct heif_error heif_init(struct heif_init_params *)
Initialise library.
int heif_have_encoder_for_format(enum heif_compression_format format)
enum heif_filetype_result heif_check_filetype(const uint8_t *data, int len)
struct heif_decoding_options * heif_decoding_options_alloc(void)
heif_transfer_characteristics
Definition: heif.h:1550
@ heif_transfer_characteristic_linear
Definition: heif.h:1557
@ heif_transfer_characteristic_unspecified
Definition: heif.h:1552
@ heif_transfer_characteristic_ITU_R_BT_2020_2_12bit
Definition: heif.h:1564
@ heif_transfer_characteristic_ITU_R_BT_470_6_System_B_G
Definition: heif.h:1554
@ heif_transfer_characteristic_ITU_R_BT_2100_0_PQ
Definition: heif.h:1565
@ heif_transfer_characteristic_ITU_R_BT_2100_0_HLG
Definition: heif.h:1567
@ heif_transfer_characteristic_SMPTE_ST_428_1
Definition: heif.h:1566
@ heif_transfer_characteristic_ITU_R_BT_709_5
Definition: heif.h:1551
@ heif_transfer_characteristic_ITU_R_BT_1361
Definition: heif.h:1561
@ heif_transfer_characteristic_IEC_61966_2_1
Definition: heif.h:1562
@ heif_transfer_characteristic_SMPTE_240M
Definition: heif.h:1556
@ heif_transfer_characteristic_logarithmic_100_sqrt10
Definition: heif.h:1559
@ heif_transfer_characteristic_ITU_R_BT_601_6
Definition: heif.h:1555
@ heif_transfer_characteristic_IEC_61966_2_4
Definition: heif.h:1560
@ heif_transfer_characteristic_logarithmic_100
Definition: heif.h:1558
@ heif_transfer_characteristic_ITU_R_BT_2020_2_10bit
Definition: heif.h:1563
@ heif_transfer_characteristic_ITU_R_BT_470_6_System_M
Definition: heif.h:1553
void heif_color_conversion_options_set_defaults(struct heif_color_conversion_options *)
int heif_context_get_encoder_descriptors(struct heif_context *, enum heif_compression_format format_filter, const char *name_filter, const struct heif_encoder_descriptor **out_encoders, int count)
struct heif_error heif_context_add_generic_metadata(struct heif_context *ctx, const struct heif_image_handle *image_handle, const void *data, int size, const char *item_type, const char *content_type)
struct heif_error heif_context_set_primary_image(struct heif_context *, struct heif_image_handle *image_handle)
LIBHEIF_API struct heif_error heif_register_decoder(struct heif_context *heif, const struct heif_decoder_plugin *)
heif_brand2 heif_fourcc_to_brand(const char *brand_fourcc)
uint32_t heif_entity_group_id
Definition: heif.h:1314
int heif_image_handle_is_primary_image(const struct heif_image_handle *handle)
enum heif_chroma heif_image_get_chroma_format(const struct heif_image *)
struct heif_encoding_options * heif_encoding_options_alloc(void)
const char *const * heif_get_plugin_directories(void)
struct heif_error heif_encoder_set_parameter_string(struct heif_encoder *, const char *parameter_name, const char *value)
struct heif_error heif_image_handle_get_preferred_decoding_colorspace(const struct heif_image_handle *image_handle, enum heif_colorspace *out_colorspace, enum heif_chroma *out_chroma)
struct heif_error heif_image_handle_get_auxiliary_type(const struct heif_image_handle *handle, const char **out_type)
int heif_check_jpeg_filetype(const uint8_t *data, int len)
void heif_image_set_pixel_aspect_ratio(struct heif_image *, uint32_t aspect_h, uint32_t aspect_v)
struct heif_error heif_encoder_parameter_integer_valid_range(struct heif_encoder *, const char *parameter_name, int *have_minimum_maximum, int *minimum, int *maximum)
int heif_has_compatible_brand(const uint8_t *data, int len, const char *brand_fourcc)
heif_chroma_upsampling_algorithm
Definition: heif.h:1719
@ heif_chroma_upsampling_bilinear
Definition: heif.h:1721
@ heif_chroma_upsampling_nearest_neighbor
Definition: heif.h:1720
heif_chroma_downsampling_algorithm
Definition: heif.h:1709
@ heif_chroma_downsampling_nearest_neighbor
Definition: heif.h:1710
@ heif_chroma_downsampling_sharp_yuv
Definition: heif.h:1715
@ heif_chroma_downsampling_average
Definition: heif.h:1711
int heif_get_version_number_minor(void)
struct heif_error heif_encoder_set_lossless(struct heif_encoder *, int enable)
struct heif_error heif_encoder_get_parameter_integer(struct heif_encoder *, const char *parameter_name, int *value)
void heif_free_list_of_compatible_brands(heif_brand2 *brands_list)
heif_encoder_parameter_type
Definition: heif.h:2229
@ heif_encoder_parameter_type_boolean
Definition: heif.h:2231
@ heif_encoder_parameter_type_integer
Definition: heif.h:2230
@ heif_encoder_parameter_type_string
Definition: heif.h:2232
int heif_image_has_mastering_display_colour_volume(const struct heif_image *)
heif_matrix_coefficients
Definition: heif.h:1571
@ heif_matrix_coefficients_chromaticity_derived_non_constant_luminance
Definition: heif.h:1583
@ heif_matrix_coefficients_ITU_R_BT_601_6
Definition: heif.h:1577
@ heif_matrix_coefficients_US_FCC_T47
Definition: heif.h:1575
@ heif_matrix_coefficients_chromaticity_derived_constant_luminance
Definition: heif.h:1584
@ heif_matrix_coefficients_RGB_GBR
Definition: heif.h:1572
@ heif_matrix_coefficients_ITU_R_BT_2020_2_constant_luminance
Definition: heif.h:1581
@ heif_matrix_coefficients_ICtCp
Definition: heif.h:1585
@ heif_matrix_coefficients_ITU_R_BT_470_6_System_B_G
Definition: heif.h:1576
@ heif_matrix_coefficients_unspecified
Definition: heif.h:1574
@ heif_matrix_coefficients_YCgCo
Definition: heif.h:1579
@ heif_matrix_coefficients_SMPTE_240M
Definition: heif.h:1578
@ heif_matrix_coefficients_ITU_R_BT_2020_2_non_constant_luminance
Definition: heif.h:1580
@ heif_matrix_coefficients_SMPTE_ST_2085
Definition: heif.h:1582
@ heif_matrix_coefficients_ITU_R_BT_709_5
Definition: heif.h:1573
LIBHEIF_API struct heif_error heif_image_add_plane(struct heif_image *image, enum heif_channel channel, int width, int height, int bit_depth)
Add an image plane to the image.
struct heif_security_limits * heif_context_get_security_limits(const struct heif_context *)
int heif_image_handle_get_list_of_depth_image_IDs(const struct heif_image_handle *handle, heif_item_id *ids, int count)
struct heif_error heif_context_read_from_memory_without_copy(struct heif_context *, const void *mem, size_t size, const struct heif_reading_options *)
heif_color_primaries
Definition: heif.h:1534
@ heif_color_primaries_SMPTE_ST_428_1
Definition: heif.h:1543
@ heif_color_primaries_ITU_R_BT_709_5
Definition: heif.h:1535
@ heif_color_primaries_generic_film
Definition: heif.h:1541
@ heif_color_primaries_EBU_Tech_3213_E
Definition: heif.h:1546
@ heif_color_primaries_ITU_R_BT_601_6
Definition: heif.h:1539
@ heif_color_primaries_ITU_R_BT_470_6_System_M
Definition: heif.h:1537
@ heif_color_primaries_unspecified
Definition: heif.h:1536
@ heif_color_primaries_SMPTE_240M
Definition: heif.h:1540
@ heif_color_primaries_ITU_R_BT_470_6_System_B_G
Definition: heif.h:1538
@ heif_color_primaries_ITU_R_BT_2020_2_and_2100_0
Definition: heif.h:1542
@ heif_color_primaries_SMPTE_EG_432_1
Definition: heif.h:1545
@ heif_color_primaries_SMPTE_RP_431_2
Definition: heif.h:1544
int heif_image_get_bits_per_pixel_range(const struct heif_image *, enum heif_channel channel)
struct heif_error heif_image_set_raw_color_profile(struct heif_image *image, const char *profile_type_fourcc_string, const void *profile_data, const size_t profile_size)
uint32_t ambient_illumination
Definition: heif.h:2013
uint16_t ambient_light_x
Definition: heif.h:2014
uint16_t ambient_light_y
Definition: heif.h:2015
double principal_point_x
Definition: heif.h:1658
double focal_length_y
Definition: heif.h:1657
double principal_point_y
Definition: heif.h:1659
double skew
Definition: heif.h:1660
double focal_length_x
Definition: heif.h:1656
uint8_t only_use_preferred_chroma_algorithm
Definition: heif.h:1741
uint8_t version
Definition: heif.h:1728
enum heif_chroma_upsampling_algorithm preferred_chroma_upsampling_algorithm
Definition: heif.h:1733
enum heif_chroma_downsampling_algorithm preferred_chroma_downsampling_algorithm
Definition: heif.h:1732
enum heif_transfer_characteristics transfer_characteristics
Definition: heif.h:1595
float color_primary_green_x
Definition: heif.h:1602
enum heif_matrix_coefficients matrix_coefficients
Definition: heif.h:1596
float color_primary_blue_x
Definition: heif.h:1603
float color_primary_white_y
Definition: heif.h:1604
float color_primary_red_x
Definition: heif.h:1601
float color_primary_red_y
Definition: heif.h:1601
float color_primary_white_x
Definition: heif.h:1604
enum heif_color_primaries color_primaries
Definition: heif.h:1594
float color_primary_green_y
Definition: heif.h:1602
uint8_t version
Definition: heif.h:1592
float color_primary_blue_y
Definition: heif.h:1603
uint8_t full_range_flag
Definition: heif.h:1597
uint16_t max_content_light_level
Definition: heif.h:1971
uint16_t max_pic_average_light_level
Definition: heif.h:1972
double min_display_mastering_luminance
Definition: heif.h:2008
float white_point_y
Definition: heif.h:2006
float display_primaries_y[3]
Definition: heif.h:2004
double max_display_mastering_luminance
Definition: heif.h:2007
float white_point_x
Definition: heif.h:2005
float display_primaries_x[3]
Definition: heif.h:2003
void(* start_progress)(enum heif_progress_step step, int max_progress, void *progress_user_data)
Definition: heif.h:1763
void(* on_progress)(enum heif_progress_step step, int progress, void *progress_user_data)
Definition: heif.h:1765
uint8_t convert_hdr_to_8bit
Definition: heif.h:1773
const char * decoder_id
Definition: heif.h:1786
uint8_t ignore_transformations
Definition: heif.h:1760
void * progress_user_data
Definition: heif.h:1769
uint8_t version
Definition: heif.h:1754
void(* end_progress)(enum heif_progress_step step, void *progress_user_data)
Definition: heif.h:1767
int(* cancel_decoding)(void *progress_user_data)
Definition: heif.h:1794
struct heif_color_conversion_options color_conversion_options
Definition: heif.h:1790
uint8_t strict_decoding
Definition: heif.h:1779
uint8_t * depth_nonlinear_representation_model
Definition: heif.h:1383
double z_near
Definition: heif.h:1374
double d_min
Definition: heif.h:1376
double d_max
Definition: heif.h:1377
enum heif_depth_representation_type depth_representation_type
Definition: heif.h:1379
uint8_t has_z_far
Definition: heif.h:1370
uint32_t disparity_reference_view
Definition: heif.h:1380
double z_far
Definition: heif.h:1375
uint32_t depth_nonlinear_representation_model_size
Definition: heif.h:1382
uint8_t has_z_near
Definition: heif.h:1369
uint8_t has_d_min
Definition: heif.h:1371
uint8_t version
Definition: heif.h:1365
uint8_t has_d_max
Definition: heif.h:1372
enum heif_orientation image_orientation
Definition: heif.h:2379
uint8_t prefer_uncC_short_form
Definition: heif.h:2388
uint8_t save_alpha_channel
Definition: heif.h:2357
uint8_t version
Definition: heif.h:2353
uint8_t macOS_compatibility_workaround_no_nclx_profile
Definition: heif.h:2374
uint8_t macOS_compatibility_workaround
Definition: heif.h:2362
uint8_t save_two_colr_boxes_when_ICC_and_nclx_available
Definition: heif.h:2366
struct heif_color_profile_nclx * output_nclx_profile
Definition: heif.h:2372
struct heif_color_conversion_options color_conversion_options
Definition: heif.h:2383
heif_item_id * entities
Definition: heif.h:1320
heif_entity_group_id entity_group_id
Definition: heif.h:1318
uint32_t entity_group_type
Definition: heif.h:1319
uint32_t num_entities
Definition: heif.h:1321
const char * message
Definition: heif.h:357
enum heif_suberror_code subcode
Definition: heif.h:354
enum heif_error_code code
Definition: heif.h:351
uint32_t num_columns
Definition: heif.h:1263
uint32_t image_width
Definition: heif.h:1268
uint32_t num_rows
Definition: heif.h:1264
int version
Definition: heif.h:1259
uint32_t top_offset
Definition: heif.h:1274
uint32_t tile_height
Definition: heif.h:1266
uint32_t left_offset
Definition: heif.h:1275
uint32_t image_height
Definition: heif.h:1269
uint32_t tile_width
Definition: heif.h:1265
uint32_t extra_dimension_size[8]
Definition: heif.h:1278
uint8_t number_of_extra_dimensions
Definition: heif.h:1277
int version
Definition: heif.h:532
uint16_t white_point_y
Definition: heif.h:1995
uint16_t display_primaries_y[3]
Definition: heif.h:1993
uint32_t min_display_mastering_luminance
Definition: heif.h:1997
uint32_t max_display_mastering_luminance
Definition: heif.h:1996
uint16_t white_point_x
Definition: heif.h:1994
uint16_t display_primaries_x[3]
Definition: heif.h:1992
void * internal_handle
Definition: heif.h:589
const void * plugin
Definition: heif.h:588
int version
Definition: heif.h:586
enum heif_plugin_type type
Definition: heif.h:587
int reader_error_code
Definition: heif.h:979
uint64_t range_end
Definition: heif.h:976
enum heif_reader_grow_status status
Definition: heif.h:970
const char * reader_error_msg
Definition: heif.h:980
void(* release_file_range)(uint64_t start_pos, uint64_t end_pos, void *userdata)
Definition: heif.h:1045
int reader_api_version
Definition: heif.h:987
struct heif_reader_range_request_result(* request_range)(uint64_t start_pos, uint64_t end_pos, void *userdata)
Definition: heif.h:1032
enum heif_reader_grow_status(* wait_for_file_size)(int64_t target_size, void *userdata)
Definition: heif.h:1009
int64_t(* get_position)(void *userdata)
Definition: heif.h:990
int(* read)(void *data, size_t size, void *userdata)
Definition: heif.h:994
void(* preload_range_hint)(uint64_t start_pos, uint64_t end_pos, void *userdata)
Definition: heif.h:1039
int(* seek)(int64_t position, void *userdata)
Definition: heif.h:998
void(* release_error_msg)(const char *msg)
Definition: heif.h:1050
uint32_t max_iloc_extents_per_item
Definition: heif.h:1155
uint64_t max_number_of_tiles
Definition: heif.h:1146
uint32_t max_children_per_box
Definition: heif.h:1158
uint8_t version
Definition: heif.h:1138
uint64_t max_image_size_pixels
Definition: heif.h:1145
uint32_t max_items
Definition: heif.h:1148
uint32_t max_components
Definition: heif.h:1153
uint64_t max_memory_block_size
Definition: heif.h:1151
uint32_t max_color_profile_size
Definition: heif.h:1150
uint32_t max_size_entity_group
Definition: heif.h:1156
uint32_t max_bayer_pattern_pixels
Definition: heif.h:1147
struct heif_error(* write)(struct heif_context *ctx, const void *data, size_t size, void *userdata)
Definition: heif.h:2064
int writer_api_version
Definition: heif.h:2059