exif-loader.c File Reference

#include <config.h>
#include <libexif/exif-loader.h>
#include <libexif/i18n.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

Include dependency graph for exif-loader.c:

Go to the source code of this file.

Data Structures

struct  _ExifLoader

Defines

#define JPEG_MARKER_SOI   0xd8
#define JPEG_MARKER_APP0   0xe0
#define JPEG_MARKER_APP1   0xe1
#define JPEG_MARKER_APP13   0xed
#define JPEG_MARKER_COM   0xfe
#define MIN(a, b)   (((a) < (b)) ? (a) : (b))

Enumerations

enum  ExifLoaderState {
  EL_READ = 0, EL_READ_SIZE_BYTE_24, EL_READ_SIZE_BYTE_16, EL_READ_SIZE_BYTE_08,
  EL_READ_SIZE_BYTE_00, EL_SKIP_BYTES, EL_EXIF_FOUND
}
enum  ExifLoaderDataFormat { EL_DATA_FORMAT_UNKNOWN, EL_DATA_FORMAT_EXIF, EL_DATA_FORMAT_JPEG, EL_DATA_FORMAT_FUJI_RAW }

Functions

static void * exif_loader_alloc (ExifLoader *l, unsigned int i)
void exif_loader_write_file (ExifLoader *l, const char *path)
static unsigned int exif_loader_copy (ExifLoader *eld, unsigned char *buf, unsigned int len)
unsigned char exif_loader_write (ExifLoader *eld, unsigned char *buf, unsigned int len)
ExifLoaderexif_loader_new (void)
ExifLoaderexif_loader_new_mem (ExifMem *mem)
void exif_loader_ref (ExifLoader *loader)
static void exif_loader_free (ExifLoader *loader)
void exif_loader_unref (ExifLoader *loader)
void exif_loader_reset (ExifLoader *loader)
ExifDataexif_loader_get_data (ExifLoader *loader)
void exif_loader_log (ExifLoader *loader, ExifLog *log)

Variables

static const unsigned char ExifHeader [] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00}


Define Documentation

#define JPEG_MARKER_APP0   0xe0

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

#define JPEG_MARKER_APP1   0xe1

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

#define JPEG_MARKER_APP13   0xed

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

#define JPEG_MARKER_COM   0xfe

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

#define JPEG_MARKER_SOI   0xd8

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

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

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

Referenced by exif_entry_get_value(), exif_loader_copy(), exif_loader_write(), mnote_canon_entry_count_values(), mnote_canon_entry_get_value(), mnote_olympus_entry_get_value(), and mnote_pentax_entry_get_value().


Enumeration Type Documentation

enum ExifLoaderDataFormat

Enumerator:
EL_DATA_FORMAT_UNKNOWN 
EL_DATA_FORMAT_EXIF 
EL_DATA_FORMAT_JPEG 
EL_DATA_FORMAT_FUJI_RAW 

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

enum ExifLoaderState

Enumerator:
EL_READ 
EL_READ_SIZE_BYTE_24 
EL_READ_SIZE_BYTE_16 
EL_READ_SIZE_BYTE_08 
EL_READ_SIZE_BYTE_00 
EL_SKIP_BYTES 
EL_EXIF_FOUND 

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


Function Documentation

static void* exif_loader_alloc ( ExifLoader l,
unsigned int  i 
) [static]

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

References EXIF_LOG_NO_MEMORY, exif_mem_alloc(), _ExifLoader::log, and _ExifLoader::mem.

Referenced by exif_loader_copy().

static unsigned int exif_loader_copy ( ExifLoader eld,
unsigned char *  buf,
unsigned int  len 
) [static]

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

References _ExifLoader::buf, _ExifLoader::bytes_read, exif_loader_alloc(), MIN, and _ExifLoader::size.

Referenced by exif_loader_write().

static void exif_loader_free ( ExifLoader loader  )  [static]

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

References exif_loader_reset(), exif_mem_free(), exif_mem_unref(), and _ExifLoader::mem.

Referenced by exif_loader_unref().

ExifData* exif_loader_get_data ( ExifLoader loader  ) 

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

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

Referenced by exif_data_new_from_file().

void exif_loader_log ( ExifLoader loader,
ExifLog log 
)

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

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

ExifLoader* exif_loader_new ( void   ) 

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

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

Referenced by exif_data_new_from_file().

ExifLoader* exif_loader_new_mem ( ExifMem mem  ) 

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

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

Referenced by exif_loader_new().

void exif_loader_ref ( ExifLoader loader  ) 

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

References _ExifLoader::ref_count.

void exif_loader_reset ( ExifLoader loader  ) 

Definition at line 357 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.

Referenced by exif_loader_free().

void exif_loader_unref ( ExifLoader loader  ) 

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

References exif_loader_free(), and _ExifLoader::ref_count.

Referenced by exif_data_new_from_file().

unsigned char exif_loader_write ( ExifLoader eld,
unsigned char *  buf,
unsigned int  len 
)

Definition at line 144 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_log(), EXIF_LOG_CODE_DEBUG, ExifHeader, _ExifLoader::log, MIN, _ExifLoader::size, and _ExifLoader::state.

Referenced by exif_loader_write_file().

void exif_loader_write_file ( ExifLoader l,
const char *  path 
)

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

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

Referenced by exif_data_new_from_file().


Variable Documentation

const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00} [static]

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


Generated on Tue Dec 19 14:34:04 2006 for EXIF library (libexif) Internals by  doxygen 1.5.1