FFmpeg
Enumerations | Functions | Variables
tiff_common.h File Reference
#include <stdint.h>
#include "libavutil/dict.h"
#include "bytestream.h"

Go to the source code of this file.

Enumerations

enum  TiffTypes {
  TIFF_BYTE = 1, TIFF_STRING, TIFF_SHORT, TIFF_LONG,
  TIFF_RATIONAL, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SSHORT,
  TIFF_SLONG, TIFF_SRATIONAL, TIFF_FLOAT, TIFF_DOUBLE,
  TIFF_IFD
}
 data type identifiers for TIFF tags More...
 

Functions

int ff_tis_ifd (unsigned tag)
 Returns a value > 0 if the tag is a known IFD-tag. More...
 
unsigned ff_tget_short (GetByteContext *gb, int le)
 Reads a short from the bytestream using given endianness. More...
 
unsigned ff_tget_long (GetByteContext *gb, int le)
 Reads a long from the bytestream using given endianness. More...
 
double ff_tget_double (GetByteContext *gb, int le)
 Reads a double from the bytestream using given endianness. More...
 
unsigned ff_tget (GetByteContext *gb, int type, int le)
 Reads a byte from the bytestream using given endianness. More...
 
int ff_tadd_rational_metadata (int count, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
 Adds count rationals converted to a string into the metadata dictionary. More...
 
int ff_tadd_long_metadata (int count, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
 Adds count longs converted to a string into the metadata dictionary. More...
 
int ff_tadd_doubles_metadata (int count, const char *name, const char *sep, GetByteContext *gb, int le, AVDictionary **metadata)
 Adds count doubles converted to a string into the metadata dictionary. More...
 
int ff_tadd_shorts_metadata (int count, const char *name, const char *sep, GetByteContext *gb, int le, int is_signed, AVDictionary **metadata)
 Adds count shorts converted to a string into the metadata dictionary. More...
 
int ff_tadd_bytes_metadata (int count, const char *name, const char *sep, GetByteContext *gb, int le, int is_signed, AVDictionary **metadata)
 Adds count bytes converted to a string into the metadata dictionary. More...
 
int ff_tadd_string_metadata (int count, const char *name, GetByteContext *gb, int le, AVDictionary **metadata)
 Adds a string of count characters into the metadata dictionary. More...
 
int ff_tdecode_header (GetByteContext *gb, int *le, int *ifd_offset)
 Decodes a TIFF header from the input bytestream and sets the endianness in *le and the offset to the first IFD in *ifd_offset accordingly. More...
 
int ff_tread_tag (GetByteContext *gb, int le, unsigned *tag, unsigned *type, unsigned *count, int *next)
 Reads the first 3 fields of a TIFF tag, which are the tag id, the tag type and the count of values for that tag. More...
 

Variables

static const uint8_t type_sizes [14]
 sizes of various TIFF field types (string size = 100) More...
 
static const uint16_t ifd_tags []
 

Detailed Description

TIFF Common Routines

Author
Thilo Borgmann <thilo.borgmann at mail.de>

Definition in file tiff_common.h.

Enumeration Type Documentation

◆ TiffTypes

enum TiffTypes

data type identifiers for TIFF tags

Enumerator
TIFF_BYTE 
TIFF_STRING 
TIFF_SHORT 
TIFF_LONG 
TIFF_RATIONAL 
TIFF_SBYTE 
TIFF_UNDEFINED 
TIFF_SSHORT 
TIFF_SLONG 
TIFF_SRATIONAL 
TIFF_FLOAT 
TIFF_DOUBLE 
TIFF_IFD 

Definition at line 36 of file tiff_common.h.

Function Documentation

◆ ff_tis_ifd()

int ff_tis_ifd ( unsigned  tag)

Returns a value > 0 if the tag is a known IFD-tag.

The return value is the array index + 1 within ifd_tags[].

Definition at line 32 of file tiff_common.c.

Referenced by exif_decode_tag(), and ff_tread_tag().

◆ ff_tget_short()

unsigned ff_tget_short ( GetByteContext gb,
int  le 
)

Reads a short from the bytestream using given endianness.

Definition at line 44 of file tiff_common.c.

Referenced by decode_frame(), ff_exif_decode_ifd(), ff_tadd_shorts_metadata(), ff_tdecode_header(), ff_tget(), ff_tread_tag(), and tiff_decode_tag().

◆ ff_tget_long()

unsigned ff_tget_long ( GetByteContext gb,
int  le 
)

Reads a long from the bytestream using given endianness.

Definition at line 50 of file tiff_common.c.

Referenced by decode_frame(), dng_decode_tiles(), ff_exif_decode_ifd(), ff_tadd_long_metadata(), ff_tadd_rational_metadata(), ff_tdecode_header(), ff_tget(), ff_tread_tag(), and tiff_decode_tag().

◆ ff_tget_double()

double ff_tget_double ( GetByteContext gb,
int  le 
)

Reads a double from the bytestream using given endianness.

Definition at line 56 of file tiff_common.c.

Referenced by ff_tadd_doubles_metadata(), and tiff_decode_tag().

◆ ff_tget()

unsigned ff_tget ( GetByteContext gb,
int  type,
int  le 
)

Reads a byte from the bytestream using given endianness.

Definition at line 63 of file tiff_common.c.

Referenced by decode_frame(), and tiff_decode_tag().

◆ ff_tadd_rational_metadata()

int ff_tadd_rational_metadata ( int  count,
const char *  name,
const char *  sep,
GetByteContext gb,
int  le,
AVDictionary **  metadata 
)

Adds count rationals converted to a string into the metadata dictionary.

Definition at line 99 of file tiff_common.c.

Referenced by exif_add_metadata().

◆ ff_tadd_long_metadata()

int ff_tadd_long_metadata ( int  count,
const char *  name,
const char *  sep,
GetByteContext gb,
int  le,
AVDictionary **  metadata 
)

Adds count longs converted to a string into the metadata dictionary.

Definition at line 123 of file tiff_common.c.

Referenced by exif_add_metadata().

◆ ff_tadd_doubles_metadata()

int ff_tadd_doubles_metadata ( int  count,
const char *  name,
const char *  sep,
GetByteContext gb,
int  le,
AVDictionary **  metadata 
)

Adds count doubles converted to a string into the metadata dictionary.

Definition at line 144 of file tiff_common.c.

Referenced by add_metadata(), and exif_add_metadata().

◆ ff_tadd_shorts_metadata()

int ff_tadd_shorts_metadata ( int  count,
const char *  name,
const char *  sep,
GetByteContext gb,
int  le,
int  is_signed,
AVDictionary **  metadata 
)

Adds count shorts converted to a string into the metadata dictionary.

Definition at line 165 of file tiff_common.c.

Referenced by add_metadata(), and exif_add_metadata().

◆ ff_tadd_bytes_metadata()

int ff_tadd_bytes_metadata ( int  count,
const char *  name,
const char *  sep,
GetByteContext gb,
int  le,
int  is_signed,
AVDictionary **  metadata 
)

Adds count bytes converted to a string into the metadata dictionary.

Definition at line 187 of file tiff_common.c.

Referenced by exif_add_metadata().

◆ ff_tadd_string_metadata()

int ff_tadd_string_metadata ( int  count,
const char *  name,
GetByteContext gb,
int  le,
AVDictionary **  metadata 
)

Adds a string of count characters into the metadata dictionary.

Definition at line 208 of file tiff_common.c.

Referenced by add_metadata(), and exif_add_metadata().

◆ ff_tdecode_header()

int ff_tdecode_header ( GetByteContext gb,
int le,
int ifd_offset 
)

Decodes a TIFF header from the input bytestream and sets the endianness in *le and the offset to the first IFD in *ifd_offset accordingly.

Definition at line 228 of file tiff_common.c.

Referenced by decode_frame(), mjpeg_decode_app(), and webp_decode_frame().

◆ ff_tread_tag()

int ff_tread_tag ( GetByteContext gb,
int  le,
unsigned *  tag,
unsigned *  type,
unsigned *  count,
int next 
)

Reads the first 3 fields of a TIFF tag, which are the tag id, the tag type and the count of values for that tag.

Afterwards the bytestream is located at the first value to read and *next holds the bytestream offset of the following tag.

Definition at line 253 of file tiff_common.c.

Referenced by exif_decode_tag(), and tiff_decode_tag().

Variable Documentation

◆ type_sizes

const uint8_t type_sizes[14]
static
Initial value:
= {
0, 1, 100, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 4
}

sizes of various TIFF field types (string size = 100)

Definition at line 53 of file tiff_common.h.

Referenced by add_entry(), ff_tread_tag(), and tiff_decode_tag().

◆ ifd_tags

const uint16_t ifd_tags[]
static
Initial value:
= {
0x8769,
0x8825,
0xA005
}

Definition at line 57 of file tiff_common.h.

Referenced by ff_tis_ifd().