21#ifndef LIBHEIF_HEIF_ITEMS_H
22#define LIBHEIF_HEIF_ITEMS_H
24#include "heif_library.h"
25#include "heif_error.h"
26#include "heif_metadata.h"
57 heif_item_id* ID_array,
74#define heif_item_type_mime heif_fourcc('m','i','m','e')
75#define heif_item_type_uri heif_fourcc('u','r','i',' ')
128 const char* item_name);
155 heif_item_id item_id,
156 enum heif_metadata_compression* out_compression_format,
157 uint8_t** out_data,
size_t* out_data_size);
186 char** out_language);
190 heif_item_id item_id,
191 const char* language, heif_property_id* out_optional_propertyId);
207 heif_item_id from_item_id,
209 uint32_t* out_reference_type_4cc,
210 heif_item_id** out_references_to);
217 uint32_t reference_type,
218 heif_item_id from_item,
219 heif_item_id to_item);
223 uint32_t reference_type,
224 heif_item_id from_item,
225 const heif_item_id* to_item,
232 const char* item_type,
233 const void* data,
int size,
234 heif_item_id* out_item_id);
238 const char* content_type,
239 enum heif_metadata_compression content_encoding,
240 const void* data,
int size,
241 heif_item_id* out_item_id);
245 const char* content_type,
246 const char* content_encoding,
247 const void* data,
int size,
248 heif_item_id* out_item_id);
252 const char* item_uri_type,
253 const void* data,
int size,
254 heif_item_id* out_item_id);
heif_error heif_item_set_property_extended_language(heif_context *context, heif_item_id item_id, const char *language, heif_property_id *out_optional_propertyId)
const char * heif_item_get_mime_item_content_type(const heif_context *ctx, heif_item_id item_id)
Gets the MIME content_type for an item.
int heif_context_get_number_of_items(const heif_context *ctx)
Gets the number of items.
heif_error heif_item_get_property_extended_language(const heif_context *context, heif_item_id itemId, char **out_language)
Get the extended language associated with the item.
heif_error heif_item_get_item_data(const heif_context *ctx, heif_item_id item_id, enum heif_metadata_compression *out_compression_format, uint8_t **out_data, size_t *out_data_size)
Gets the raw metadata, as stored in the HEIF file.
heif_error heif_context_add_uri_item(heif_context *ctx, const char *item_uri_type, const void *data, int size, heif_item_id *out_item_id)
heif_error heif_context_add_item_reference(heif_context *ctx, uint32_t reference_type, heif_item_id from_item, heif_item_id to_item)
const char * heif_item_get_item_name(const heif_context *ctx, heif_item_id item_id)
void heif_release_item_references(const heif_context *ctx, heif_item_id **references)
heif_error heif_context_add_mime_item(heif_context *ctx, const char *content_type, enum heif_metadata_compression content_encoding, const void *data, int size, heif_item_id *out_item_id)
void heif_release_item_data(const heif_context *ctx, uint8_t **item_data)
Free the item data.
const char * heif_item_get_mime_item_content_encoding(const heif_context *ctx, heif_item_id item_id)
Gets the content_encoding for a MIME item.
int heif_context_get_list_of_item_IDs(const heif_context *ctx, heif_item_id *ID_array, int count)
Get the item identifiers.
uint32_t heif_item_get_item_type(const heif_context *ctx, heif_item_id item_id)
Gets the item type.
heif_error heif_context_add_item(heif_context *ctx, const char *item_type, const void *data, int size, heif_item_id *out_item_id)
heif_error heif_context_add_item_references(heif_context *ctx, uint32_t reference_type, heif_item_id from_item, const heif_item_id *to_item, int num_to_items)
heif_error heif_item_set_item_name(heif_context *ctx, heif_item_id item, const char *item_name)
size_t heif_context_get_item_references(const heif_context *ctx, heif_item_id from_item_id, int index, uint32_t *out_reference_type_4cc, heif_item_id **out_references_to)
Get the item ids that reference the given item.
heif_error heif_context_add_precompressed_mime_item(heif_context *ctx, const char *content_type, const char *content_encoding, const void *data, int size, heif_item_id *out_item_id)
const char * heif_item_get_uri_item_uri_type(const heif_context *ctx, heif_item_id item_id)
Gets the item_uri_type for an item.
int heif_item_is_item_hidden(const heif_context *ctx, heif_item_id item_id)