avcodec/sheervideo: fix YbYr format decoding
authorPaul B Mahol <onemda@gmail.com>
Thu, 23 Jun 2016 10:55:30 +0000 (12:55 +0200)
committerPaul B Mahol <onemda@gmail.com>
Thu, 23 Jun 2016 10:59:20 +0000 (12:59 +0200)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/sheervideo.c

index 7ae5479..2f08b7b 100644 (file)
@@ -1794,9 +1794,9 @@ static void decode_ybyr(AVCodecContext *avctx, AVFrame *p, GetBitContext *gb)
     if (get_bits1(gb)) {
         for (x = 0; x < avctx->width; x += 2) {
             dst_y[x    ] = get_bits(gb, 8);
-            dst_u[x / 2] = get_bits(gb, 8);
+            dst_u[x / 2] = get_bits(gb, 8) + 128;
             dst_y[x + 1] = get_bits(gb, 8);
-            dst_v[x / 2] = get_bits(gb, 8);
+            dst_v[x / 2] = get_bits(gb, 8) + 128;
         }
     } else {
         int pred[4] = { -128, 128, 128, 0 };
@@ -1824,9 +1824,9 @@ static void decode_ybyr(AVCodecContext *avctx, AVFrame *p, GetBitContext *gb)
         if (get_bits1(gb)) {
             for (x = 0; x < avctx->width; x += 2) {
                 dst_y[x    ] = get_bits(gb, 8);
-                dst_u[x / 2] = get_bits(gb, 8);
+                dst_u[x / 2] = get_bits(gb, 8) + 128;
                 dst_y[x + 1] = get_bits(gb, 8);
-                dst_v[x / 2] = get_bits(gb, 8);
+                dst_v[x / 2] = get_bits(gb, 8) + 128;
             }
         } else {
             int pred_TL[4], pred_L[4], pred_T[4];