libavcodec/tiff.c File Reference

TIFF image decoder. More...

#include "avcodec.h"
#include "bytestream.h"
#include "config.h"
#include "lzw.h"
#include "tiff.h"
#include "tiff_data.h"
#include "faxcompr.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/imgutils.h"
#include "libavutil/avstring.h"

Go to the source code of this file.

Data Structures

struct  TiffContext

Defines

#define RET_GEOKEY(TYPE, array, element)
#define RET_GEOKEY_VAL(TYPE, array)
#define ADD_METADATA(count, name, sep)

Functions

static unsigned tget_short (GetByteContext *gb, int le)
static unsigned tget_long (GetByteContext *gb, int le)
static double tget_double (GetByteContext *gb, int le)
static unsigned tget (GetByteContext *gb, int type, int le)
static void free_geotags (TiffContext *const s)
static const char * get_geokey_name (int key)
static int get_geokey_type (int key)
static int cmp_id_key (const void *id, const void *k)
static const char * search_keyval (const TiffGeoTagKeyName *keys, int n, int id)
static char * get_geokey_val (int key, int val)
static char * doubles2str (double *dp, int count, const char *sep)
static char * shorts2str (int16_t *sp, int count, const char *sep)
static int add_doubles_metadata (int count, const char *name, const char *sep, TiffContext *s)
static int add_shorts_metadata (int count, const char *name, const char *sep, TiffContext *s)
static int add_string_metadata (int count, const char *name, TiffContext *s)
static int add_metadata (int count, int type, const char *name, const char *sep, TiffContext *s)
static void av_always_inline horizontal_fill (unsigned int bpp, uint8_t *dst, int usePtr, const uint8_t *src, uint8_t c, int width, int offset)
static int tiff_unpack_strip (TiffContext *s, uint8_t *dst, int stride, const uint8_t *src, int size, int lines)
static int init_image (TiffContext *s)
static int tiff_decode_tag (TiffContext *s)
static int decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int tiff_init (AVCodecContext *avctx)
static av_cold int tiff_end (AVCodecContext *avctx)

Variables

AVCodec ff_tiff_decoder


Detailed Description

TIFF image decoder.

Author:
Konstantin Shishkov

Definition in file tiff.c.


Define Documentation

#define ADD_METADATA ( count,
name,
sep   ) 

Value:

if (ret = add_metadata(count, type, name, sep, s) < 0) {\
        av_log(s->avctx, AV_LOG_ERROR, "Error allocating temporary buffer\n");\
        return ret;\
    }

Referenced by tiff_decode_tag().

#define RET_GEOKEY ( TYPE,
array,
element   ) 

Value:

if (key >= TIFF_##TYPE##_KEY_ID_OFFSET &&\
        key - TIFF_##TYPE##_KEY_ID_OFFSET < FF_ARRAY_ELEMS(ff_tiff_##array##_name_type_map))\
        return ff_tiff_##array##_name_type_map[key - TIFF_##TYPE##_KEY_ID_OFFSET].element;

Definition at line 105 of file tiff.c.

Referenced by get_geokey_name(), and get_geokey_type().

#define RET_GEOKEY_VAL ( TYPE,
array   ) 

Value:

if (val >= TIFF_##TYPE##_OFFSET &&\
        val - TIFF_##TYPE##_OFFSET < FF_ARRAY_ELEMS(ff_tiff_##array##_codes))\
        return av_strdup(ff_tiff_##array##_codes[val - TIFF_##TYPE##_OFFSET]);

Referenced by get_geokey_val().


Function Documentation

static int add_doubles_metadata ( int  count,
const char *  name,
const char *  sep,
TiffContext s 
) [static]

Definition at line 245 of file tiff.c.

Referenced by add_metadata().

static int add_metadata ( int  count,
int  type,
const char *  name,
const char *  sep,
TiffContext s 
) [static]

Definition at line 317 of file tiff.c.

Referenced by vqf_read_header().

static int add_shorts_metadata ( int  count,
const char *  name,
const char *  sep,
TiffContext s 
) [static]

Definition at line 272 of file tiff.c.

Referenced by add_metadata().

static int add_string_metadata ( int  count,
const char *  name,
TiffContext s 
) [static]

Definition at line 298 of file tiff.c.

Referenced by add_metadata().

static int cmp_id_key ( const void *  id,
const void *  k 
) [static]

Definition at line 130 of file tiff.c.

Referenced by search_keyval().

static int decode_frame ( AVCodecContext avctx,
void *  data,
int data_size,
AVPacket avpkt 
) [static]

Definition at line 981 of file tiff.c.

static char* doubles2str ( double *  dp,
int  count,
const char *  sep 
) [static]

Definition at line 206 of file tiff.c.

Referenced by add_doubles_metadata(), and tiff_decode_tag().

static void free_geotags ( TiffContext *const   s  )  [static]

Definition at line 95 of file tiff.c.

Referenced by decode_frame(), and tiff_end().

static const char* get_geokey_name ( int  key  )  [static]

Definition at line 110 of file tiff.c.

Referenced by decode_frame().

static int get_geokey_type ( int  key  )  [static]

Definition at line 120 of file tiff.c.

Referenced by decode_frame().

static char* get_geokey_val ( int  key,
int  val 
) [static]

Definition at line 140 of file tiff.c.

Referenced by tiff_decode_tag().

static void av_always_inline horizontal_fill ( unsigned int  bpp,
uint8_t dst,
int  usePtr,
const uint8_t src,
uint8_t  c,
int  width,
int  offset 
) [static]

Definition at line 351 of file tiff.c.

Referenced by tiff_unpack_strip().

static int init_image ( TiffContext s  )  [static]

Definition at line 549 of file tiff.c.

Referenced by decode_frame().

static const char* search_keyval ( const TiffGeoTagKeyName keys,
int  n,
int  id 
) [static]

Definition at line 135 of file tiff.c.

Referenced by get_geokey_val().

static char* shorts2str ( int16_t sp,
int  count,
const char *  sep 
) [static]

Definition at line 227 of file tiff.c.

Referenced by add_shorts_metadata().

static unsigned tget ( GetByteContext gb,
int  type,
int  le 
) [static]

Definition at line 85 of file tiff.c.

Referenced by decode_frame(), and tiff_decode_tag().

static double tget_double ( GetByteContext gb,
int  le 
) [static]

Definition at line 79 of file tiff.c.

Referenced by add_doubles_metadata(), and tiff_decode_tag().

static unsigned tget_long ( GetByteContext gb,
int  le 
) [static]

Definition at line 73 of file tiff.c.

Referenced by decode_frame(), tget(), and tiff_decode_tag().

static unsigned tget_short ( GetByteContext gb,
int  le 
) [static]

Definition at line 67 of file tiff.c.

Referenced by add_shorts_metadata(), decode_frame(), tget(), and tiff_decode_tag().

static int tiff_decode_tag ( TiffContext s  )  [static]

Definition at line 613 of file tiff.c.

Referenced by decode_frame().

static av_cold int tiff_end ( AVCodecContext avctx  )  [static]

Definition at line 1163 of file tiff.c.

static av_cold int tiff_init ( AVCodecContext avctx  )  [static]

Definition at line 1148 of file tiff.c.

static int tiff_unpack_strip ( TiffContext s,
uint8_t dst,
int  stride,
const uint8_t src,
int  size,
int  lines 
) [static]

Definition at line 391 of file tiff.c.

Referenced by decode_frame().


Variable Documentation

Initial value:

 {
    .name           = "tiff",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_TIFF,
    .priv_data_size = sizeof(TiffContext),
    .init           = tiff_init,
    .close          = tiff_end,
    .decode         = decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .long_name      = NULL_IF_CONFIG_SMALL("TIFF image"),
}

Definition at line 1177 of file tiff.c.


Generated on Fri Oct 26 02:50:07 2012 for FFmpeg by  doxygen 1.5.8