EXIF library (libexif) Internals 0.6.26
exif-utils.h File Reference

EXIF data manipulation functions and types. More...

#include <libexif/exif-byte-order.h>
#include <libexif/exif-format.h>
#include <libexif/_stdint.h>
Include dependency graph for exif-utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ExifRational
 EXIF Unsigned Rational data type. More...
 
struct  ExifSRational
 EXIF Signed Rational data type. More...
 

Macros

#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
#define EXIF_TAG_SUBSEC_TIME   EXIF_TAG_SUB_SEC_TIME
 

Typedefs

typedef unsigned char ExifByte
 EXIF Unsigned Byte data type.
 
typedef signed char ExifSByte
 EXIF Signed Byte data type.
 
typedef char * ExifAscii
 EXIF Text String data type.
 
typedef uint16_t ExifShort
 EXIF Unsigned Short data type.
 
typedef int16_t ExifSShort
 EXIF Signed Short data type.
 
typedef uint32_t ExifLong
 EXIF Unsigned Long data type.
 
typedef int32_t ExifSLong
 EXIF Signed Long data type.
 
typedef char ExifUndefined
 

Functions

ExifShort exif_get_short (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifShort value from memory.
 
ExifSShort exif_get_sshort (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSShort value from memory.
 
ExifLong exif_get_long (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifLong value from memory.
 
ExifSLong exif_get_slong (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSLong value from memory.
 
ExifRational exif_get_rational (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifRational value from memory.
 
ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSRational value from memory.
 
void exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
 Store an ExifShort value into memory in EXIF format.
 
void exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value)
 Store an ExifSShort value into memory in EXIF format.
 
void exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value)
 Store an ExifLong value into memory in EXIF format.
 
void exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value)
 Store an ExifSLong value into memory in EXIF format.
 
void exif_set_rational (unsigned char *b, ExifByteOrder order, ExifRational value)
 Store an ExifRational value into memory in EXIF format.
 
void exif_set_srational (unsigned char *b, ExifByteOrder order, ExifSRational value)
 Store an ExifSRational value into memory in EXIF format.
 
void exif_convert_utf16_to_utf8 (char *out, unsigned int outlen, const unsigned char *in, unsigned int inlen)
 This function converts rather UCS-2LE than UTF-16 to UTF-8.
 
void exif_array_set_byte_order (ExifFormat, unsigned char *, unsigned int, ExifByteOrder o_orig, ExifByteOrder o_new)
 

Detailed Description

EXIF data manipulation functions and types.

Definition in file exif-utils.h.

Macro Definition Documentation

◆ EXIF_TAG_SUBSEC_TIME

#define EXIF_TAG_SUBSEC_TIME   EXIF_TAG_SUB_SEC_TIME
Deprecated:
Use EXIF_TAG_SUB_SEC_TIME instead.

Definition at line 190 of file exif-utils.h.

◆ MAX

#define MAX (   a,
 
)    (((a) > (b)) ? (a) : (b))

Definition at line 185 of file exif-utils.h.

◆ MIN

#define MIN (   a,
 
)    (((a) < (b)) ? (a) : (b))

Definition at line 182 of file exif-utils.h.

Typedef Documentation

◆ ExifAscii

typedef char* ExifAscii

EXIF Text String data type.

Definition at line 47 of file exif-utils.h.

◆ ExifByte

typedef unsigned char ExifByte

EXIF Unsigned Byte data type.

Definition at line 41 of file exif-utils.h.

◆ ExifLong

typedef uint32_t ExifLong

EXIF Unsigned Long data type.

Definition at line 56 of file exif-utils.h.

◆ ExifSByte

typedef signed char ExifSByte

EXIF Signed Byte data type.

Definition at line 44 of file exif-utils.h.

◆ ExifShort

typedef uint16_t ExifShort

EXIF Unsigned Short data type.

Definition at line 50 of file exif-utils.h.

◆ ExifSLong

typedef int32_t ExifSLong

EXIF Signed Long data type.

Definition at line 59 of file exif-utils.h.

◆ ExifSShort

typedef int16_t ExifSShort

EXIF Signed Short data type.

Definition at line 53 of file exif-utils.h.

◆ ExifUndefined

typedef char ExifUndefined

Definition at line 64 of file exif-utils.h.

Function Documentation

◆ exif_array_set_byte_order()

◆ exif_convert_utf16_to_utf8()

void exif_convert_utf16_to_utf8 ( char *  out,
unsigned int  outlen,
const unsigned char *  in,
unsigned int  inlen 
)

This function converts rather UCS-2LE than UTF-16 to UTF-8.

It should really be replaced by iconv().

Definition at line 222 of file exif-utils.c.

References EXIF_BYTE_ORDER_INTEL, and exif_get_short().

Referenced by exif_entry_get_value().

Here is the call graph for this function:

◆ exif_get_long()

ExifLong exif_get_long ( const unsigned char *  b,
ExifByteOrder  order 
)

Retrieve an ExifLong value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

Definition at line 167 of file exif-utils.c.

References exif_get_slong().

Referenced by exif_array_set_byte_order(), exif_data_load_data(), exif_data_load_data_content(), exif_data_load_data_entry(), exif_entry_format_value(), exif_get_rational(), exif_get_short_convert(), exif_mnote_data_apple_load(), exif_mnote_data_canon_load(), exif_mnote_data_fuji_load(), exif_mnote_data_olympus_load(), exif_mnote_data_pentax_load(), mnote_apple_entry_get_value(), mnote_canon_entry_get_value(), mnote_fuji_entry_get_value(), mnote_olympus_entry_get_value(), and mnote_pentax_entry_get_value().

Here is the call graph for this function:

◆ exif_get_rational()

ExifRational exif_get_rational ( const unsigned char *  b,
ExifByteOrder  order 
)

Retrieve an ExifRational value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

Definition at line 190 of file exif-utils.c.

References ExifRational::denominator, exif_get_long(), and ExifRational::numerator.

Referenced by exif_array_set_byte_order(), exif_entry_fix(), exif_entry_format_value(), exif_entry_get_value(), mnote_apple_entry_get_value(), mnote_fuji_entry_get_value(), and mnote_olympus_entry_get_value().

Here is the call graph for this function:

◆ exif_get_short()

ExifShort exif_get_short ( const unsigned char *  b,
ExifByteOrder  order 
)

◆ exif_get_slong()

ExifSLong exif_get_slong ( const unsigned char *  b,
ExifByteOrder  order 
)

Retrieve an ExifSLong value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

Definition at line 132 of file exif-utils.c.

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_array_set_byte_order(), exif_entry_format_value(), exif_get_long(), exif_get_short_convert(), exif_get_srational(), mnote_apple_entry_get_value(), mnote_canon_entry_get_value(), mnote_fuji_entry_get_value(), mnote_olympus_entry_get_value(), and mnote_pentax_entry_get_value().

◆ exif_get_srational()

ExifSRational exif_get_srational ( const unsigned char *  b,
ExifByteOrder  order 
)

Retrieve an ExifSRational value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

Definition at line 179 of file exif-utils.c.

References ExifSRational::denominator, exif_get_slong(), and ExifSRational::numerator.

Referenced by exif_array_set_byte_order(), exif_entry_fix(), exif_entry_format_value(), exif_entry_get_value(), mnote_apple_entry_get_value(), mnote_fuji_entry_get_value(), and mnote_olympus_entry_get_value().

Here is the call graph for this function:

◆ exif_get_sshort()

ExifSShort exif_get_sshort ( const unsigned char *  b,
ExifByteOrder  order 
)

Retrieve an ExifSShort value from memory.

Parameters
[in]bpointer to raw EXIF value in memory
[in]orderbyte order of raw value
Returns
value

Definition at line 89 of file exif-utils.c.

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_array_set_byte_order(), exif_entry_format_value(), exif_get_short(), exif_get_short_convert(), mnote_apple_entry_get_value(), mnote_canon_entry_get_value(), mnote_fuji_entry_get_value(), mnote_olympus_entry_get_value(), and mnote_pentax_entry_get_value().

◆ exif_set_long()

void exif_set_long ( unsigned char *  b,
ExifByteOrder  order,
ExifLong  value 
)

Store an ExifLong value into memory in EXIF format.

Parameters
[out]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

Definition at line 173 of file exif-utils.c.

References exif_set_slong().

Referenced by exif_array_set_byte_order(), exif_data_save_data(), exif_data_save_data_content(), exif_data_save_data_entry(), exif_mnote_data_canon_save(), exif_mnote_data_fuji_save(), exif_mnote_data_olympus_save(), exif_mnote_data_pentax_save(), and exif_set_rational().

Here is the call graph for this function:

◆ exif_set_rational()

void exif_set_rational ( unsigned char *  b,
ExifByteOrder  order,
ExifRational  value 
)

Store an ExifRational value into memory in EXIF format.

Parameters
[out]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

Definition at line 201 of file exif-utils.c.

References ExifRational::denominator, exif_set_long(), and ExifRational::numerator.

Referenced by exif_array_set_byte_order(), exif_entry_fix(), exif_entry_initialize(), and main().

Here is the call graph for this function:

◆ exif_set_short()

void exif_set_short ( unsigned char *  b,
ExifByteOrder  order,
ExifShort  value 
)

Store an ExifShort value into memory in EXIF format.

Parameters
[out]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

Definition at line 126 of file exif-utils.c.

References exif_set_sshort().

Referenced by exif_array_set_byte_order(), exif_data_save_data(), exif_data_save_data_content(), exif_data_save_data_entry(), exif_entry_fix(), exif_entry_initialize(), exif_mnote_data_canon_save(), exif_mnote_data_fuji_save(), exif_mnote_data_olympus_save(), exif_mnote_data_pentax_save(), main(), and main().

Here is the call graph for this function:

◆ exif_set_slong()

void exif_set_slong ( unsigned char *  b,
ExifByteOrder  order,
ExifSLong  value 
)

Store an ExifSLong value into memory in EXIF format.

Parameters
[out]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

Definition at line 147 of file exif-utils.c.

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_array_set_byte_order(), exif_set_long(), and exif_set_srational().

◆ exif_set_srational()

void exif_set_srational ( unsigned char *  b,
ExifByteOrder  order,
ExifSRational  value 
)

Store an ExifSRational value into memory in EXIF format.

Parameters
[out]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

Definition at line 210 of file exif-utils.c.

References ExifSRational::denominator, exif_set_slong(), and ExifSRational::numerator.

Referenced by exif_array_set_byte_order(), exif_entry_fix(), and main().

Here is the call graph for this function:

◆ exif_set_sshort()

void exif_set_sshort ( unsigned char *  b,
ExifByteOrder  order,
ExifSShort  value 
)

Store an ExifSShort value into memory in EXIF format.

Parameters
[out]bbuffer in which to write raw value
[in]orderbyte order to use
[in]valuedata value to store

Definition at line 110 of file exif-utils.c.

References EXIF_BYTE_ORDER_INTEL, and EXIF_BYTE_ORDER_MOTOROLA.

Referenced by exif_array_set_byte_order(), and exif_set_short().


libexif Generated by doxygen