[FFmpeg-devel] [PATCH]Allow setting TIFF image resolution
Carl Eugen Hoyos
cehoyos at ag.or.at
Wed Aug 17 23:58:24 CEST 2011
Hi!
Please comment, I don't know much about options.
Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c
index d635e17..4f19a64 100644
--- a/libavcodec/tiffenc.c
+++ b/libavcodec/tiffenc.c
@@ -34,6 +34,7 @@
#include "rle.h"
#include "lzw.h"
#include "put_bits.h"
+#include "libavutil/opt.h"
#define TIFF_MAX_ENTRY 32
@@ -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
} 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", "Sets the image resolution", 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,
};
More information about the ffmpeg-devel
mailing list