EXIF library (libexif) API 0.6.22
exifcont.h File Reference

Handling EXIF IFDs. More...

#include <libexif/exiftag.h>
#include <libexif/exifent.h>
#include <libexif/exifdata.h>
#include <libexif/exiflog.h>
#include <libexif/exifmem.h>

Go to the source code of this file.

Data Structures

struct  _ExifContent
 

Macros

#define exif_content_get_value(c, t, v, m)
 Return a textual representation of the EXIF data for a tag.
 

Typedefs

typedef struct _ExifContent ExifContent
 Holds all EXIF tags in a single IFD.
 
typedef struct _ExifContentPrivate ExifContentPrivate
 
typedef void EXIF_CALLBACK(* ExifContentForeachEntryFunc) (ExifEntry *, void *user_data)
 

Functions

 EXIF_API (ExifContent *) exif_content_new(void)
 Reserve memory for and initialize a new ExifContent.
 
 EXIF_API (void) exif_content_ref(ExifContent *content)
 Increase reference counter for ExifContent.
 
 EXIF_API (ExifEntry *) exif_content_get_entry(ExifContent *content
 Return the ExifEntry in this IFD corresponding to the given tag.
 
 EXIF_API (ExifIfd) exif_content_get_ifd(ExifContent *c)
 Return the IFD number in which the given ExifContent is found.
 

Variables

ExifEntryentry
 
ExifEntrye
 
ExifTag tag
 
ExifContentForeachEntryFunc func
 
ExifContentForeachEntryFunc void * user_data
 
exif_uint_t indent
 
ExifLog * log
 

Detailed Description

Handling EXIF IFDs.

Macro Definition Documentation

◆ exif_content_get_value

#define exif_content_get_value (   c,
  t,
  v,
 
)
Value:
(exif_content_get_entry (c,t) ? \
exif_entry_get_value (exif_content_get_entry (c,t),v,m) : NULL)

Return a textual representation of the EXIF data for a tag.

Parameters
[in]cExifContent* for an IFD
[in]tExifTag to return
[out]vchar* buffer in which to store value
[in]munsigned int length of the buffer v
Returns
the v pointer, or NULL on error

Function Documentation

◆ EXIF_API() [1/4]

EXIF_API ( ExifContent )

Reserve memory for and initialize a new ExifContent.

Reserve memory for and initialize new ExifContent using the specified memory allocator.

Returns
new allocated ExifContent, or NULL on error
See also
exif_content_new_mem, exif_content_unref
Returns
new allocated ExifContent, or NULL on error
See also
exif_content_new, exif_content_unref

◆ EXIF_API() [2/4]

EXIF_API ( ExifEntry )

Return the ExifEntry in this IFD corresponding to the given tag.

Reserve memory for and initialize a new ExifEntry.

This is a pointer into a member of the ExifContent array and must NOT be freed or unrefed by the caller.

Parameters
[in]contentEXIF content for an IFD
[in]tagEXIF tag to return
Returns
ExifEntry of the tag, or NULL on error

◆ EXIF_API() [3/4]

EXIF_API ( ExifIfd  )

Return the IFD number in which the given ExifContent is found.

Parameters
[in]can ExifContent*
Returns
IFD number, or EXIF_IFD_COUNT on error

◆ EXIF_API() [4/4]

EXIF_API ( void  )

Increase reference counter for ExifContent.

Set the log message object for this IFD.

Dump contents of the IFD to stdout.

Executes function on each EXIF tag in this IFD in turn.

Fix the IFD to bring it into specification.

Remove an EXIF tag from an IFD.

Add an EXIF tag to an IFD.

Actually free the ExifContent.

Decrease reference counter for ExifContent.

Parameters
[in]contentExifContent
See also
exif_content_unref

When the reference count drops to zero, free the content.

Parameters
[in]contentExifContent
Deprecated:
Should not be called directly. Use exif_content_ref and exif_content_unref instead.
Parameters
[in]contentExifContent

If this tag already exists in the IFD, this function does nothing.

Precondition
The "tag" member of the entry must be set on entry.
Parameters
[out]cIFD
[in]entryEXIF entry to add

If this tag does not exist in the IFD, this function does nothing.

Parameters
[out]cIFD
[in]eEXIF entry to remove

Call exif_entry_fix on each entry in this IFD to fix existing entries, create any new entries that are mandatory in this IFD but do not yet exist, and remove any entries that are not allowed in this IFD.

Parameters
[in,out]cEXIF content for an IFD

The tags will not necessarily be visited in numerical order.

Parameters
[in,out]contentIFD over which to iterate
[in]funcfunction to call for each entry
[in]user_datadata to pass into func on each call

This is intended for diagnostic purposes only.

Parameters
[in]contentIFD data
[in]indenthow many levels deep to indent the data
[in]contentIFD
[in]logExifLog*