libheif
Loading...
Searching...
No Matches
heif_encoding.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <libheif/heif_library.h>
#include <libheif/heif_image.h>
#include <libheif/heif_context.h>
#include <libheif/heif_brands.h>
#include <libheif/heif_color.h>
Include dependency graph for heif_encoding.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  heif_encoding_options

Typedefs

typedef struct heif_unci_image_parameters heif_unci_image_parameters
typedef struct heif_encoder heif_encoder
 Opaque object that represents the encoder used to code the images.
typedef struct heif_encoder_descriptor heif_encoder_descriptor
typedef struct heif_encoder_parameter heif_encoder_parameter
typedef enum heif_encoder_parameter_type heif_encoder_parameter_type
typedef enum heif_orientation heif_orientation
typedef struct heif_encoding_options heif_encoding_options

Enumerations

enum  heif_encoder_parameter_type { heif_encoder_parameter_type_integer = 1 , heif_encoder_parameter_type_boolean = 2 , heif_encoder_parameter_type_string = 3 }
enum  heif_orientation {
  heif_orientation_normal = 1 , heif_orientation_flip_horizontally = 2 , heif_orientation_rotate_180 = 3 , heif_orientation_flip_vertically = 4 ,
  heif_orientation_rotate_90_cw_then_flip_horizontally = 5 , heif_orientation_rotate_90_cw = 6 , heif_orientation_rotate_90_cw_then_flip_vertically = 7 , heif_orientation_rotate_270_cw = 8
}

Functions

int heif_have_encoder_for_format (heif_compression_format format)
int heif_get_encoder_descriptors (heif_compression_format format_filter, const char *name_filter, const heif_encoder_descriptor **out_encoders, int count)
const char * heif_encoder_descriptor_get_name (const heif_encoder_descriptor *)
const char * heif_encoder_descriptor_get_id_name (const heif_encoder_descriptor *)
heif_compression_format heif_encoder_descriptor_get_compression_format (const heif_encoder_descriptor *)
int heif_encoder_descriptor_supports_lossy_compression (const heif_encoder_descriptor *)
int heif_encoder_descriptor_supports_lossless_compression (const heif_encoder_descriptor *)
heif_error heif_context_get_encoder (heif_context *context, const heif_encoder_descriptor *, heif_encoder **out_encoder)
heif_error heif_context_get_encoder_for_format (heif_context *context, heif_compression_format format, heif_encoder **)
void heif_encoder_release (heif_encoder *)
 Release the encoder object after use.
const char * heif_encoder_get_name (const heif_encoder *)
heif_error heif_encoder_set_lossy_quality (heif_encoder *, int quality)
heif_error heif_encoder_set_lossless (heif_encoder *, int enable)
heif_error heif_encoder_set_logging_level (heif_encoder *, int level)
const heif_encoder_parameter *const * heif_encoder_list_parameters (heif_encoder *)
const char * heif_encoder_parameter_get_name (const heif_encoder_parameter *)
enum heif_encoder_parameter_type heif_encoder_parameter_get_type (const heif_encoder_parameter *)
heif_error heif_encoder_parameter_get_valid_integer_range (const heif_encoder_parameter *, int *have_minimum_maximum, int *minimum, int *maximum)
heif_error heif_encoder_parameter_get_valid_integer_values (const heif_encoder_parameter *, int *have_minimum, int *have_maximum, int *minimum, int *maximum, int *num_valid_values, const int **out_integer_array)
heif_error heif_encoder_parameter_get_valid_string_values (const heif_encoder_parameter *, const char *const **out_stringarray)
heif_error heif_encoder_set_parameter_integer (heif_encoder *, const char *parameter_name, int value)
heif_error heif_encoder_get_parameter_integer (heif_encoder *, const char *parameter_name, int *value)
heif_error heif_encoder_parameter_integer_valid_range (heif_encoder *, const char *parameter_name, int *have_minimum_maximum, int *minimum, int *maximum)
heif_error heif_encoder_set_parameter_boolean (heif_encoder *, const char *parameter_name, int value)
heif_error heif_encoder_get_parameter_boolean (heif_encoder *, const char *parameter_name, int *value)
heif_error heif_encoder_set_parameter_string (heif_encoder *, const char *parameter_name, const char *value)
heif_error heif_encoder_get_parameter_string (heif_encoder *, const char *parameter_name, char *value, int value_size)
heif_error heif_encoder_parameter_string_valid_values (heif_encoder *, const char *parameter_name, const char *const **out_stringarray)
heif_error heif_encoder_parameter_integer_valid_values (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)
heif_error heif_encoder_set_parameter (heif_encoder *, const char *parameter_name, const char *value)
heif_error heif_encoder_get_parameter (heif_encoder *, const char *parameter_name, char *value_ptr, int value_size)
int heif_encoder_has_default (heif_encoder *, const char *parameter_name)
heif_orientation heif_orientation_concat (heif_orientation first, heif_orientation second)
heif_encoding_options * heif_encoding_options_alloc (void)
void heif_encoding_options_copy (heif_encoding_options *dst, const heif_encoding_options *src)
void heif_encoding_options_free (heif_encoding_options *)
heif_error heif_context_encode_image (heif_context *, const heif_image *image, heif_encoder *encoder, const heif_encoding_options *options, heif_image_handle **out_image_handle)
heif_error heif_context_add_overlay_image (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], heif_image_handle **out_iovl_image_handle)
heif_error heif_context_set_primary_image (heif_context *, heif_image_handle *image_handle)
void heif_context_set_major_brand (heif_context *ctx, heif_brand2 major_brand)
void heif_context_add_compatible_brand (heif_context *ctx, heif_brand2 compatible_brand)
void heif_context_set_unif (heif_context *ctx, int flag)
 Enable the unified ID namespace ('unif' brand).
int heif_encoder_descriptor_supportes_lossy_compression (const heif_encoder_descriptor *)
int heif_encoder_descriptor_supportes_lossless_compression (const heif_encoder_descriptor *)
int heif_context_get_encoder_descriptors (heif_context *, heif_compression_format format_filter, const char *name_filter, const heif_encoder_descriptor **out_encoders, int count)

Typedef Documentation

◆ heif_encoder

typedef struct heif_encoder heif_encoder

Opaque object that represents the encoder used to code the images.

◆ heif_encoder_descriptor

◆ heif_encoder_parameter

◆ heif_encoder_parameter_type

◆ heif_encoding_options

typedef struct heif_encoding_options heif_encoding_options

◆ heif_orientation

◆ heif_unci_image_parameters

Enumeration Type Documentation

◆ heif_encoder_parameter_type

Enumerator
heif_encoder_parameter_type_integer 
heif_encoder_parameter_type_boolean 
heif_encoder_parameter_type_string 

◆ heif_orientation

Enumerator
heif_orientation_normal 
heif_orientation_flip_horizontally 
heif_orientation_rotate_180 
heif_orientation_flip_vertically 
heif_orientation_rotate_90_cw_then_flip_horizontally 
heif_orientation_rotate_90_cw 
heif_orientation_rotate_90_cw_then_flip_vertically 
heif_orientation_rotate_270_cw 

Function Documentation

◆ heif_context_add_compatible_brand()

void heif_context_add_compatible_brand ( heif_context * ctx,
heif_brand2 compatible_brand )

◆ heif_context_add_overlay_image()

heif_error heif_context_add_overlay_image ( 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],
heif_image_handle ** out_iovl_image_handle )

◆ heif_context_encode_image()

heif_error heif_context_encode_image ( heif_context * ,
const heif_image * image,
heif_encoder * encoder,
const heif_encoding_options * options,
heif_image_handle ** out_image_handle )

◆ heif_context_get_encoder()

heif_error heif_context_get_encoder ( heif_context * context,
const heif_encoder_descriptor * ,
heif_encoder ** out_encoder )

◆ heif_context_get_encoder_descriptors()

int heif_context_get_encoder_descriptors ( heif_context * ,
heif_compression_format format_filter,
const char * name_filter,
const heif_encoder_descriptor ** out_encoders,
int count )

◆ heif_context_get_encoder_for_format()

heif_error heif_context_get_encoder_for_format ( heif_context * context,
heif_compression_format format,
heif_encoder **  )

◆ heif_context_set_major_brand()

void heif_context_set_major_brand ( heif_context * ctx,
heif_brand2 major_brand )

◆ heif_context_set_primary_image()

heif_error heif_context_set_primary_image ( heif_context * ,
heif_image_handle * image_handle )

◆ heif_context_set_unif()

void heif_context_set_unif ( heif_context * ctx,
int flag )

Enable the unified ID namespace ('unif' brand).

When enabled, item IDs, track IDs, and entity group IDs share a single global counter so no ID value is reused across categories. The 'unif' compatible brand is automatically added to the output file.

Parameters
ctxthe encoding context
flagnon-zero to enable, zero to disable

◆ heif_encoder_descriptor_get_compression_format()

heif_compression_format heif_encoder_descriptor_get_compression_format ( const heif_encoder_descriptor * )

◆ heif_encoder_descriptor_get_id_name()

const char * heif_encoder_descriptor_get_id_name ( const heif_encoder_descriptor * )

◆ heif_encoder_descriptor_get_name()

const char * heif_encoder_descriptor_get_name ( const heif_encoder_descriptor * )

◆ heif_encoder_descriptor_supportes_lossless_compression()

int heif_encoder_descriptor_supportes_lossless_compression ( const heif_encoder_descriptor * )

◆ heif_encoder_descriptor_supportes_lossy_compression()

int heif_encoder_descriptor_supportes_lossy_compression ( const heif_encoder_descriptor * )

◆ heif_encoder_descriptor_supports_lossless_compression()

int heif_encoder_descriptor_supports_lossless_compression ( const heif_encoder_descriptor * )

◆ heif_encoder_descriptor_supports_lossy_compression()

int heif_encoder_descriptor_supports_lossy_compression ( const heif_encoder_descriptor * )

◆ heif_encoder_get_name()

const char * heif_encoder_get_name ( const heif_encoder * )

◆ heif_encoder_get_parameter()

heif_error heif_encoder_get_parameter ( heif_encoder * ,
const char * parameter_name,
char * value_ptr,
int value_size )

◆ heif_encoder_get_parameter_boolean()

heif_error heif_encoder_get_parameter_boolean ( heif_encoder * ,
const char * parameter_name,
int * value )

◆ heif_encoder_get_parameter_integer()

heif_error heif_encoder_get_parameter_integer ( heif_encoder * ,
const char * parameter_name,
int * value )

◆ heif_encoder_get_parameter_string()

heif_error heif_encoder_get_parameter_string ( heif_encoder * ,
const char * parameter_name,
char * value,
int value_size )

◆ heif_encoder_has_default()

int heif_encoder_has_default ( heif_encoder * ,
const char * parameter_name )

◆ heif_encoder_list_parameters()

const heif_encoder_parameter *const * heif_encoder_list_parameters ( heif_encoder * )

◆ heif_encoder_parameter_get_name()

const char * heif_encoder_parameter_get_name ( const heif_encoder_parameter * )

◆ heif_encoder_parameter_get_type()

enum heif_encoder_parameter_type heif_encoder_parameter_get_type ( const heif_encoder_parameter * )

◆ heif_encoder_parameter_get_valid_integer_range()

heif_error heif_encoder_parameter_get_valid_integer_range ( const heif_encoder_parameter * ,
int * have_minimum_maximum,
int * minimum,
int * maximum )

◆ heif_encoder_parameter_get_valid_integer_values()

heif_error heif_encoder_parameter_get_valid_integer_values ( const heif_encoder_parameter * ,
int * have_minimum,
int * have_maximum,
int * minimum,
int * maximum,
int * num_valid_values,
const int ** out_integer_array )

◆ heif_encoder_parameter_get_valid_string_values()

heif_error heif_encoder_parameter_get_valid_string_values ( const heif_encoder_parameter * ,
const char *const ** out_stringarray )

◆ heif_encoder_parameter_integer_valid_range()

heif_error heif_encoder_parameter_integer_valid_range ( heif_encoder * ,
const char * parameter_name,
int * have_minimum_maximum,
int * minimum,
int * maximum )

◆ heif_encoder_parameter_integer_valid_values()

heif_error heif_encoder_parameter_integer_valid_values ( 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 )

◆ heif_encoder_parameter_string_valid_values()

heif_error heif_encoder_parameter_string_valid_values ( heif_encoder * ,
const char * parameter_name,
const char *const ** out_stringarray )

◆ heif_encoder_release()

void heif_encoder_release ( heif_encoder * )

Release the encoder object after use.

◆ heif_encoder_set_logging_level()

heif_error heif_encoder_set_logging_level ( heif_encoder * ,
int level )

◆ heif_encoder_set_lossless()

heif_error heif_encoder_set_lossless ( heif_encoder * ,
int enable )

◆ heif_encoder_set_lossy_quality()

heif_error heif_encoder_set_lossy_quality ( heif_encoder * ,
int quality )

◆ heif_encoder_set_parameter()

heif_error heif_encoder_set_parameter ( heif_encoder * ,
const char * parameter_name,
const char * value )

◆ heif_encoder_set_parameter_boolean()

heif_error heif_encoder_set_parameter_boolean ( heif_encoder * ,
const char * parameter_name,
int value )

◆ heif_encoder_set_parameter_integer()

heif_error heif_encoder_set_parameter_integer ( heif_encoder * ,
const char * parameter_name,
int value )

◆ heif_encoder_set_parameter_string()

heif_error heif_encoder_set_parameter_string ( heif_encoder * ,
const char * parameter_name,
const char * value )

◆ heif_encoding_options_alloc()

heif_encoding_options * heif_encoding_options_alloc ( void )

◆ heif_encoding_options_copy()

void heif_encoding_options_copy ( heif_encoding_options * dst,
const heif_encoding_options * src )

◆ heif_encoding_options_free()

void heif_encoding_options_free ( heif_encoding_options * )

◆ heif_get_encoder_descriptors()

int heif_get_encoder_descriptors ( heif_compression_format format_filter,
const char * name_filter,
const heif_encoder_descriptor ** out_encoders,
int count )

◆ heif_have_encoder_for_format()

int heif_have_encoder_for_format ( heif_compression_format format)

◆ heif_orientation_concat()

heif_orientation heif_orientation_concat ( heif_orientation first,
heif_orientation second )