exif-content.h | exif-content.h | |||
---|---|---|---|---|
skipping to change at line 45 | skipping to change at line 45 | |||
#include <libexif/exif-entry.h> | #include <libexif/exif-entry.h> | |||
#include <libexif/exif-data.h> | #include <libexif/exif-data.h> | |||
#include <libexif/exif-log.h> | #include <libexif/exif-log.h> | |||
#include <libexif/exif-mem.h> | #include <libexif/exif-mem.h> | |||
struct _ExifContent | struct _ExifContent | |||
{ | { | |||
ExifEntry **entries; | ExifEntry **entries; | |||
unsigned int count; | unsigned int count; | |||
/* Data containing this content */ | /*! Data containing this content */ | |||
ExifData *parent; | ExifData *parent; | |||
ExifContentPrivate *priv; | ExifContentPrivate *priv; | |||
}; | }; | |||
/* Lifecycle */ | /* Lifecycle */ | |||
ExifContent *exif_content_new (void); | ExifContent *exif_content_new (void); | |||
ExifContent *exif_content_new_mem (ExifMem *); | ExifContent *exif_content_new_mem (ExifMem *); | |||
void exif_content_ref (ExifContent *content); | void exif_content_ref (ExifContent *content); | |||
void exif_content_unref (ExifContent *content); | void exif_content_unref (ExifContent *content); | |||
void exif_content_free (ExifContent *content); | void exif_content_free (ExifContent *content); | |||
/*! Add an EXIF tag to an IFD. | /*! Add an EXIF tag to an IFD. | |||
* If this tag already exists in the IFD, this function does nothing. | * If this tag already exists in the IFD, this function does nothing. | |||
* \pre The "tag" member of the entry must be set on entry. | ||||
* | * | |||
* \param[out] c IFD | * \param[out] c IFD | |||
* \param[in] entry EXIF entry to add | * \param[in] entry EXIF entry to add | |||
*/ | */ | |||
void exif_content_add_entry (ExifContent *c, ExifEntry *entry); | void exif_content_add_entry (ExifContent *c, ExifEntry *entry); | |||
/*! Remove an EXIF tag from an IFD. | /*! Remove an EXIF tag from an IFD. | |||
* If this tag does not exist in the IFD, this function does nothing. | * If this tag does not exist in the IFD, this function does nothing. | |||
* | * | |||
* \param[out] c IFD | * \param[out] c IFD | |||
* \param[in] e EXIF entry to remove | * \param[in] e EXIF entry to remove | |||
*/ | */ | |||
void exif_content_remove_entry (ExifContent *c, ExifEntry *e); | void exif_content_remove_entry (ExifContent *c, ExifEntry *e); | |||
/*! Return the #ExifEntry in this IFD corresponding to the given tag. | /*! Return the #ExifEntry in this IFD corresponding to the given tag. | |||
* This is a pointer into a member of the #ExifContent array and must NOT b e | * This is a pointer into a member of the #ExifContent array and must NOT b e | |||
* freed by the caller. | * freed or unrefed by the caller. | |||
* | * | |||
* \param[in] content EXIF content for an IFD | * \param[in] content EXIF content for an IFD | |||
* \param[in] tag EXIF tag to return | * \param[in] tag EXIF tag to return | |||
* \return #ExifEntry of the tag, or NULL on error | * \return #ExifEntry of the tag, or NULL on error | |||
*/ | */ | |||
ExifEntry *exif_content_get_entry (ExifContent *content, ExifTag tag); | ExifEntry *exif_content_get_entry (ExifContent *content, ExifTag tag); | |||
/*! Fix the IFD to bring it into specification. Call #exif_entry_fix on | /*! Fix the IFD to bring it into specification. Call #exif_entry_fix on | |||
* each entry in this IFD to fix existing entries, create any new entries | * 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 | * that are mandatory in this IFD but do not yet exist, and remove any | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 3 lines changed or added | |||
exif-data.h | exif-data.h | |||
---|---|---|---|---|
skipping to change at line 110 | skipping to change at line 110 | |||
* | * | |||
* \param[in,out] data EXIF data | * \param[in,out] data EXIF data | |||
* \param[in] d pointer to raw JPEG or EXIF data | * \param[in] d pointer to raw JPEG or EXIF data | |||
* \param[in] size number of bytes of data at d | * \param[in] size number of bytes of data at d | |||
*/ | */ | |||
void exif_data_load_data (ExifData *data, const unsigned char *d, | void exif_data_load_data (ExifData *data, const unsigned char *d, | |||
unsigned int size); | unsigned int size); | |||
/*! Store raw EXIF data representing the #ExifData structure into a memory | /*! Store raw EXIF data representing the #ExifData structure into a memory | |||
* buffer. The buffer is allocated by this function and must subsequently b e | * buffer. The buffer is allocated by this function and must subsequently b e | |||
* freed by the caller. | * freed by the caller using the matching free function as used by the #Exi | |||
fMem | ||||
* in use by this #ExifData. | ||||
* | * | |||
* \param[in] data EXIF data | * \param[in] data EXIF data | |||
* \param[out] d pointer to buffer pointer containing raw EXIF data on retu rn | * \param[out] d pointer to buffer pointer containing raw EXIF data on retu rn | |||
* \param[out] ds pointer to variable to hold the number of bytes of | * \param[out] ds pointer to variable to hold the number of bytes of | |||
* data at d, or set to 0 on error | * data at d, or set to 0 on error | |||
*/ | */ | |||
void exif_data_save_data (ExifData *data, unsigned char **d, | void exif_data_save_data (ExifData *data, unsigned char **d, | |||
unsigned int *ds); | unsigned int *ds); | |||
void exif_data_ref (ExifData *data); | void exif_data_ref (ExifData *data); | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 3 lines changed or added | |||
exif-tag.h | exif-tag.h | |||
---|---|---|---|---|
skipping to change at line 150 | skipping to change at line 150 | |||
EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM = 0xa405, | EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM = 0xa405, | |||
EXIF_TAG_SCENE_CAPTURE_TYPE = 0xa406, | EXIF_TAG_SCENE_CAPTURE_TYPE = 0xa406, | |||
EXIF_TAG_GAIN_CONTROL = 0xa407, | EXIF_TAG_GAIN_CONTROL = 0xa407, | |||
EXIF_TAG_CONTRAST = 0xa408, | EXIF_TAG_CONTRAST = 0xa408, | |||
EXIF_TAG_SATURATION = 0xa409, | EXIF_TAG_SATURATION = 0xa409, | |||
EXIF_TAG_SHARPNESS = 0xa40a, | EXIF_TAG_SHARPNESS = 0xa40a, | |||
EXIF_TAG_DEVICE_SETTING_DESCRIPTION = 0xa40b, | EXIF_TAG_DEVICE_SETTING_DESCRIPTION = 0xa40b, | |||
EXIF_TAG_SUBJECT_DISTANCE_RANGE = 0xa40c, | EXIF_TAG_SUBJECT_DISTANCE_RANGE = 0xa40c, | |||
EXIF_TAG_IMAGE_UNIQUE_ID = 0xa420, | EXIF_TAG_IMAGE_UNIQUE_ID = 0xa420, | |||
EXIF_TAG_GAMMA = 0xa500, | EXIF_TAG_GAMMA = 0xa500, | |||
EXIF_TAG_PRINT_IMAGE_MATCHING = 0xc4a5 | EXIF_TAG_PRINT_IMAGE_MATCHING = 0xc4a5, | |||
EXIF_TAG_PADDING = 0xea1c | ||||
} ExifTag; | } ExifTag; | |||
/* GPS tags overlap with above ones. */ | /* GPS tags overlap with above ones. */ | |||
#define EXIF_TAG_GPS_VERSION_ID 0x0000 | #define EXIF_TAG_GPS_VERSION_ID 0x0000 | |||
#define EXIF_TAG_GPS_LATITUDE_REF 0x0001 /* INTEROPERABILITY_INDEX * / | #define EXIF_TAG_GPS_LATITUDE_REF 0x0001 /* INTEROPERABILITY_INDEX * / | |||
#define EXIF_TAG_GPS_LATITUDE 0x0002 /* INTEROPERABILITY_VERSION * / | #define EXIF_TAG_GPS_LATITUDE 0x0002 /* INTEROPERABILITY_VERSION * / | |||
#define EXIF_TAG_GPS_LONGITUDE_REF 0x0003 | #define EXIF_TAG_GPS_LONGITUDE_REF 0x0003 | |||
#define EXIF_TAG_GPS_LONGITUDE 0x0004 | #define EXIF_TAG_GPS_LONGITUDE 0x0004 | |||
#define EXIF_TAG_GPS_ALTITUDE_REF 0x0005 | #define EXIF_TAG_GPS_ALTITUDE_REF 0x0005 | |||
#define EXIF_TAG_GPS_ALTITUDE 0x0006 | #define EXIF_TAG_GPS_ALTITUDE 0x0006 | |||
skipping to change at line 204 | skipping to change at line 205 | |||
/*! This tag is mandatory in the given IFD */ | /*! This tag is mandatory in the given IFD */ | |||
EXIF_SUPPORT_LEVEL_MANDATORY, | EXIF_SUPPORT_LEVEL_MANDATORY, | |||
/*! This tag is optional in the given IFD */ | /*! This tag is optional in the given IFD */ | |||
EXIF_SUPPORT_LEVEL_OPTIONAL | EXIF_SUPPORT_LEVEL_OPTIONAL | |||
} ExifSupportLevel; | } ExifSupportLevel; | |||
/*! Return the tag ID given its unique textual name. | /*! Return the tag ID given its unique textual name. | |||
* | * | |||
* \param[in] name tag name | * \param[in] name tag name | |||
* \return tag ID | * \return tag ID, or 0 if tag not found | |||
* \note The tag not found value cannot be distinguished from a legitimate | ||||
* tag number 0. | ||||
*/ | */ | |||
ExifTag exif_tag_from_name (const char *name); | ExifTag exif_tag_from_name (const char *name); | |||
/*! Return a textual name of the given tag when found in the given IFD. The | /*! Return a textual name of the given tag when found in the given IFD. The | |||
* name is a short, unique, non-localized text string containing only | * name is a short, unique, non-localized text string containing only | |||
* US-ASCII alphanumeric characters. | * US-ASCII alphanumeric characters. | |||
* | * | |||
* \param[in] tag EXIF tag | * \param[in] tag EXIF tag | |||
* \param[in] ifd IFD | * \param[in] ifd IFD | |||
* \return textual name of the tag, or NULL if the tag is unknown | * \return textual name of the tag, or NULL if the tag is unknown | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 5 lines changed or added | |||