libavformat/rtpdec_jpeg.c:262: error: Uninitialized Value
  The value read from qtable_len was never initialized.

libavformat/rtpdec_jpeg.c:262:45: 
260.         jpeg->hdr_size = jpeg_create_header(hdr, sizeof(hdr), type, width,
261.                                             height, qtables,
262.                                             qtable_len > 64 ? 2 : 1);
                                                 ^
263. 
264.         /* Copy JPEG header to frame buffer. */

static int jpeg_parse_packet(AVFormatContext *ctx, PayloadContext *jpeg,
                             AVStream *st, AVPacket *pkt, uint32_t *timestamp,
                             const uint8_t *buf, int len, int flags)
{
    uint8_t type, q, width, height;
    const uint8_t *qtables = NULL;
    uint16_t qtable_len;
    uint32_t off;
    int ret;
    if (len < 8) {
        av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n");
        return AVERROR_INVALIDDATA;
    }
    off    = AV_RB24(buf + 1);
    type   = AV_RB8(buf + 4);
    q      = AV_RB8(buf + 5);
    width  = AV_RB8(buf + 6);
    height = AV_RB8(buf + 7);
    buf += 8;
    len -= 8;
    if (type > 63) {
        av_log(ctx, AV_LOG_ERROR,
               "Unimplemented RTP/JPEG restart marker header.\n");
        return AVERROR_PATCHWELCOME;
    }
    if (q > 127 && off == 0) {
        uint8_t precision;
        if (len < 4) {
            av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n");
            return AVERROR_INVALIDDATA;
        }
        precision  = AV_RB8(buf + 1);
        qtable_len = AV_RB16(buf + 2);
        buf += 4;
        len -= 4;
        if (precision)
            av_log(ctx, AV_LOG_WARNING, "Only 8-bit precision is supported.\n");
        if (q == 255 && qtable_len == 0) {
            av_log(ctx, AV_LOG_ERROR,
                   "Invalid RTP/JPEG packet. Quantization tables not found.\n");
            return AVERROR_INVALIDDATA;
        }
        if (qtable_len > 0) {
            if (len < qtable_len) {
                av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\n");
                return AVERROR_INVALIDDATA;
            }
            qtables = buf;
            buf += qtable_len;
            len -= qtable_len;
        }
    }
    if (off == 0) {
        uint8_t hdr[1024];
        free_frame_if_needed(jpeg);
        if ((ret = avio_open_dyn_buf(&jpeg->frame)) < 0)
            return ret;
        jpeg->timestamp = *timestamp;
        if (!qtables) {
            av_log(ctx, AV_LOG_ERROR,
                   "Unimplemented default quantization tables.\n");
            return AVERROR_PATCHWELCOME;
        }
        jpeg->hdr_size = jpeg_create_header(hdr, sizeof(hdr), type, width,
                                            height, qtables,
                                            qtable_len > 64 ? 2 : 1);
        avio_write(jpeg->frame, hdr, jpeg->hdr_size);
    }
    if (!jpeg->frame) {
        av_log(ctx, AV_LOG_ERROR,
               "Received packet without a start chunk; dropping frame.\n");
        return AVERROR(EAGAIN);
    }
    if (jpeg->timestamp != *timestamp) {
        free_frame_if_needed(jpeg);
        av_log(ctx, AV_LOG_ERROR, "RTP timestamps don't match.\n");
        return AVERROR_INVALIDDATA;
    }
    if (off != avio_tell(jpeg->frame) - jpeg->hdr_size) {
        av_log(ctx, AV_LOG_ERROR,
               "Missing packets; dropping frame.\n");
        return AVERROR(EAGAIN);
    }
    avio_write(jpeg->frame, buf, len);
    if (flags & RTP_FLAG_MARKER) {
        PutBitContext pbc;
        uint8_t buf[2];
        init_put_bits(&pbc, buf, sizeof(buf));
        put_marker(&pbc, EOI);
        flush_put_bits(&pbc);
        avio_write(jpeg->frame, buf, sizeof(buf));
        av_init_packet(pkt);
        pkt->size = avio_close_dyn_buf(jpeg->frame, &pkt->data);
        if (pkt->size < 0) {
            av_log(ctx, AV_LOG_ERROR,
                   "Error occured when getting frame buffer.\n");
            jpeg->frame = NULL;
            return pkt->size;
        }
        pkt->stream_index = st->index;
        pkt->destruct     = av_destruct_packet;
        jpeg->frame = NULL;
        return 0;
    }
    return AVERROR(EAGAIN);
}
['static int jpeg_parse_packet(AVFormatContext *ctx, PayloadContext *jpeg,\n                             AVStream *st, AVPacket *pkt, uint32_t *timestamp,\n                             const uint8_t *buf, int len, int flags)\n{\n    uint8_t type, q, width, height;\n    const uint8_t *qtables = NULL;\n    uint16_t qtable_len;\n    uint32_t off;\n    int ret;\n    if (len < 8) {\n        av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\\n");\n        return AVERROR_INVALIDDATA;\n    }\n    off    = AV_RB24(buf + 1);\n    type   = AV_RB8(buf + 4);\n    q      = AV_RB8(buf + 5);\n    width  = AV_RB8(buf + 6);\n    height = AV_RB8(buf + 7);\n    buf += 8;\n    len -= 8;\n    if (type > 63) {\n        av_log(ctx, AV_LOG_ERROR,\n               "Unimplemented RTP/JPEG restart marker header.\\n");\n        return AVERROR_PATCHWELCOME;\n    }\n    if (q > 127 && off == 0) {\n        uint8_t precision;\n        if (len < 4) {\n            av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\\n");\n            return AVERROR_INVALIDDATA;\n        }\n        precision  = AV_RB8(buf + 1);\n        qtable_len = AV_RB16(buf + 2);\n        buf += 4;\n        len -= 4;\n        if (precision)\n            av_log(ctx, AV_LOG_WARNING, "Only 8-bit precision is supported.\\n");\n        if (q == 255 && qtable_len == 0) {\n            av_log(ctx, AV_LOG_ERROR,\n                   "Invalid RTP/JPEG packet. Quantization tables not found.\\n");\n            return AVERROR_INVALIDDATA;\n        }\n        if (qtable_len > 0) {\n            if (len < qtable_len) {\n                av_log(ctx, AV_LOG_ERROR, "Too short RTP/JPEG packet.\\n");\n                return AVERROR_INVALIDDATA;\n            }\n            qtables = buf;\n            buf += qtable_len;\n            len -= qtable_len;\n        }\n    }\n    if (off == 0) {\n        uint8_t hdr[1024];\n        free_frame_if_needed(jpeg);\n        if ((ret = avio_open_dyn_buf(&jpeg->frame)) < 0)\n            return ret;\n        jpeg->timestamp = *timestamp;\n        if (!qtables) {\n            av_log(ctx, AV_LOG_ERROR,\n                   "Unimplemented default quantization tables.\\n");\n            return AVERROR_PATCHWELCOME;\n        }\n        jpeg->hdr_size = jpeg_create_header(hdr, sizeof(hdr), type, width,\n                                            height, qtables,\n                                            qtable_len > 64 ? 2 : 1);\n        avio_write(jpeg->frame, hdr, jpeg->hdr_size);\n    }\n    if (!jpeg->frame) {\n        av_log(ctx, AV_LOG_ERROR,\n               "Received packet without a start chunk; dropping frame.\\n");\n        return AVERROR(EAGAIN);\n    }\n    if (jpeg->timestamp != *timestamp) {\n        free_frame_if_needed(jpeg);\n        av_log(ctx, AV_LOG_ERROR, "RTP timestamps don\'t match.\\n");\n        return AVERROR_INVALIDDATA;\n    }\n    if (off != avio_tell(jpeg->frame) - jpeg->hdr_size) {\n        av_log(ctx, AV_LOG_ERROR,\n               "Missing packets; dropping frame.\\n");\n        return AVERROR(EAGAIN);\n    }\n    avio_write(jpeg->frame, buf, len);\n    if (flags & RTP_FLAG_MARKER) {\n        PutBitContext pbc;\n        uint8_t buf[2];\n        init_put_bits(&pbc, buf, sizeof(buf));\n        put_marker(&pbc, EOI);\n        flush_put_bits(&pbc);\n        avio_write(jpeg->frame, buf, sizeof(buf));\n        av_init_packet(pkt);\n        pkt->size = avio_close_dyn_buf(jpeg->frame, &pkt->data);\n        if (pkt->size < 0) {\n            av_log(ctx, AV_LOG_ERROR,\n                   "Error occured when getting frame buffer.\\n");\n            jpeg->frame = NULL;\n            return pkt->size;\n        }\n        pkt->stream_index = st->index;\n        pkt->destruct     = av_destruct_packet;\n        jpeg->frame = NULL;\n        return 0;\n    }\n    return AVERROR(EAGAIN);\n}']