libavcodec/mvcdec.c:211: error: Uninitialized Value
  The value read from color[_] was never initialized.

libavcodec/mvcdec.c:211:17: 
209.                     return AVERROR_INVALIDDATA;
210.                 v[0] = color[p0 & 0x7F];
211.                 v[1] = color[p1 & 0x7F];
                     ^
212.                 for (i = 2; i < 8; i++)
213.                     v[i] = color[bytestream2_get_byteu(gb) & 0x7F];

static int decode_mvc2(AVCodecContext *avctx, GetByteContext *gb,
                       uint8_t *dst_start, int width, int height,
                       int linesize, int vflip)
{
    uint8_t *dst;
    uint32_t color[128], v[8];
    int w, h, nb_colors, i, x, y, p0, p1, mask;
    if (bytestream2_get_bytes_left(gb) < 6)
        return AVERROR_INVALIDDATA;
    w = bytestream2_get_be16u(gb);
    h = bytestream2_get_be16u(gb);
    if ((w & ~3) != width || (h & ~3) != height)
        av_log(avctx, AV_LOG_WARNING, "dimension mismatch\n");
    if (bytestream2_get_byteu(gb)) {
        avpriv_request_sample(avctx, "bitmap feature");
        return AVERROR_PATCHWELCOME;
    }
    nb_colors = bytestream2_get_byteu(gb);
    if (bytestream2_get_bytes_left(gb) < nb_colors * 3)
        return AVERROR_INVALIDDATA;
    for (i = 0; i < FFMIN(nb_colors, 128); i++)
        color[i] = 0xFF000000 | bytestream2_get_be24u(gb);
    if (nb_colors > 128)
        bytestream2_skip(gb, (nb_colors - 128) * 3);
    if (vflip) {
        dst_start += (height - 1) * linesize;
        linesize   = -linesize;
    }
    x = y = 0;
    while (bytestream2_get_bytes_left(gb) >= 1) {
        p0 = bytestream2_get_byteu(gb);
        if ((p0 & 0x80)) {
            if ((p0 & 0x40)) {
                p0 &= 0x3F;
                p0  = (p0 << 2) | (p0 >> 4);
                set_4x4_block(dst_start + y * linesize + x * 4, linesize,
                              0xFF000000 | (p0 << 16) | (p0 << 8) | p0);
            } else {
                int g, r;
                p0 &= 0x3F;
                p0  = (p0 << 2) | (p0 >> 4);
                if (bytestream2_get_bytes_left(gb) < 2)
                    return AVERROR_INVALIDDATA;
                g = bytestream2_get_byteu(gb);
                r = bytestream2_get_byteu(gb);
                set_4x4_block(dst_start + y * linesize + x * 4, linesize,
                              0xFF000000 | (r << 16) | (g << 8) | p0);
            }
        } else {
            if (bytestream2_get_bytes_left(gb) < 1)
                return AVERROR_INVALIDDATA;
            p1 = bytestream2_get_byteu(gb);
            if ((p1 & 0x80)) {
                if ((p0 & 0x7F) == (p1 & 0x7F)) {
                    set_4x4_block(dst_start + y * linesize + x * 4, linesize,
                                  color[p0 & 0x7F]);
                } else {
                    if (bytestream2_get_bytes_left(gb) < 2)
                        return AVERROR_INVALIDDATA;
                    v[0] = v[2] = v[4] = v[6] = color[p0 & 0x7F];
                    v[1] = v[3] = v[5] = v[7] = color[p1 & 0x7F];
                    mask = bytestream2_get_le16u(gb);
                    MVC2_BLOCK
                }
            } else {
                if (bytestream2_get_bytes_left(gb) < 8)
                    return AVERROR_INVALIDDATA;
                v[0] = color[p0 & 0x7F];
                v[1] = color[p1 & 0x7F];
                for (i = 2; i < 8; i++)
                    v[i] = color[bytestream2_get_byteu(gb) & 0x7F];
                mask = bytestream2_get_le16u(gb);
                MVC2_BLOCK
            }
        }
        x += 4;
        if (x >= width) {
            y += 4;
            if (y >= height)
                break;
            x = 0;
        }
    }
    return 0;
}
['static int decode_mvc2(AVCodecContext *avctx, GetByteContext *gb,\n                       uint8_t *dst_start, int width, int height,\n                       int linesize, int vflip)\n{\n    uint8_t *dst;\n    uint32_t color[128], v[8];\n    int w, h, nb_colors, i, x, y, p0, p1, mask;\n    if (bytestream2_get_bytes_left(gb) < 6)\n        return AVERROR_INVALIDDATA;\n    w = bytestream2_get_be16u(gb);\n    h = bytestream2_get_be16u(gb);\n    if ((w & ~3) != width || (h & ~3) != height)\n        av_log(avctx, AV_LOG_WARNING, "dimension mismatch\\n");\n    if (bytestream2_get_byteu(gb)) {\n        avpriv_request_sample(avctx, "bitmap feature");\n        return AVERROR_PATCHWELCOME;\n    }\n    nb_colors = bytestream2_get_byteu(gb);\n    if (bytestream2_get_bytes_left(gb) < nb_colors * 3)\n        return AVERROR_INVALIDDATA;\n    for (i = 0; i < FFMIN(nb_colors, 128); i++)\n        color[i] = 0xFF000000 | bytestream2_get_be24u(gb);\n    if (nb_colors > 128)\n        bytestream2_skip(gb, (nb_colors - 128) * 3);\n    if (vflip) {\n        dst_start += (height - 1) * linesize;\n        linesize   = -linesize;\n    }\n    x = y = 0;\n    while (bytestream2_get_bytes_left(gb) >= 1) {\n        p0 = bytestream2_get_byteu(gb);\n        if ((p0 & 0x80)) {\n            if ((p0 & 0x40)) {\n                p0 &= 0x3F;\n                p0  = (p0 << 2) | (p0 >> 4);\n                set_4x4_block(dst_start + y * linesize + x * 4, linesize,\n                              0xFF000000 | (p0 << 16) | (p0 << 8) | p0);\n            } else {\n                int g, r;\n                p0 &= 0x3F;\n                p0  = (p0 << 2) | (p0 >> 4);\n                if (bytestream2_get_bytes_left(gb) < 2)\n                    return AVERROR_INVALIDDATA;\n                g = bytestream2_get_byteu(gb);\n                r = bytestream2_get_byteu(gb);\n                set_4x4_block(dst_start + y * linesize + x * 4, linesize,\n                              0xFF000000 | (r << 16) | (g << 8) | p0);\n            }\n        } else {\n            if (bytestream2_get_bytes_left(gb) < 1)\n                return AVERROR_INVALIDDATA;\n            p1 = bytestream2_get_byteu(gb);\n            if ((p1 & 0x80)) {\n                if ((p0 & 0x7F) == (p1 & 0x7F)) {\n                    set_4x4_block(dst_start + y * linesize + x * 4, linesize,\n                                  color[p0 & 0x7F]);\n                } else {\n                    if (bytestream2_get_bytes_left(gb) < 2)\n                        return AVERROR_INVALIDDATA;\n                    v[0] = v[2] = v[4] = v[6] = color[p0 & 0x7F];\n                    v[1] = v[3] = v[5] = v[7] = color[p1 & 0x7F];\n                    mask = bytestream2_get_le16u(gb);\n                    MVC2_BLOCK\n                }\n            } else {\n                if (bytestream2_get_bytes_left(gb) < 8)\n                    return AVERROR_INVALIDDATA;\n                v[0] = color[p0 & 0x7F];\n                v[1] = color[p1 & 0x7F];\n                for (i = 2; i < 8; i++)\n                    v[i] = color[bytestream2_get_byteu(gb) & 0x7F];\n                mask = bytestream2_get_le16u(gb);\n                MVC2_BLOCK\n            }\n        }\n        x += 4;\n        if (x >= width) {\n            y += 4;\n            if (y >= height)\n                break;\n            x = 0;\n        }\n    }\n    return 0;\n}']