|
|
@@ -29,6 +29,7 @@ |
|
|
|
#if CONFIG_ZLIB |
|
|
|
#include <zlib.h> |
|
|
|
#endif |
|
|
|
#include "libavutil/opt.h" |
|
|
|
#include "bytestream.h" |
|
|
|
#include "tiff.h" |
|
|
|
#include "rle.h" |
|
|
@@ -61,6 +62,7 @@ typedef struct TiffEncoderContext { |
|
|
|
int buf_size; ///< buffer size |
|
|
|
uint16_t subsampling[2]; ///< YUV subsampling factors |
|
|
|
struct LZWEncodeState *lzws; ///< LZW Encode state |
|
|
|
uint32_t dpi; ///< image resolution in DPI |
|
|
|
} TiffEncoderContext; |
|
|
|
|
|
|
|
|
|
|
@@ -210,7 +212,7 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf, |
|
|
|
uint32_t *strip_sizes = NULL; |
|
|
|
uint32_t *strip_offsets = NULL; |
|
|
|
int bytes_per_row; |
|
|
|
uint32_t res[2] = { 72, 1 }; // image resolution (72/1) |
|
|
|
uint32_t res[2] = { s->dpi, 1 }; // image resolution (72/1) |
|
|
|
uint16_t bpp_tab[] = { 8, 8, 8, 8 }; |
|
|
|
int ret = -1; |
|
|
|
int is_yuv = 0; |
|
|
@@ -441,6 +443,12 @@ fail: |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
static const AVOption options[]={ |
|
|
|
{"dpi", "set the image resolution (in dpi)", offsetof(TiffEncoderContext, dpi), FF_OPT_TYPE_INT, {.dbl = 72}, 1, 0x10000, AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_ENCODING_PARAM}, |
|
|
|
{NULL} |
|
|
|
}; |
|
|
|
static const AVClass class = { "tiff", av_default_item_name, options, LIBAVUTIL_VERSION_INT }; |
|
|
|
|
|
|
|
AVCodec ff_tiff_encoder = { |
|
|
|
.name = "tiff", |
|
|
|
.type = AVMEDIA_TYPE_VIDEO, |
|
|
@@ -455,4 +463,5 @@ AVCodec ff_tiff_encoder = { |
|
|
|
PIX_FMT_YUV411P, |
|
|
|
PIX_FMT_NONE}, |
|
|
|
.long_name = NULL_IF_CONFIG_SMALL("TIFF image"), |
|
|
|
.priv_class= &class, |
|
|
|
}; |