[FFmpeg-devel] [PATCH]Write tiff aspect ratio by default instead of dpi
Carl Eugen Hoyos
cehoyos at ag.or.at
Sat Apr 5 14:37:08 CEST 2014
On Thursday 03 April 2014 05:29:09 am Michael Niedermayer wrote:
> > - uint32_t res[2] = { s->dpi, 1 }; // image resolution (72/1)
> > + uint32_t resx[2] = { s->dpi ? s->dpi :
> > avctx->sample_aspect_ratio.den, 1 }; + uint32_t resy[2] = { s->dpi ?
> > s->dpi : avctx->sample_aspect_ratio.num, 1 };
>
> i think this is wrong
> shouldnt the dpi be adjusted when the aspect differs from 1:1
New patch attached which is supported by more image viewers
on my system.
It's now: Consider aspect ratio when writing tiff dpi.
Please comment, Carl Eugen
-------------- next part --------------
diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c
index 7b1e510..01e6168 100644
--- a/libavcodec/tiffenc.c
+++ b/libavcodec/tiffenc.c
@@ -436,6 +436,13 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
add_entry1(s, TIFF_ROWSPERSTRIP, TIFF_LONG, s->rps);
add_entry(s, TIFF_STRIP_SIZE, TIFF_LONG, strips, s->strip_sizes);
add_entry(s, TIFF_XRES, TIFF_RATIONAL, 1, res);
+ if (avctx->sample_aspect_ratio.num > 0 &&
+ avctx->sample_aspect_ratio.den > 0) {
+ AVRational y = av_mul_q((AVRational) { s->dpi, 1 },
+ avctx->sample_aspect_ratio);
+ res[0] = y.num;
+ res[1] = y.den;
+ }
add_entry(s, TIFF_YRES, TIFF_RATIONAL, 1, res);
add_entry1(s, TIFF_RES_UNIT, TIFF_SHORT, 2);
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 6472c0f..ca5ab26 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
#define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR 57
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
More information about the ffmpeg-devel
mailing list