mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-03-04 11:38:19 +00:00
Allow setting resolution in DPI for Tiff.
This commit is contained in:
parent
edae3dbf1d
commit
fc5299e9b7
@ -29,6 +29,7 @@
|
|||||||
#if CONFIG_ZLIB
|
#if CONFIG_ZLIB
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include "libavutil/opt.h"
|
||||||
#include "bytestream.h"
|
#include "bytestream.h"
|
||||||
#include "tiff.h"
|
#include "tiff.h"
|
||||||
#include "rle.h"
|
#include "rle.h"
|
||||||
@ -61,6 +62,7 @@ typedef struct TiffEncoderContext {
|
|||||||
int buf_size; ///< buffer size
|
int buf_size; ///< buffer size
|
||||||
uint16_t subsampling[2]; ///< YUV subsampling factors
|
uint16_t subsampling[2]; ///< YUV subsampling factors
|
||||||
struct LZWEncodeState *lzws; ///< LZW Encode state
|
struct LZWEncodeState *lzws; ///< LZW Encode state
|
||||||
|
uint32_t dpi; ///< image resolution in DPI
|
||||||
} TiffEncoderContext;
|
} TiffEncoderContext;
|
||||||
|
|
||||||
|
|
||||||
@ -210,7 +212,7 @@ static int encode_frame(AVCodecContext * avctx, unsigned char *buf,
|
|||||||
uint32_t *strip_sizes = NULL;
|
uint32_t *strip_sizes = NULL;
|
||||||
uint32_t *strip_offsets = NULL;
|
uint32_t *strip_offsets = NULL;
|
||||||
int bytes_per_row;
|
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 };
|
uint16_t bpp_tab[] = { 8, 8, 8, 8 };
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int is_yuv = 0;
|
int is_yuv = 0;
|
||||||
@ -441,6 +443,12 @@ fail:
|
|||||||
return ret;
|
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 = {
|
AVCodec ff_tiff_encoder = {
|
||||||
.name = "tiff",
|
.name = "tiff",
|
||||||
.type = AVMEDIA_TYPE_VIDEO,
|
.type = AVMEDIA_TYPE_VIDEO,
|
||||||
@ -455,4 +463,5 @@ AVCodec ff_tiff_encoder = {
|
|||||||
PIX_FMT_YUV411P,
|
PIX_FMT_YUV411P,
|
||||||
PIX_FMT_NONE},
|
PIX_FMT_NONE},
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
|
.long_name = NULL_IF_CONFIG_SMALL("TIFF image"),
|
||||||
|
.priv_class= &class,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user