36 const unsigned char *ccp;
41 fprintf(stderr,
"Unexpected success in %s\n",
"exif_loader_new_mem");
55 fprintf(stderr,
"Unexpected success in %s\n",
"exif_loader_write");
65 fprintf(stderr,
"Unexpected success in %s\n",
"exif_loader_get_data");
75 fprintf(stderr,
"Out of memory\n");
106 fprintf(stderr,
"Unexpected success in %s\n",
"exif_data_new_mem");
122 fprintf(stderr,
"Unexpected success in %s\n",
"exif_data_get_mnote_data");
153 fprintf(stderr,
"Out of memory\n");
177 fprintf(stderr,
"Unexpected success in %s\n",
"exif_content_new_mem");
206 fprintf(stderr,
"Out of memory\n");
224 const char *v = NULL;
230 fprintf(stderr,
"Unexpected success in %s\n",
"exif_entry_new_mem");
246 fprintf(stderr,
"Unexpected success in %s\n",
"exif_entry_get_value");
252 fprintf(stderr,
"Unexpected value in %s\n",
"exif_entry_get_value");
263 fprintf(stderr,
"Out of memory\n");
313 fprintf(stderr,
"Unexpected success in %s\n",
"exif_log_new_mem");
331 fprintf(stderr,
"Out of memory\n");
ExifByteOrder
Which byte order to use.
@ EXIF_BYTE_ORDER_MOTOROLA
Big-endian byte order.
void exif_content_remove_entry(ExifContent *c, ExifEntry *e)
Remove an EXIF tag from an IFD.
ExifIfd exif_content_get_ifd(ExifContent *c)
Return the IFD number in which the given ExifContent is found.
void exif_content_fix(ExifContent *c)
Fix the IFD to bring it into specification.
void exif_content_ref(ExifContent *content)
Increase reference counter for ExifContent.
void exif_content_unref(ExifContent *content)
Decrease reference counter for ExifContent.
void exif_content_add_entry(ExifContent *c, ExifEntry *entry)
Add an EXIF tag to an IFD.
ExifContent * exif_content_new_mem(ExifMem *mem)
Reserve memory for and initialize new ExifContent using the specified memory allocator.
void exif_content_dump(ExifContent *content, unsigned int indent)
Dump contents of the IFD to stdout.
ExifEntry * exif_content_get_entry(ExifContent *content, ExifTag tag)
Return the ExifEntry in this IFD corresponding to the given tag.
void exif_content_log(ExifContent *content, ExifLog *log)
Set the log message object for this IFD.
ExifContent * exif_content_new(void)
Reserve memory for and initialize a new ExifContent.
void exif_content_foreach_entry(ExifContent *content, ExifContentForeachEntryFunc func, void *data)
Executes function on each EXIF tag in this IFD in turn.
void exif_content_free(ExifContent *content)
Actually free the ExifContent.
ExifDataType
Represents the type of image data to which the EXIF data applies.
@ EXIF_DATA_TYPE_UNCOMPRESSED_CHUNKY
void exif_data_set_byte_order(ExifData *data, ExifByteOrder order)
Set the byte order to use for this EXIF data.
ExifData * exif_data_new(void)
Allocate a new ExifData.
void exif_data_unref(ExifData *data)
ExifByteOrder exif_data_get_byte_order(ExifData *data)
Return the byte order in use by this EXIF structure.
void exif_data_ref(ExifData *data)
void exif_data_load_data(ExifData *data, const unsigned char *d_orig, unsigned int ds)
Load the ExifData structure from the raw JPEG or EXIF data in the given memory buffer.
ExifDataType exif_data_get_data_type(ExifData *d)
Return the data type for the given ExifData.
ExifData * exif_data_new_from_data(const unsigned char *data, unsigned int size)
Allocate a new ExifData and load EXIF data from a memory buffer.
ExifMnoteData * exif_data_get_mnote_data(ExifData *d)
Return the MakerNote data out of the EXIF data.
void exif_data_fix(ExifData *d)
Fix the EXIF data to bring it into specification.
void exif_data_dump(ExifData *data)
Dump all EXIF data to stdout.
ExifData * exif_data_new_mem(ExifMem *mem)
Allocate a new ExifData using the given memory allocator.
void exif_data_unset_option(ExifData *d, ExifDataOption o)
Clear the given option on the given ExifData.
void exif_data_set_data_type(ExifData *d, ExifDataType dt)
Set the data type for the given ExifData.
void exif_data_save_data(ExifData *data, unsigned char **d, unsigned int *ds)
Store raw EXIF data representing the ExifData structure into a memory buffer.
void exif_data_foreach_content(ExifData *data, ExifDataForeachContentFunc func, void *user_data)
Execute a function on each IFD in turn.
void exif_data_log(ExifData *data, ExifLog *log)
Set the log message object for all IFDs.
void exif_data_set_option(ExifData *d, ExifDataOption o)
Set the given option on the given ExifData.
Defines the ExifData type and the associated functions.
@ EXIF_DATA_OPTION_FOLLOW_SPECIFICATION
Fix the EXIF tags to follow the spec.
void exif_entry_free(ExifEntry *e)
Actually free the ExifEntry.
ExifEntry * exif_entry_new_mem(ExifMem *mem)
Reserve memory for and initialize new ExifEntry using the specified memory allocator.
void exif_entry_unref(ExifEntry *e)
Decrease reference counter for ExifEntry.
void exif_entry_fix(ExifEntry *e)
Fix the type or format of the given EXIF entry to bring it into spec.
void exif_entry_initialize(ExifEntry *e, ExifTag tag)
Initialize an empty ExifEntry with default data in the correct format for the given tag.
void exif_entry_dump(ExifEntry *e, unsigned int indent)
Dump text representation of ExifEntry to stdout.
void exif_entry_ref(ExifEntry *e)
Increase reference counter for ExifEntry.
const char * exif_entry_get_value(ExifEntry *e, char *val, unsigned int maxlen)
Return a localized textual representation of the value of the EXIF entry.
ExifIfd
Possible EXIF Image File Directories.
void exif_loader_log(ExifLoader *loader, ExifLog *log)
Set the log message object used by this ExifLoader.
void exif_loader_reset(ExifLoader *loader)
Free any data previously loaded and reset the ExifLoader to its newly-initialized state.
ExifLoader * exif_loader_new(void)
Allocate a new ExifLoader.
void exif_loader_unref(ExifLoader *loader)
Decrease the refcount of the ExifLoader.
ExifLoader * exif_loader_new_mem(ExifMem *mem)
Allocate a new ExifLoader using the specified memory allocator.
ExifData * exif_loader_get_data(ExifLoader *loader)
Create an ExifData from the data in the loader.
unsigned char exif_loader_write(ExifLoader *eld, unsigned char *buf, unsigned int len)
Load a buffer into the ExifLoader from a memory buffer.
void exif_loader_ref(ExifLoader *loader)
Increase the refcount of the ExifLoader.
void exif_loader_get_buf(ExifLoader *loader, const unsigned char **buf, unsigned int *buf_size)
Return the raw data read by the loader.
void exif_loader_write_file(ExifLoader *l, const char *path)
Load a file into the given ExifLoader from the filesystem.
Defines the ExifLoader type.
void exif_log(ExifLog *log, ExifLogCode code, const char *domain, const char *format,...)
void exif_log_set_func(ExifLog *log, ExifLogFunc func, void *data)
Register log callback function.
void exif_log_unref(ExifLog *log)
ExifLog * exif_log_new(void)
Create a new logging instance.
void exif_logv(ExifLog *log, ExifLogCode code, const char *domain, const char *format, va_list args)
void exif_log_ref(ExifLog *log)
ExifLog * exif_log_new_mem(ExifMem *mem)
void exif_log_free(ExifLog *log)
Delete instance of ExifLog.
@ EXIF_LOG_CODE_CORRUPT_DATA
void exif_mnote_data_load(ExifMnoteData *d, const unsigned char *buf, unsigned int buf_size)
Load the MakerNote data from a memory buffer.
void exif_mnote_data_ref(ExifMnoteData *d)
char * exif_mnote_data_get_value(ExifMnoteData *d, unsigned int n, char *val, unsigned int maxlen)
Return a textual representation of the value of the MakerNote entry.
void exif_mnote_data_save(ExifMnoteData *d, unsigned char **buf, unsigned int *buf_size)
Save the raw MakerNote data into a memory buffer.
const char * exif_mnote_data_get_name(ExifMnoteData *d, unsigned int n)
Returns textual name of the given MakerNote tag.
unsigned int exif_mnote_data_get_id(ExifMnoteData *d, unsigned int n)
Return the MakerNote tag number for the tag at the specified index within the MakerNote.
const char * exif_mnote_data_get_description(ExifMnoteData *d, unsigned int n)
Returns verbose textual description of the given MakerNote tag.
const char * exif_mnote_data_get_title(ExifMnoteData *d, unsigned int n)
Returns textual title of the given MakerNote tag.
void exif_mnote_data_log(ExifMnoteData *d, ExifLog *log)
unsigned int exif_mnote_data_count(ExifMnoteData *d)
Return the number of tags in the MakerNote.
void exif_mnote_data_unref(ExifMnoteData *d)
Handling EXIF MakerNote tags.
Represents the entire EXIF data found in an image.
ExifContent * ifd[EXIF_IFD_COUNT]
Data for each IFD.
Data found in one EXIF tag.
static void log_null_test(void)
static void mnote_null_test(void)
static void data_null_test(void)
static void content_null_test(void)
static void loader_null_test(void)
static void entry_null_test(void)