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

libavcodec/dpcm.c:255:13: 
253.         ch = 0;
254.         while (output_samples < samples_end) {
255.             predictor[ch] += interplay_delta_table[bytestream2_get_byteu(&gb)];
                 ^
256.             predictor[ch]  = av_clip_int16(predictor[ch]);
257.             *output_samples++ = predictor[ch];

static int dpcm_decode_frame(AVCodecContext *avctx, void *data,
                             int *got_frame_ptr, AVPacket *avpkt)
{
    int buf_size = avpkt->size;
    DPCMContext *s = avctx->priv_data;
    int out = 0, ret;
    int predictor[2];
    int ch = 0;
    int stereo = s->channels - 1;
    int16_t *output_samples, *samples_end;
    GetByteContext gb;
    if (stereo && (buf_size & 1))
        buf_size--;
    bytestream2_init(&gb, avpkt->data, buf_size);
    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;
    }
    if (out <= 0) {
        av_log(avctx, AV_LOG_ERROR, "packet is too small\n");
        return AVERROR(EINVAL);
    }
    s->frame.nb_samples = out / s->channels;
    if ((ret = avctx->get_buffer(avctx, &s->frame)) < 0) {
        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
        return ret;
    }
    output_samples = (int16_t *)s->frame.data[0];
    samples_end = output_samples + out;
    switch(avctx->codec->id) {
    case CODEC_ID_ROQ_DPCM:
        bytestream2_skipu(&gb, 6);
        if (stereo) {
            predictor[1] = sign_extend(bytestream2_get_byteu(&gb) << 8, 16);
            predictor[0] = sign_extend(bytestream2_get_byteu(&gb) << 8, 16);
        } else {
            predictor[0] = sign_extend(bytestream2_get_le16u(&gb), 16);
        }
        while (output_samples < samples_end) {
            predictor[ch] += s->roq_square_array[bytestream2_get_byteu(&gb)];
            predictor[ch]  = av_clip_int16(predictor[ch]);
            *output_samples++ = predictor[ch];
            ch ^= stereo;
        }
        break;
    case CODEC_ID_INTERPLAY_DPCM:
        bytestream2_skipu(&gb, 6);
        for (ch = 0; ch < s->channels; ch++) {
            predictor[ch] = sign_extend(bytestream2_get_le16u(&gb), 16);
            *output_samples++ = predictor[ch];
        }
        ch = 0;
        while (output_samples < samples_end) {
            predictor[ch] += interplay_delta_table[bytestream2_get_byteu(&gb)];
            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] = sign_extend(bytestream2_get_le16u(&gb), 16);
        ch = 0;
        while (output_samples < samples_end) {
            int diff = bytestream2_get_byteu(&gb);
            int n    = diff & 3;
            if (n == 3)
                shift[ch]++;
            else
                shift[ch] -= (2 * n);
            diff = sign_extend((diff &~ 3) << 8, 16);
            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 = s->frame.data[0],
                    *samples_end_u8 = output_samples_u8 + out;
            while (output_samples_u8 < samples_end_u8) {
                int n = bytestream2_get_byteu(&gb);
                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 (output_samples < samples_end) {
                int n = bytestream2_get_byteu(&gb);
                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;
    }
    *got_frame_ptr   = 1;
    *(AVFrame *)data = s->frame;
    return avpkt->size;
}
['static int dpcm_decode_frame(AVCodecContext *avctx, void *data,\n                             int *got_frame_ptr, AVPacket *avpkt)\n{\n    int buf_size = avpkt->size;\n    DPCMContext *s = avctx->priv_data;\n    int out = 0, ret;\n    int predictor[2];\n    int ch = 0;\n    int stereo = s->channels - 1;\n    int16_t *output_samples, *samples_end;\n    GetByteContext gb;\n    if (stereo && (buf_size & 1))\n        buf_size--;\n    bytestream2_init(&gb, avpkt->data, buf_size);\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    if (out <= 0) {\n        av_log(avctx, AV_LOG_ERROR, "packet is too small\\n");\n        return AVERROR(EINVAL);\n    }\n    s->frame.nb_samples = out / s->channels;\n    if ((ret = avctx->get_buffer(avctx, &s->frame)) < 0) {\n        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\\n");\n        return ret;\n    }\n    output_samples = (int16_t *)s->frame.data[0];\n    samples_end = output_samples + out;\n    switch(avctx->codec->id) {\n    case CODEC_ID_ROQ_DPCM:\n        bytestream2_skipu(&gb, 6);\n        if (stereo) {\n            predictor[1] = sign_extend(bytestream2_get_byteu(&gb) << 8, 16);\n            predictor[0] = sign_extend(bytestream2_get_byteu(&gb) << 8, 16);\n        } else {\n            predictor[0] = sign_extend(bytestream2_get_le16u(&gb), 16);\n        }\n        while (output_samples < samples_end) {\n            predictor[ch] += s->roq_square_array[bytestream2_get_byteu(&gb)];\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        bytestream2_skipu(&gb, 6);\n        for (ch = 0; ch < s->channels; ch++) {\n            predictor[ch] = sign_extend(bytestream2_get_le16u(&gb), 16);\n            *output_samples++ = predictor[ch];\n        }\n        ch = 0;\n        while (output_samples < samples_end) {\n            predictor[ch] += interplay_delta_table[bytestream2_get_byteu(&gb)];\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] = sign_extend(bytestream2_get_le16u(&gb), 16);\n        ch = 0;\n        while (output_samples < samples_end) {\n            int diff = bytestream2_get_byteu(&gb);\n            int n    = diff & 3;\n            if (n == 3)\n                shift[ch]++;\n            else\n                shift[ch] -= (2 * n);\n            diff = sign_extend((diff &~ 3) << 8, 16);\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 = s->frame.data[0],\n                    *samples_end_u8 = output_samples_u8 + out;\n            while (output_samples_u8 < samples_end_u8) {\n                int n = bytestream2_get_byteu(&gb);\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 (output_samples < samples_end) {\n                int n = bytestream2_get_byteu(&gb);\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    *got_frame_ptr   = 1;\n    *(AVFrame *)data = s->frame;\n    return avpkt->size;\n}']