libavcodec/dpcm.c:246: error: Uninitialized Value
  The value read from predictor[_] was never initialized.

libavcodec/dpcm.c:246:13: 
244.         ch = 0;
245.         while (buf < buf_end) {
246.             predictor[ch] += interplay_delta_table[*buf++];
                 ^
247.             predictor[ch]  = av_clip_int16(predictor[ch]);
248.             *output_samples++ = predictor[ch];

static int dpcm_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
                             AVPacket *avpkt)
{
    const uint8_t *buf = avpkt->data;
    int buf_size = avpkt->size;
    const uint8_t *buf_end = buf + buf_size;
    DPCMContext *s = avctx->priv_data;
    int out = 0;
    int predictor[2];
    int ch = 0;
    int stereo = s->channels - 1;
    int16_t *output_samples = data;
    if (!buf_size)
        return 0;
    switch(avctx->codec->id) {
    case CODEC_ID_ROQ_DPCM:
        out = buf_size - 8;
        break;
    case CODEC_ID_INTERPLAY_DPCM:
        out = buf_size - 6 - s->channels;
        break;
    case CODEC_ID_XAN_DPCM:
        out = buf_size - 2 * s->channels;
        break;
    case CODEC_ID_SOL_DPCM:
        if (avctx->codec_tag != 3)
            out = buf_size * 2;
        else
            out = buf_size;
        break;
    }
    out *= av_get_bytes_per_sample(avctx->sample_fmt);
    if (out < 0) {
        av_log(avctx, AV_LOG_ERROR, "packet is too small\n");
        return AVERROR(EINVAL);
    }
    if (*data_size < out) {
        av_log(avctx, AV_LOG_ERROR, "output buffer is too small\n");
        return AVERROR(EINVAL);
    }
    switch(avctx->codec->id) {
    case CODEC_ID_ROQ_DPCM:
        buf += 6;
        if (stereo) {
            predictor[1] = (int16_t)(bytestream_get_byte(&buf) << 8);
            predictor[0] = (int16_t)(bytestream_get_byte(&buf) << 8);
        } else {
            predictor[0] = (int16_t)bytestream_get_le16(&buf);
        }
        while (buf < buf_end) {
            predictor[ch] += s->roq_square_array[*buf++];
            predictor[ch]  = av_clip_int16(predictor[ch]);
            *output_samples++ = predictor[ch];
            ch ^= stereo;
        }
        break;
    case CODEC_ID_INTERPLAY_DPCM:
        buf += 6;
        for (ch = 0; ch < s->channels; ch++) {
            predictor[ch] = (int16_t)bytestream_get_le16(&buf);
            *output_samples++ = predictor[ch];
        }
        ch = 0;
        while (buf < buf_end) {
            predictor[ch] += interplay_delta_table[*buf++];
            predictor[ch]  = av_clip_int16(predictor[ch]);
            *output_samples++ = predictor[ch];
            ch ^= stereo;
        }
        break;
    case CODEC_ID_XAN_DPCM:
    {
        int shift[2] = { 4, 4 };
        for (ch = 0; ch < s->channels; ch++)
            predictor[ch] = (int16_t)bytestream_get_le16(&buf);
        ch = 0;
        while (buf < buf_end) {
            uint8_t n = *buf++;
            int16_t diff = (n & 0xFC) << 8;
            if ((n & 0x03) == 3)
                shift[ch]++;
            else
                shift[ch] -= (2 * (n & 3));
            if (shift[ch] < 0)
                shift[ch] = 0;
            diff >>= shift[ch];
            predictor[ch] += diff;
            predictor[ch] = av_clip_int16(predictor[ch]);
            *output_samples++ = predictor[ch];
            ch ^= stereo;
        }
        break;
    }
    case CODEC_ID_SOL_DPCM:
        if (avctx->codec_tag != 3) {
            uint8_t *output_samples_u8 = data;
            while (buf < buf_end) {
                uint8_t n = *buf++;
                s->sample[0] += s->sol_table[n >> 4];
                s->sample[0]  = av_clip_uint8(s->sample[0]);
                *output_samples_u8++ = s->sample[0];
                s->sample[stereo] += s->sol_table[n & 0x0F];
                s->sample[stereo]  = av_clip_uint8(s->sample[stereo]);
                *output_samples_u8++ = s->sample[stereo];
            }
        } else {
            while (buf < buf_end) {
                uint8_t n = *buf++;
                if (n & 0x80) s->sample[ch] -= sol_table_16[n & 0x7F];
                else          s->sample[ch] += sol_table_16[n & 0x7F];
                s->sample[ch] = av_clip_int16(s->sample[ch]);
                *output_samples++ = s->sample[ch];
                ch ^= stereo;
            }
        }
        break;
    }
    *data_size = out;
    return buf_size;
}
['static int dpcm_decode_frame(AVCodecContext *avctx, void *data, int *data_size,\n                             AVPacket *avpkt)\n{\n    const uint8_t *buf = avpkt->data;\n    int buf_size = avpkt->size;\n    const uint8_t *buf_end = buf + buf_size;\n    DPCMContext *s = avctx->priv_data;\n    int out = 0;\n    int predictor[2];\n    int ch = 0;\n    int stereo = s->channels - 1;\n    int16_t *output_samples = data;\n    if (!buf_size)\n        return 0;\n    switch(avctx->codec->id) {\n    case CODEC_ID_ROQ_DPCM:\n        out = buf_size - 8;\n        break;\n    case CODEC_ID_INTERPLAY_DPCM:\n        out = buf_size - 6 - s->channels;\n        break;\n    case CODEC_ID_XAN_DPCM:\n        out = buf_size - 2 * s->channels;\n        break;\n    case CODEC_ID_SOL_DPCM:\n        if (avctx->codec_tag != 3)\n            out = buf_size * 2;\n        else\n            out = buf_size;\n        break;\n    }\n    out *= av_get_bytes_per_sample(avctx->sample_fmt);\n    if (out < 0) {\n        av_log(avctx, AV_LOG_ERROR, "packet is too small\\n");\n        return AVERROR(EINVAL);\n    }\n    if (*data_size < out) {\n        av_log(avctx, AV_LOG_ERROR, "output buffer is too small\\n");\n        return AVERROR(EINVAL);\n    }\n    switch(avctx->codec->id) {\n    case CODEC_ID_ROQ_DPCM:\n        buf += 6;\n        if (stereo) {\n            predictor[1] = (int16_t)(bytestream_get_byte(&buf) << 8);\n            predictor[0] = (int16_t)(bytestream_get_byte(&buf) << 8);\n        } else {\n            predictor[0] = (int16_t)bytestream_get_le16(&buf);\n        }\n        while (buf < buf_end) {\n            predictor[ch] += s->roq_square_array[*buf++];\n            predictor[ch]  = av_clip_int16(predictor[ch]);\n            *output_samples++ = predictor[ch];\n            ch ^= stereo;\n        }\n        break;\n    case CODEC_ID_INTERPLAY_DPCM:\n        buf += 6;\n        for (ch = 0; ch < s->channels; ch++) {\n            predictor[ch] = (int16_t)bytestream_get_le16(&buf);\n            *output_samples++ = predictor[ch];\n        }\n        ch = 0;\n        while (buf < buf_end) {\n            predictor[ch] += interplay_delta_table[*buf++];\n            predictor[ch]  = av_clip_int16(predictor[ch]);\n            *output_samples++ = predictor[ch];\n            ch ^= stereo;\n        }\n        break;\n    case CODEC_ID_XAN_DPCM:\n    {\n        int shift[2] = { 4, 4 };\n        for (ch = 0; ch < s->channels; ch++)\n            predictor[ch] = (int16_t)bytestream_get_le16(&buf);\n        ch = 0;\n        while (buf < buf_end) {\n            uint8_t n = *buf++;\n            int16_t diff = (n & 0xFC) << 8;\n            if ((n & 0x03) == 3)\n                shift[ch]++;\n            else\n                shift[ch] -= (2 * (n & 3));\n            if (shift[ch] < 0)\n                shift[ch] = 0;\n            diff >>= shift[ch];\n            predictor[ch] += diff;\n            predictor[ch] = av_clip_int16(predictor[ch]);\n            *output_samples++ = predictor[ch];\n            ch ^= stereo;\n        }\n        break;\n    }\n    case CODEC_ID_SOL_DPCM:\n        if (avctx->codec_tag != 3) {\n            uint8_t *output_samples_u8 = data;\n            while (buf < buf_end) {\n                uint8_t n = *buf++;\n                s->sample[0] += s->sol_table[n >> 4];\n                s->sample[0]  = av_clip_uint8(s->sample[0]);\n                *output_samples_u8++ = s->sample[0];\n                s->sample[stereo] += s->sol_table[n & 0x0F];\n                s->sample[stereo]  = av_clip_uint8(s->sample[stereo]);\n                *output_samples_u8++ = s->sample[stereo];\n            }\n        } else {\n            while (buf < buf_end) {\n                uint8_t n = *buf++;\n                if (n & 0x80) s->sample[ch] -= sol_table_16[n & 0x7F];\n                else          s->sample[ch] += sol_table_16[n & 0x7F];\n                s->sample[ch] = av_clip_int16(s->sample[ch]);\n                *output_samples++ = s->sample[ch];\n                ch ^= stereo;\n            }\n        }\n        break;\n    }\n    *data_size = out;\n    return buf_size;\n}']