tiffenc.c File Reference

TIFF image encoder. More...

#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "bytestream.h"
#include "tiff.h"
#include "rle.h"
#include "lzw.h"
#include "put_bits.h"

Go to the source code of this file.

Data Structures

struct  TiffEncoderContext

Macros

#define TIFF_MAX_ENTRY   32
#define OFFSET(x)   offsetof(TiffEncoderContext, x)
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM

Typedefs

typedef struct TiffEncoderContext TiffEncoderContext

Functions

static int check_size (TiffEncoderContext *s, uint64_t need)
 Check free space in buffer.
static void tnput (uint8_t **p, int n, const uint8_t *val, enum TiffTypes type, int flip)
 Put n values to buffer.
static void add_entry (TiffEncoderContext *s, enum TiffTags tag, enum TiffTypes type, int count, const void *ptr_val)
 Add entry to directory in tiff header.
static void add_entry1 (TiffEncoderContext *s, enum TiffTags tag, enum TiffTypes type, int val)
static int encode_strip (TiffEncoderContext *s, const int8_t *src, uint8_t *dst, int n, int compr)
 Encode one strip in tiff file.
static void pack_yuv (TiffEncoderContext *s, uint8_t *dst, int lnum)
static int encode_frame (AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data)

Variables

static const uint8_t type_sizes2 [6]
 sizes of various TIFF field types (string size = 1)
static const AVOption options []
static const AVClass tiffenc_class
AVCodec ff_tiff_encoder

Detailed Description

TIFF image encoder.

Author:
Bartlomiej Wolowiec

Definition in file tiffenc.c.


Macro Definition Documentation

#define OFFSET (   x)    offsetof(TiffEncoderContext, x)

Definition at line 470 of file tiffenc.c.

#define TIFF_MAX_ENTRY   32

Definition at line 41 of file tiffenc.c.

Referenced by add_entry().

Definition at line 471 of file tiffenc.c.


Typedef Documentation


Function Documentation

static void add_entry ( TiffEncoderContext s,
enum TiffTags  tag,
enum TiffTypes  type,
int  count,
const void ptr_val 
)
static

Add entry to directory in tiff header.

Parameters:
sTiff context
tagTag that identifies the entry
typeEntry type
countThe number of values
ptr_valPointer to values

Definition at line 115 of file tiffenc.c.

Referenced by add_entry1().

static void add_entry1 ( TiffEncoderContext s,
enum TiffTags  tag,
enum TiffTypes  type,
int  val 
)
static

Definition at line 138 of file tiffenc.c.

static int check_size ( TiffEncoderContext s,
uint64_t  need 
)
inlinestatic

Check free space in buffer.

Parameters:
sTiff context
needNeeded bytes
Returns:
0 - ok, 1 - no free space

Definition at line 77 of file tiffenc.c.

Referenced by add_entry(), and encode_strip().

static int encode_frame ( AVCodecContext avctx,
unsigned char *  buf,
int  buf_size,
void data 
)
static

according to CCIR Recommendation 601.1

Definition at line 203 of file tiffenc.c.

static int encode_strip ( TiffEncoderContext s,
const int8_t *  src,
uint8_t *  dst,
int  n,
int  compr 
)
static

Encode one strip in tiff file.

Parameters:
sTiff context
srcInput buffer
dstOutput buffer
nSize of input buffer
comprCompression method
Returns:
Number of output bytes. If an output error is encountered, -1 returned

Definition at line 155 of file tiffenc.c.

static void pack_yuv ( TiffEncoderContext s,
uint8_t *  dst,
int  lnum 
)
static

Definition at line 186 of file tiffenc.c.

static void tnput ( uint8_t **  p,
int  n,
const uint8_t *  val,
enum TiffTypes  type,
int  flip 
)
static

Put n values to buffer.

Parameters:
pPointer to pointer to output buffer
nNumber of values
valPointer to values
typeType of values
flip=0 - normal copy, >0 - flip

Definition at line 96 of file tiffenc.c.

Referenced by add_entry().


Variable Documentation

AVCodec ff_tiff_encoder
Initial value:
{
.name = "tiff",
.priv_data_size = sizeof(TiffEncoderContext),
.encode = encode_frame,
.pix_fmts =
.long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
.priv_class = &tiffenc_class,
}

Definition at line 490 of file tiffenc.c.

const AVOption options[]
static
Initial value:
{
{ "compression_algo", NULL, OFFSET(compr), AV_OPT_TYPE_INT, {TIFF_PACKBITS}, TIFF_RAW, TIFF_DEFLATE, VE, "compression_algo" },
{ "packbits", NULL, 0, AV_OPT_TYPE_CONST, {TIFF_PACKBITS}, 0, 0, VE, "compression_algo" },
{ "raw", NULL, 0, AV_OPT_TYPE_CONST, {TIFF_RAW}, 0, 0, VE, "compression_algo" },
{ "lzw", NULL, 0, AV_OPT_TYPE_CONST, {TIFF_LZW}, 0, 0, VE, "compression_algo" },
{ NULL },
}

Definition at line 472 of file tiffenc.c.

const AVClass tiffenc_class
static
Initial value:
{
.class_name = "TIFF encoder",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 483 of file tiffenc.c.

const uint8_t type_sizes2[6]
static
Initial value:
{
0, 1, 1, 2, 4, 8
}

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

Definition at line 44 of file tiffenc.c.

Referenced by add_entry(), and tnput().