mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Allow setting resolution in DPI for Tiff.
This commit is contained in:
parent
edae3dbf1d
commit
fc5299e9b7
@ -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,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user