EXIF library (libexif) Internals  0.6.24
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. More...
 
typedef signed char ExifSByte
 EXIF Signed Byte data type. More...
 
typedef char * ExifAscii
 EXIF Text String data type. More...
 
typedef uint16_t ExifShort
 EXIF Unsigned Short data type. More...
 
typedef int16_t ExifSShort
 EXIF Signed Short data type. More...
 
typedef uint32_t ExifLong
 EXIF Unsigned Long data type. More...
 
typedef int32_t ExifSLong
 EXIF Signed Long data type. More...
 
typedef char ExifUndefined
 

Functions

ExifShort exif_get_short (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifShort value from memory. More...
 
ExifSShort exif_get_sshort (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSShort value from memory. More...
 
ExifLong exif_get_long (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifLong value from memory. More...
 
ExifSLong exif_get_slong (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSLong value from memory. More...
 
ExifRational exif_get_rational (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifRational value from memory. More...
 
ExifSRational exif_get_srational (const unsigned char *b, ExifByteOrder order)
 Retrieve an ExifSRational value from memory. More...
 
void exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
 Store an ExifShort value into memory in EXIF format. More...
 
void exif_set_sshort (unsigned char *b, ExifByteOrder order, ExifSShort value)
 Store an ExifSShort value into memory in EXIF format. More...
 
void exif_set_long (unsigned char *b, ExifByteOrder order, ExifLong value)
 Store an ExifLong value into memory in EXIF format. More...
 
void exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value)
 Store an ExifSLong value into memory in EXIF format. More...
 
void exif_set_rational (unsigned char *b, ExifByteOrder order, ExifRational value)
 Store an ExifRational value into memory in EXIF format. More...
 
void exif_set_srational (unsigned char *b, ExifByteOrder order, ExifSRational value)
 Store an ExifSRational value into memory in EXIF format. More...
 
void exif_convert_utf16_to_utf8 (char *out, const unsigned char *in, int maxlen)
 This function converts rather UCS-2LE than UTF-16 to UTF-8. More...
 
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 188 of file exif-utils.h.

◆ MAX

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

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

◆ MIN

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

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

Typedef Documentation

◆ ExifAscii

typedef char* ExifAscii

EXIF Text String data type.

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

◆ ExifByte

typedef unsigned char ExifByte

EXIF Unsigned Byte data type.

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

◆ ExifLong

typedef uint32_t ExifLong

EXIF Unsigned Long data type.

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

◆ ExifSByte

typedef signed char ExifSByte

EXIF Signed Byte data type.

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

◆ ExifShort

typedef uint16_t ExifShort

EXIF Unsigned Short data type.

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

◆ ExifSLong

typedef int32_t ExifSLong

EXIF Signed Long data type.

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

◆ ExifSShort

typedef int16_t ExifSShort

EXIF Signed Short data type.

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

◆ ExifUndefined

typedef char ExifUndefined

Definition at line 62 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,
const unsigned char *  in,
int  maxlen 
)

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

It should really be replaced by iconv().

Definition at line 220 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 165 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 188 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 130 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 177 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 87 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 171 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 199 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 124 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(), 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 145 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 208 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 108 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