libavcodec/pthread.c:802: error: Buffer Overrun L2
  Offset: [1, 33] (⇐ [0, 32] + 1) Size: 33.

libavcodec/pthread.c:794:35: <Length trace>
792. 
793.     pthread_mutex_lock(&p->parent->buffer_mutex);
794.     f->thread_opaque = progress = allocate_progress(p);
                                       ^
795. 
796.     if (!progress) {

libavcodec/pthread.c:794:35: Call
792. 
793.     pthread_mutex_lock(&p->parent->buffer_mutex);
794.     f->thread_opaque = progress = allocate_progress(p);
                                       ^
795. 
796.     if (!progress) {

libavcodec/pthread.c:767:9: Assignment
  765.     if (i == MAX_BUFFERS) {
  766.         av_log(p->avctx, AV_LOG_ERROR, "allocate_progress() overflow\n");
  767.         return NULL;
               ^
  768.     }
  769. 

libavcodec/pthread.c:794:24: Assignment
792. 
793.     pthread_mutex_lock(&p->parent->buffer_mutex);
794.     f->thread_opaque = progress = allocate_progress(p);
                            ^
795. 
796.     if (!progress) {

libavcodec/pthread.c:802:5: Array access: Offset: [1, 33] (⇐ [0, 32] + 1) Size: 33
800. 
801.     progress[0] =
802.     progress[1] = -1;
         ^
803. 
804.     if (avctx->thread_safe_callbacks ||

int ff_thread_get_buffer(AVCodecContext *avctx, AVFrame *f)
{
    PerThreadContext *p = avctx->thread_opaque;
    int *progress, err;
    f->owner = avctx;
    if (!(avctx->active_thread_type&FF_THREAD_FRAME)) {
        f->thread_opaque = NULL;
        return avctx->get_buffer(avctx, f);
    }
    if (p->state != STATE_SETTING_UP &&
        (avctx->codec->update_thread_context || !avctx->thread_safe_callbacks)) {
        av_log(avctx, AV_LOG_ERROR, "get_buffer() cannot be called after ff_thread_finish_setup()\n");
        return -1;
    }
    pthread_mutex_lock(&p->parent->buffer_mutex);
    f->thread_opaque = progress = allocate_progress(p);
    if (!progress) {
        pthread_mutex_unlock(&p->parent->buffer_mutex);
        return -1;
    }
    progress[0] =
    progress[1] = -1;
    if (avctx->thread_safe_callbacks ||
        avctx->get_buffer == avcodec_default_get_buffer) {
        err = avctx->get_buffer(avctx, f);
    } else {
        p->requested_frame = f;
        p->state = STATE_GET_BUFFER;
        pthread_mutex_lock(&p->progress_mutex);
        pthread_cond_signal(&p->progress_cond);
        while (p->state != STATE_SETTING_UP)
            pthread_cond_wait(&p->progress_cond, &p->progress_mutex);
        err = p->result;
        pthread_mutex_unlock(&p->progress_mutex);
        if (!avctx->codec->update_thread_context)
            ff_thread_finish_setup(avctx);
    }
    pthread_mutex_unlock(&p->parent->buffer_mutex);
    f->age = INT_MAX;
    return err;
}
['int ff_thread_get_buffer(AVCodecContext *avctx, AVFrame *f)\n{\n    PerThreadContext *p = avctx->thread_opaque;\n    int *progress, err;\n    f->owner = avctx;\n    if (!(avctx->active_thread_type&FF_THREAD_FRAME)) {\n        f->thread_opaque = NULL;\n        return avctx->get_buffer(avctx, f);\n    }\n    if (p->state != STATE_SETTING_UP &&\n        (avctx->codec->update_thread_context || !avctx->thread_safe_callbacks)) {\n        av_log(avctx, AV_LOG_ERROR, "get_buffer() cannot be called after ff_thread_finish_setup()\\n");\n        return -1;\n    }\n    pthread_mutex_lock(&p->parent->buffer_mutex);\n    f->thread_opaque = progress = allocate_progress(p);\n    if (!progress) {\n        pthread_mutex_unlock(&p->parent->buffer_mutex);\n        return -1;\n    }\n    progress[0] =\n    progress[1] = -1;\n    if (avctx->thread_safe_callbacks ||\n        avctx->get_buffer == avcodec_default_get_buffer) {\n        err = avctx->get_buffer(avctx, f);\n    } else {\n        p->requested_frame = f;\n        p->state = STATE_GET_BUFFER;\n        pthread_mutex_lock(&p->progress_mutex);\n        pthread_cond_signal(&p->progress_cond);\n        while (p->state != STATE_SETTING_UP)\n            pthread_cond_wait(&p->progress_cond, &p->progress_mutex);\n        err = p->result;\n        pthread_mutex_unlock(&p->progress_mutex);\n        if (!avctx->codec->update_thread_context)\n            ff_thread_finish_setup(avctx);\n    }\n    pthread_mutex_unlock(&p->parent->buffer_mutex);\n    f->age = INT_MAX;\n    return err;\n}', 'static int *allocate_progress(PerThreadContext *p)\n{\n    int i;\n    for (i = 0; i < MAX_BUFFERS; i++)\n        if (!p->progress_used[i]) break;\n    if (i == MAX_BUFFERS) {\n        av_log(p->avctx, AV_LOG_ERROR, "allocate_progress() overflow\\n");\n        return NULL;\n    }\n    p->progress_used[i] = 1;\n    return p->progress[i];\n}']