int av_grow_packet(AVPacket *pkt, int grow_by)

{

    int new_size;

    av_assert0((unsigned)pkt->size <= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE);

    if ((unsigned)grow_by >

        INT_MAX - (pkt->size + AV_INPUT_BUFFER_PADDING_SIZE))

        return -1;



    new_size = pkt->size + grow_by + AV_INPUT_BUFFER_PADDING_SIZE;

    if (pkt->buf) {

        size_t data_offset;

        uint8_t *old_data = pkt->data;

        if (pkt->data == NULL) {

            data_offset = 0;

            pkt->data = pkt->buf->data;

        } else {

            data_offset = pkt->data - pkt->buf->data;

            if (data_offset > INT_MAX - new_size)

                return -1;

        }



        if (new_size + data_offset > pkt->buf->size) {

            int ret = av_buffer_realloc(&pkt->buf, new_size + data_offset);

            if (ret < 0) {

                pkt->data = old_data;

                return ret;

            }

            pkt->data = pkt->buf->data + data_offset;

        }

    } else {

        pkt->buf = av_buffer_alloc(new_size);

        if (!pkt->buf)

            return AVERROR(ENOMEM);

        memcpy(pkt->buf->data, pkt->data, pkt->size);

        pkt->data = pkt->buf->data;

    }

    pkt->size += grow_by;

    memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE);



    return 0;

}

int av_grow_packet(AVPacket *pkt, int grow_by)

{

    int new_size;

    av_assert0((unsigned)pkt->size <= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE);

    if ((unsigned)grow_by >

        INT_MAX - (pkt->size + AV_INPUT_BUFFER_PADDING_SIZE))

        return -1;



    new_size = pkt->size + grow_by + AV_INPUT_BUFFER_PADDING_SIZE;

    if (pkt->buf) {

        size_t data_offset;

        uint8_t *old_data = pkt->data;

        if (pkt->data == NULL) {

            data_offset = 0;

            pkt->data = pkt->buf->data;

        } else {

            data_offset = pkt->data - pkt->buf->data;

            if (data_offset > INT_MAX - new_size)

                return -1;

        }



        if (new_size + data_offset > pkt->buf->size) {

            int ret = av_buffer_realloc(&pkt->buf, new_size + data_offset);

            if (ret < 0) {

                pkt->data = old_data;

                return ret;

            }

            pkt->data = pkt->buf->data + data_offset;

        }

    } else {

        pkt->buf = av_buffer_alloc(new_size);

        if (!pkt->buf)

            return AVERROR(ENOMEM);

        memcpy(pkt->buf->data, pkt->data, pkt->size);

        pkt->data = pkt->buf->data;

    }

    pkt->size += grow_by;

    memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE);



    return 0;

}

        memcpy(pkt->buf->data, pkt->data, pkt->size);
int FUNC_0(AVPacket *VAR_0, int VAR_1)

{

    int VAR_2;

    av_assert0((unsigned)VAR_0->size <= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE);

    if ((unsigned)VAR_1 >

        INT_MAX - (VAR_0->size + AV_INPUT_BUFFER_PADDING_SIZE))

        return -1;



    VAR_2 = VAR_0->size + VAR_1 + AV_INPUT_BUFFER_PADDING_SIZE;

    if (VAR_0->buf) {

        size_t data_offset;

        uint8_t *old_data = VAR_0->data;

        if (VAR_0->data == NULL) {

            data_offset = 0;

            VAR_0->data = VAR_0->buf->data;

        } else {

            data_offset = VAR_0->data - VAR_0->buf->data;

            if (data_offset > INT_MAX - VAR_2)

                return -1;

        }



        if (VAR_2 + data_offset > VAR_0->buf->size) {

            int VAR_3 = av_buffer_realloc(&VAR_0->buf, VAR_2 + data_offset);

            if (VAR_3 < 0) {

                VAR_0->data = old_data;

                return VAR_3;

            }

            VAR_0->data = VAR_0->buf->data + data_offset;

        }

    } else {

        VAR_0->buf = av_buffer_alloc(VAR_2);

        if (!VAR_0->buf)

            return AVERROR(ENOMEM);

        memcpy(VAR_0->buf->data, VAR_0->data, VAR_0->size);

        VAR_0->data = VAR_0->buf->data;

    }

    VAR_0->size += VAR_1;

    memset(VAR_0->data + VAR_0->size, 0, AV_INPUT_BUFFER_PADDING_SIZE);



    return 0;

}

int FUNC_0(AVPacket *VAR_0, int VAR_1)
{ int VAR_2; av_assert0((unsigned)VAR_0->size <= INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE); if ((unsigned)VAR_1 >
INT_MAX - (VAR_0->size + AV_INPUT_BUFFER_PADDING_SIZE))
return -1; VAR_2 = VAR_0->size + VAR_1 + AV_INPUT_BUFFER_PADDING_SIZE; if (VAR_0->buf) { size_t data_offset; uint8_t *old_data = VAR_0->data; if (VAR_0->data == NULL) { data_offset = 0; VAR_0->data = VAR_0->buf->data; } else { data_offset = VAR_0->data - VAR_0->buf->data; if (data_offset > INT_MAX - VAR_2)
return -1; } if (VAR_2 + data_offset > VAR_0->buf->size) { int VAR_3 = av_buffer_realloc(&VAR_0->buf, VAR_2 + data_offset); if (VAR_3 < 0) { VAR_0->data = old_data; return VAR_3; } VAR_0->data = VAR_0->buf->data + data_offset; } } else { VAR_0->buf = av_buffer_alloc(VAR_2); if (!VAR_0->buf)
return AVERROR(ENOMEM); memcpy(VAR_0->buf->data, VAR_0->data, VAR_0->size); VAR_0->data = VAR_0->buf->data; } VAR_0->size += VAR_1; memset(VAR_0->data + VAR_0->size, 0, AV_INPUT_BUFFER_PADDING_SIZE); return 0; }