From 8aea97a49d19a12691bc82ed97705053cfdb6ad2 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 11 Jul 2013 19:37:29 +0200 Subject: [PATCH] avcodec/jpeglsdec: Implement the 4th (lossy) transform Fixes remainder of Ticket893 Std deviation from the intended image is 0.11, max sample error +-1 Signed-off-by: Michael Niedermayer --- libavcodec/jpeglsdec.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavcodec/jpeglsdec.c b/libavcodec/jpeglsdec.c index d9eb8e80ba..0e344f54d8 100644 --- a/libavcodec/jpeglsdec.c +++ b/libavcodec/jpeglsdec.c @@ -391,6 +391,16 @@ int ff_jpegls_decode_picture(MJpegDecodeContext *s, int near, src[x+1] = g; } break; + case 4: + for (x = off; x < w; x += 3) { + int r = src[x+0] - (( 359 * (src[x+2]-128) + 490) >> 8); + int g = src[x+0] - (( 88 * (src[x+1]-128) - 183 * (src[x+2]-128) + 30) >> 8); + int b = src[x+0] + ((454 * (src[x+1]-128) + 574) >> 8); + src[x+0] = av_clip_uint8(r); + src[x+1] = av_clip_uint8(g); + src[x+2] = av_clip_uint8(b); + } + break; } src += s->picture.linesize[0]; }