exif-loader.h File Reference

#include <libexif/exif-data.h>
#include <libexif/exif-log.h>
#include <libexif/exif-mem.h>

Go to the source code of this file.

Typedefs

typedef struct
_ExifLoader 
ExifLoader
 Data used by the loader interface.

Functions

ExifLoaderexif_loader_new (void)
 Allocate a new ExifLoader.
ExifLoaderexif_loader_new_mem (ExifMem *mem)
 Allocate a new ExifLoader using the specified memory allocator.
void exif_loader_ref (ExifLoader *loader)
 Increase the refcount of the ExifLoader.
void exif_loader_unref (ExifLoader *loader)
 Decrease the refcount of the ExifLoader.
void exif_loader_write_file (ExifLoader *loader, const char *fname)
 Load a file into the given ExifLoader from the filesystem.
unsigned char exif_loader_write (ExifLoader *loader, unsigned char *buf, unsigned int sz)
 Load a buffer into the ExifLoader from a memory buffer.
void exif_loader_reset (ExifLoader *loader)
 Free any data previously loaded and reset the ExifLoader to its newly-initialized state.
ExifDataexif_loader_get_data (ExifLoader *loader)
 Create an ExifData from the data in the loader.
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_log (ExifLoader *loader, ExifLog *log)
 Set the log message object used by this ExifLoader.


Detailed Description

Defines the ExifLoader type

Definition in file exif-loader.h.


Typedef Documentation

typedef struct _ExifLoader ExifLoader

Data used by the loader interface.

Definition at line 35 of file exif-loader.h.


Function Documentation

void exif_loader_get_buf ( ExifLoader loader,
const unsigned char **  buf,
unsigned int *  buf_size 
)

Return the raw data read by the loader.

The returned pointer is only guaranteed to be valid until the next call to a function modifying this ExifLoader. Either or both of buf and buf_size may be NULL on entry, in which case that value is not returned.

Parameters:
[in] loader the loader
[out] buf read-only pointer to the data read by the loader, or NULL in case of error
[out] buf_size size of the data at buf, or 0 in case of error

Definition at line 407 of file exif-loader.c.

References _ExifLoader::buf, _ExifLoader::bytes_read, _ExifLoader::data_format, EL_DATA_FORMAT_UNKNOWN, exif_log(), EXIF_LOG_CODE_DEBUG, and _ExifLoader::log.

ExifData* exif_loader_get_data ( ExifLoader loader  ) 

Create an ExifData from the data in the loader.

The loader must already contain data from a previous call to exif_loader_write_file or exif_loader_write.

Note:
The ExifData returned is created using its default options, which may take effect before the data is returned. If other options are desired, an ExifData must be created explicitly and data extracted from the loader using exif_loader_get_buf instead.
Parameters:
[in] loader the loader
Returns:
allocated ExifData
See also:
exif_loader_get_buf

Definition at line 391 of file exif-loader.c.

References _ExifLoader::buf, _ExifLoader::bytes_read, _ExifLoader::data_format, EL_DATA_FORMAT_UNKNOWN, exif_data_load_data(), exif_data_log(), exif_data_new_mem(), _ExifLoader::log, and _ExifLoader::mem.

void exif_loader_log ( ExifLoader loader,
ExifLog log 
)

Set the log message object used by this ExifLoader.

Parameters:
[in] loader the loader
[in] log ExifLog

Definition at line 427 of file exif-loader.c.

References exif_log_ref(), exif_log_unref(), and _ExifLoader::log.

ExifLoader* exif_loader_new ( void   ) 

Allocate a new ExifLoader.

Returns:
allocated ExifLoader

Definition at line 317 of file exif-loader.c.

References exif_loader_new_mem(), exif_mem_new_default(), and exif_mem_unref().

ExifLoader* exif_loader_new_mem ( ExifMem mem  ) 

Allocate a new ExifLoader using the specified memory allocator.

Parameters:
[in] mem the ExifMem
Returns:
allocated ExifLoader

Definition at line 328 of file exif-loader.c.

References exif_mem_alloc(), exif_mem_ref(), _ExifLoader::mem, and _ExifLoader::ref_count.

void exif_loader_ref ( ExifLoader loader  ) 

Increase the refcount of the ExifLoader.

Parameters:
[in] loader the ExifLoader to increase the refcount of.

Definition at line 347 of file exif-loader.c.

References _ExifLoader::ref_count.

void exif_loader_reset ( ExifLoader loader  ) 

Free any data previously loaded and reset the ExifLoader to its newly-initialized state.

Parameters:
[in] loader the loader

Definition at line 378 of file exif-loader.c.

References _ExifLoader::b_len, _ExifLoader::buf, _ExifLoader::bytes_read, _ExifLoader::data_format, EL_DATA_FORMAT_UNKNOWN, exif_mem_free(), _ExifLoader::mem, _ExifLoader::size, and _ExifLoader::state.

void exif_loader_unref ( ExifLoader loader  ) 

Decrease the refcount of the ExifLoader.

If the refcount reaches 0, the loader is freed.

Parameters:
[in] loader ExifLoader for which to decrease the refcount

Definition at line 369 of file exif-loader.c.

References exif_loader_free(), and _ExifLoader::ref_count.

unsigned char exif_loader_write ( ExifLoader loader,
unsigned char *  buf,
unsigned int  sz 
)

Load a buffer into the ExifLoader from a memory buffer.

The relevant data is copied in raw form into the ExifLoader.

Parameters:
[in] loader loader to write to
[in] buf buffer to read from
[in] sz size of the buffer
Returns:
1 while EXIF data is read (or while there is still hope that there will be EXIF data later on), 0 otherwise.

Definition at line 153 of file exif-loader.c.

References _, _ExifLoader::b, _ExifLoader::b_len, _ExifLoader::data_format, EL_DATA_FORMAT_EXIF, EL_DATA_FORMAT_FUJI_RAW, EL_DATA_FORMAT_JPEG, EL_DATA_FORMAT_UNKNOWN, EL_EXIF_FOUND, EL_READ, EL_READ_SIZE_BYTE_00, EL_READ_SIZE_BYTE_08, EL_READ_SIZE_BYTE_16, EL_READ_SIZE_BYTE_24, EL_SKIP_BYTES, exif_loader_copy(), exif_loader_reset(), exif_loader_write(), exif_log(), EXIF_LOG_CODE_CORRUPT_DATA, EXIF_LOG_CODE_DEBUG, ExifHeader, JPEG_MARKER_APP0, JPEG_MARKER_APP1, JPEG_MARKER_APP13, JPEG_MARKER_APP2, JPEG_MARKER_COM, JPEG_MARKER_DHT, JPEG_MARKER_DQT, JPEG_MARKER_SOI, _ExifLoader::log, MAX, MIN, _ExifLoader::size, and _ExifLoader::state.

void exif_loader_write_file ( ExifLoader loader,
const char *  fname 
)

Load a file into the given ExifLoader from the filesystem.

The relevant data is copied in raw form into the ExifLoader.

Parameters:
[in] loader loader to write to
[in] fname path to the file to read

Definition at line 107 of file exif-loader.c.

References _, exif_loader_write(), exif_log(), EXIF_LOG_CODE_NONE, _ExifLoader::log, and size.


SourceForge.net Logo Generated by doxygen