[FFmpeg-cvslog] tiffdec: add RGB48 (16bit) support
Jean First
git at videolan.org
Sun Sep 25 16:56:00 CEST 2011
ffmpeg | branch: master | Jean First <jeanfirst at gmail.com> | Sun Sep 25 16:00:04 2011 +0200| [72381b2b479d99962092ce458ac8e98f00528f86] | committer: Michael Niedermayer
tiffdec: add RGB48 (16bit) support
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=72381b2b479d99962092ce458ac8e98f00528f86
---
libavcodec/tiff.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c
index e2c80ef..06b5b8e 100644
--- a/libavcodec/tiff.c
+++ b/libavcodec/tiff.c
@@ -601,11 +601,25 @@ static int decode_frame(AVCodecContext *avctx,
dst = p->data[0];
soff = s->bpp >> 3;
ssize = s->width * soff;
+ if (s->avctx->pix_fmt == PIX_FMT_RGB48LE) {
+ for (i = 0; i < s->height; i++) {
+ for (j = soff; j < ssize; j += 2)
+ AV_WL16(dst + j, AV_RL16(dst + j) + AV_RL16(dst + j - soff));
+ dst += stride;
+ }
+ } else if (s->avctx->pix_fmt == PIX_FMT_RGB48BE) {
+ for (i = 0; i < s->height; i++) {
+ for (j = soff; j < ssize; j += 2)
+ AV_WB16(dst + j, AV_RB16(dst + j) + AV_RB16(dst + j - soff));
+ dst += stride;
+ }
+ } else {
for(i = 0; i < s->height; i++) {
for(j = soff; j < ssize; j++)
dst[j] += dst[j - soff];
dst += stride;
}
+ }
}
if(s->invert){
More information about the ffmpeg-cvslog
mailing list