ffmpeg | branch: master | Carl Eugen Hoyos <ceffm...@gmail.com> | Sat Mar 9 11:05:36 2019 +0100| [6fcf7adc019b29926ce7b096640cfdf714074bcd] | committer: Carl Eugen Hoyos
lavc/tiff: Support decoding 16bit cmyk. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6fcf7adc019b29926ce7b096640cfdf714074bcd --- libavcodec/tiff.c | 16 ++++++++++++++++ libavcodec/version.h | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 112f5b52f4..828ed9e2e9 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -1547,6 +1547,22 @@ again: } dst += p->linesize[plane]; } + } else if (s->photometric == TIFF_PHOTOMETRIC_SEPARATED && + s->avctx->pix_fmt == AV_PIX_FMT_RGBA64BE) { + dst = p->data[plane]; + for (i = 0; i < s->height; i++) { + for (j = 0; j < s->width; j++) { + uint64_t k = 65535 - AV_RB16(dst + 8 * j + 6); + uint64_t r = (65535 - AV_RB16(dst + 8 * j )) * k; + uint64_t g = (65535 - AV_RB16(dst + 8 * j + 2)) * k; + uint64_t b = (65535 - AV_RB16(dst + 8 * j + 4)) * k; + AV_WB16(dst + 8 * j , r * 65537 >> 32); + AV_WB16(dst + 8 * j + 2, g * 65537 >> 32); + AV_WB16(dst + 8 * j + 4, b * 65537 >> 32); + AV_WB16(dst + 8 * j + 6, 65535); + } + dst += p->linesize[plane]; + } } } diff --git a/libavcodec/version.h b/libavcodec/version.h index 309e4111cb..a217283b03 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #define LIBAVCODEC_VERSION_MAJOR 58 #define LIBAVCODEC_VERSION_MINOR 47 -#define LIBAVCODEC_VERSION_MICRO 103 +#define LIBAVCODEC_VERSION_MICRO 104 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog