libavformat/rtpdec_vp8.c:238: error: Uninitialized Value
  The value read from old_timestamp was never initialized.

libavformat/rtpdec_vp8.c:238:13: 
236.         int ret;
237.         if (returned_old_frame) {
238.             *timestamp = old_timestamp;
                 ^
239.             return 1;
240.         }

static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,
                             AVStream *st, AVPacket *pkt, uint32_t *timestamp,
                             const uint8_t *buf, int len, uint16_t seq,
                             int flags)
{
    int start_partition, end_packet;
    int extended_bits, part_id;
    int pictureid_present = 0, tl0picidx_present = 0, tid_present = 0,
        keyidx_present = 0;
    int pictureid = -1, pictureid_mask;
    int returned_old_frame = 0;
    uint32_t old_timestamp;
    if (!buf) {
        if (vp8->data) {
            int ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index);
            if (ret < 0)
                return ret;
            return 0;
        }
        return AVERROR(EAGAIN);
    }
    if (len < 1)
        return AVERROR_INVALIDDATA;
    extended_bits   = buf[0] & 0x80;
    start_partition = buf[0] & 0x10;
    part_id         = buf[0] & 0x0f;
    end_packet      = flags & RTP_FLAG_MARKER;
    buf++;
    len--;
    if (extended_bits) {
        if (len < 1)
            return AVERROR_INVALIDDATA;
        pictureid_present = buf[0] & 0x80;
        tl0picidx_present = buf[0] & 0x40;
        tid_present       = buf[0] & 0x20;
        keyidx_present    = buf[0] & 0x10;
        buf++;
        len--;
    }
    if (pictureid_present) {
        if (len < 1)
            return AVERROR_INVALIDDATA;
        if (buf[0] & 0x80) {
            if (len < 2)
                return AVERROR_INVALIDDATA;
            pictureid = AV_RB16(buf) & 0x7fff;
            pictureid_mask = 0x7fff;
            buf += 2;
            len -= 2;
        } else {
            pictureid = buf[0] & 0x7f;
            pictureid_mask = 0x7f;
            buf++;
            len--;
        }
    }
    if (tl0picidx_present) {
        buf++;
        len--;
    }
    if (tid_present || keyidx_present) {
        buf++;
        len--;
    }
    if (len < 1)
        return AVERROR_INVALIDDATA;
    if (start_partition && part_id == 0 && len >= 3) {
        int res;
        int non_key = buf[0] & 0x01;
        if (!non_key) {
            vp8_free_buffer(vp8);
            vp8->sequence_ok = 1;
        } else {
            int can_continue = vp8->data && !vp8->is_keyframe &&
                               avio_tell(vp8->data) >= vp8->first_part_size;
            if (!vp8->sequence_ok)
                return AVERROR(EAGAIN);
            if (pictureid >= 0) {
                if (pictureid != ((vp8->prev_pictureid + 1) & pictureid_mask)) {
                    return vp8_broken_sequence(ctx, vp8,
                                               "Missed a picture, sequence broken\n");
                } else {
                    if (vp8->data && !can_continue)
                        return vp8_broken_sequence(ctx, vp8,
                                                   "Missed a picture, sequence broken\n");
                }
            } else {
                uint16_t expected_seq = vp8->prev_seq + 1;
                int16_t diff = seq - expected_seq;
                if (vp8->data) {
                    if ((diff == 0 || diff == 1) && can_continue) {
                    } else {
                        return vp8_broken_sequence(ctx, vp8,
                                                   "Missed too much, sequence broken\n");
                    }
                } else {
                    if (diff != 0)
                        return vp8_broken_sequence(ctx, vp8,
                                                   "Missed unknown data, sequence broken\n");
                }
            }
            if (vp8->data) {
                if (avio_tell(vp8->data) >= vp8->first_part_size) {
                    int ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index);
                    if (ret < 0)
                        return ret;
                    pkt->size = vp8->first_part_size;
                    returned_old_frame = 1;
                    old_timestamp = vp8->timestamp;
                } else {
                    vp8_free_buffer(vp8);
                }
            }
        }
        vp8->first_part_size = (AV_RL16(&buf[1]) << 3 | buf[0] >> 5) + 3;
        if ((res = avio_open_dyn_buf(&vp8->data)) < 0)
            return res;
        vp8->timestamp = *timestamp;
        vp8->broken_frame = 0;
        vp8->prev_pictureid = pictureid;
        vp8->is_keyframe = !non_key;
    } else {
        uint16_t expected_seq = vp8->prev_seq + 1;
        if (!vp8->sequence_ok)
            return AVERROR(EAGAIN);
        if (vp8->timestamp != *timestamp) {
            vp8->sequence_ok = 0;
            av_log(ctx, AV_LOG_WARNING,
                   "Received no start marker; dropping frame\n");
            vp8_free_buffer(vp8);
            return AVERROR(EAGAIN);
        }
        if (seq != expected_seq) {
            if (vp8->is_keyframe) {
                return vp8_broken_sequence(ctx, vp8,
                                           "Missed part of a keyframe, sequence broken\n");
            } else if (vp8->data && avio_tell(vp8->data) >= vp8->first_part_size) {
                vp8->broken_frame = 1;
            } else {
                return vp8_broken_sequence(ctx, vp8,
                                           "Missed part of the first partition, sequence broken\n");
            }
        }
    }
    if (!vp8->data)
        return vp8_broken_sequence(ctx, vp8, "Received no start marker\n");
    vp8->prev_seq = seq;
    avio_write(vp8->data, buf, len);
    if (end_packet) {
        int ret;
        if (returned_old_frame) {
            *timestamp = old_timestamp;
            return 1;
        }
        ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index);
        if (ret < 0)
            return ret;
        if (vp8->broken_frame)
            pkt->size = vp8->first_part_size;
        return 0;
    }
    return AVERROR(EAGAIN);
}
['static int vp8_handle_packet(AVFormatContext *ctx, PayloadContext *vp8,\n                             AVStream *st, AVPacket *pkt, uint32_t *timestamp,\n                             const uint8_t *buf, int len, uint16_t seq,\n                             int flags)\n{\n    int start_partition, end_packet;\n    int extended_bits, part_id;\n    int pictureid_present = 0, tl0picidx_present = 0, tid_present = 0,\n        keyidx_present = 0;\n    int pictureid = -1, pictureid_mask;\n    int returned_old_frame = 0;\n    uint32_t old_timestamp;\n    if (!buf) {\n        if (vp8->data) {\n            int ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index);\n            if (ret < 0)\n                return ret;\n            return 0;\n        }\n        return AVERROR(EAGAIN);\n    }\n    if (len < 1)\n        return AVERROR_INVALIDDATA;\n    extended_bits   = buf[0] & 0x80;\n    start_partition = buf[0] & 0x10;\n    part_id         = buf[0] & 0x0f;\n    end_packet      = flags & RTP_FLAG_MARKER;\n    buf++;\n    len--;\n    if (extended_bits) {\n        if (len < 1)\n            return AVERROR_INVALIDDATA;\n        pictureid_present = buf[0] & 0x80;\n        tl0picidx_present = buf[0] & 0x40;\n        tid_present       = buf[0] & 0x20;\n        keyidx_present    = buf[0] & 0x10;\n        buf++;\n        len--;\n    }\n    if (pictureid_present) {\n        if (len < 1)\n            return AVERROR_INVALIDDATA;\n        if (buf[0] & 0x80) {\n            if (len < 2)\n                return AVERROR_INVALIDDATA;\n            pictureid = AV_RB16(buf) & 0x7fff;\n            pictureid_mask = 0x7fff;\n            buf += 2;\n            len -= 2;\n        } else {\n            pictureid = buf[0] & 0x7f;\n            pictureid_mask = 0x7f;\n            buf++;\n            len--;\n        }\n    }\n    if (tl0picidx_present) {\n        buf++;\n        len--;\n    }\n    if (tid_present || keyidx_present) {\n        buf++;\n        len--;\n    }\n    if (len < 1)\n        return AVERROR_INVALIDDATA;\n    if (start_partition && part_id == 0 && len >= 3) {\n        int res;\n        int non_key = buf[0] & 0x01;\n        if (!non_key) {\n            vp8_free_buffer(vp8);\n            vp8->sequence_ok = 1;\n        } else {\n            int can_continue = vp8->data && !vp8->is_keyframe &&\n                               avio_tell(vp8->data) >= vp8->first_part_size;\n            if (!vp8->sequence_ok)\n                return AVERROR(EAGAIN);\n            if (pictureid >= 0) {\n                if (pictureid != ((vp8->prev_pictureid + 1) & pictureid_mask)) {\n                    return vp8_broken_sequence(ctx, vp8,\n                                               "Missed a picture, sequence broken\\n");\n                } else {\n                    if (vp8->data && !can_continue)\n                        return vp8_broken_sequence(ctx, vp8,\n                                                   "Missed a picture, sequence broken\\n");\n                }\n            } else {\n                uint16_t expected_seq = vp8->prev_seq + 1;\n                int16_t diff = seq - expected_seq;\n                if (vp8->data) {\n                    if ((diff == 0 || diff == 1) && can_continue) {\n                    } else {\n                        return vp8_broken_sequence(ctx, vp8,\n                                                   "Missed too much, sequence broken\\n");\n                    }\n                } else {\n                    if (diff != 0)\n                        return vp8_broken_sequence(ctx, vp8,\n                                                   "Missed unknown data, sequence broken\\n");\n                }\n            }\n            if (vp8->data) {\n                if (avio_tell(vp8->data) >= vp8->first_part_size) {\n                    int ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index);\n                    if (ret < 0)\n                        return ret;\n                    pkt->size = vp8->first_part_size;\n                    returned_old_frame = 1;\n                    old_timestamp = vp8->timestamp;\n                } else {\n                    vp8_free_buffer(vp8);\n                }\n            }\n        }\n        vp8->first_part_size = (AV_RL16(&buf[1]) << 3 | buf[0] >> 5) + 3;\n        if ((res = avio_open_dyn_buf(&vp8->data)) < 0)\n            return res;\n        vp8->timestamp = *timestamp;\n        vp8->broken_frame = 0;\n        vp8->prev_pictureid = pictureid;\n        vp8->is_keyframe = !non_key;\n    } else {\n        uint16_t expected_seq = vp8->prev_seq + 1;\n        if (!vp8->sequence_ok)\n            return AVERROR(EAGAIN);\n        if (vp8->timestamp != *timestamp) {\n            vp8->sequence_ok = 0;\n            av_log(ctx, AV_LOG_WARNING,\n                   "Received no start marker; dropping frame\\n");\n            vp8_free_buffer(vp8);\n            return AVERROR(EAGAIN);\n        }\n        if (seq != expected_seq) {\n            if (vp8->is_keyframe) {\n                return vp8_broken_sequence(ctx, vp8,\n                                           "Missed part of a keyframe, sequence broken\\n");\n            } else if (vp8->data && avio_tell(vp8->data) >= vp8->first_part_size) {\n                vp8->broken_frame = 1;\n            } else {\n                return vp8_broken_sequence(ctx, vp8,\n                                           "Missed part of the first partition, sequence broken\\n");\n            }\n        }\n    }\n    if (!vp8->data)\n        return vp8_broken_sequence(ctx, vp8, "Received no start marker\\n");\n    vp8->prev_seq = seq;\n    avio_write(vp8->data, buf, len);\n    if (end_packet) {\n        int ret;\n        if (returned_old_frame) {\n            *timestamp = old_timestamp;\n            return 1;\n        }\n        ret = ff_rtp_finalize_packet(pkt, &vp8->data, st->index);\n        if (ret < 0)\n            return ret;\n        if (vp8->broken_frame)\n            pkt->size = vp8->first_part_size;\n        return 0;\n    }\n    return AVERROR(EAGAIN);\n}']