#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 | 
| Defines | |
| #define | TIFF_MAX_ENTRY 32 | 
| #define | OFFSET(x) offsetof(TiffEncoderContext, x) | 
| #define | VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM | 
| 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 | 
Definition in file tiffenc.c.
| #define OFFSET | ( | x | ) | offsetof(TiffEncoderContext, x) | 
| #define TIFF_MAX_ENTRY 32 | 
| #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM | 
| 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.
| s | Tiff context | |
| tag | Tag that identifies the entry | |
| type | Entry type | |
| count | The number of values | |
| ptr_val | Pointer to values | 
Definition at line 117 of file tiffenc.c.
Referenced by add_entry1().
| static void add_entry1 | ( | TiffEncoderContext * | s, | |
| enum TiffTags | tag, | |||
| enum TiffTypes | type, | |||
| int | val | |||
| ) |  [static] | 
| static int check_size | ( | TiffEncoderContext * | s, | |
| uint64_t | need | |||
| ) |  [inline, static] | 
Check free space in buffer.
| s | Tiff context | |
| need | Needed bytes | 
Definition at line 79 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] | 
| static int encode_strip | ( | TiffEncoderContext * | s, | |
| const int8_t * | src, | |||
| uint8_t * | dst, | |||
| int | n, | |||
| int | compr | |||
| ) |  [static] | 
| static void pack_yuv | ( | TiffEncoderContext * | s, | |
| uint8_t * | dst, | |||
| int | lnum | |||
| ) |  [static] | 
| static void tnput | ( | uint8_t ** | p, | |
| int | n, | |||
| const uint8_t * | val, | |||
| enum TiffTypes | type, | |||
| int | flip | |||
| ) |  [static] | 
Put n values to buffer.
| p | Pointer to pointer to output buffer | |
| n | Number of values | |
| val | Pointer to values | |
| type | Type of values | |
| flip | =0 - normal copy, >0 - flip | 
Definition at line 98 of file tiffenc.c.
Referenced by add_entry().
Initial value:
 {
    .name           = "tiff",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_TIFF,
    .priv_data_size = sizeof(TiffEncoderContext),
    .encode         = encode_frame,
    .pix_fmts =
        (const enum PixelFormat[]) {PIX_FMT_RGB24, PIX_FMT_PAL8, PIX_FMT_GRAY8,
                              PIX_FMT_MONOBLACK, PIX_FMT_MONOWHITE,
                              PIX_FMT_YUV420P, PIX_FMT_YUV422P,
                              PIX_FMT_YUV444P, PIX_FMT_YUV410P,
                              PIX_FMT_YUV411P, PIX_FMT_RGB48LE,
                              PIX_FMT_RGBA, PIX_FMT_RGBA64LE, PIX_FMT_NONE},
    .long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
    .priv_class     = &tiffenc_class,
}
Initial value:
 {
    {"dpi", "set the image resolution (in dpi)", OFFSET(dpi), AV_OPT_TYPE_INT, {.dbl = 72}, 1, 0x10000, AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_ENCODING_PARAM},
    { "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 },
}
| const AVClass tiffenc_class  [static] | 
Initial value:
 {
    .class_name = "TIFF encoder",
    .item_name  = av_default_item_name,
    .option     = options,
    .version    = LIBAVUTIL_VERSION_INT,
}
| const uint8_t type_sizes2[6]  [static] | 
Initial value:
 {
    0, 1, 1, 2, 4, 8
}
Definition at line 45 of file tiffenc.c.
Referenced by add_entry(), and tnput().
 1.5.8
 1.5.8