libavcodec/utils.c:473: error: Null Dereference
  pointer `desc` last assigned on line 472 could be null and is dereferenced at line 473, column 22.

libavcodec/utils.c:469:1: start of procedure video_get_buffer()
467. }
468. 
469. static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
     ^
470. {
471.     FramePool *pool = s->internal->pool;

libavcodec/utils.c:471:5: 
469. static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
470. {
471.     FramePool *pool = s->internal->pool;
         ^
472.     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pic->format);
473.     int pixel_size = desc->comp[0].step_minus1 + 1;

libavcodec/utils.c:472:5: 
470. {
471.     FramePool *pool = s->internal->pool;
472.     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pic->format);
         ^
473.     int pixel_size = desc->comp[0].step_minus1 + 1;
474.     int h_chroma_shift, v_chroma_shift;

libavutil/pixdesc.c:1507:1: start of procedure av_pix_fmt_desc_get()
  1505. }
  1506. 
  1507. const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
        ^
  1508. {
  1509.     if (pix_fmt < 0 || pix_fmt >= AV_PIX_FMT_NB)

libavutil/pixdesc.c:1509:9: Taking false branch
  1507. const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
  1508. {
  1509.     if (pix_fmt < 0 || pix_fmt >= AV_PIX_FMT_NB)
                ^
  1510.         return NULL;
  1511.     return &av_pix_fmt_descriptors[pix_fmt];

libavutil/pixdesc.c:1509:24: Taking true branch
  1507. const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)
  1508. {
  1509.     if (pix_fmt < 0 || pix_fmt >= AV_PIX_FMT_NB)
                               ^
  1510.         return NULL;
  1511.     return &av_pix_fmt_descriptors[pix_fmt];

libavutil/pixdesc.c:1510:9: 
  1508. {
  1509.     if (pix_fmt < 0 || pix_fmt >= AV_PIX_FMT_NB)
  1510.         return NULL;
                ^
  1511.     return &av_pix_fmt_descriptors[pix_fmt];
  1512. }

libavutil/pixdesc.c:1512:1: return from a call to av_pix_fmt_desc_get
  1510.         return NULL;
  1511.     return &av_pix_fmt_descriptors[pix_fmt];
  1512. }
        ^
  1513. 
  1514. const AVPixFmtDescriptor *av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev)

libavcodec/utils.c:473:5: 
471.     FramePool *pool = s->internal->pool;
472.     const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pic->format);
473.     int pixel_size = desc->comp[0].step_minus1 + 1;
         ^
474.     int h_chroma_shift, v_chroma_shift;
475.     int i;

static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
{
    FramePool *pool = s->internal->pool;
    const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pic->format);
    int pixel_size = desc->comp[0].step_minus1 + 1;
    int h_chroma_shift, v_chroma_shift;
    int i;
    if (pic->data[0] != NULL) {
        av_log(s, AV_LOG_ERROR, "pic->data[0]!=NULL in avcodec_default_get_buffer\n");
        return -1;
    }
    memset(pic->data, 0, sizeof(pic->data));
    pic->extended_data = pic->data;
    av_pix_fmt_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);
    for (i = 0; i < 4 && pool->pools[i]; i++) {
        const int h_shift = i == 0 ? 0 : h_chroma_shift;
        const int v_shift = i == 0 ? 0 : v_chroma_shift;
        pic->linesize[i] = pool->linesize[i];
        pic->buf[i] = av_buffer_pool_get(pool->pools[i]);
        if (!pic->buf[i])
            goto fail;
        if ((s->flags & CODEC_FLAG_EMU_EDGE) || !pool->pools[2])
            pic->data[i] = pic->buf[i]->data;
        else {
            pic->data[i] = pic->buf[i]->data +
                FFALIGN((pic->linesize[i] * EDGE_WIDTH >> v_shift) +
                        (pixel_size * EDGE_WIDTH >> h_shift), pool->stride_align[i]);
        }
    }
    for (; i < AV_NUM_DATA_POINTERS; i++) {
        pic->data[i] = NULL;
        pic->linesize[i] = 0;
    }
    if (pic->data[1] && !pic->data[2])
        avpriv_set_systematic_pal2((uint32_t *)pic->data[1], s->pix_fmt);
    if (s->debug & FF_DEBUG_BUFFERS)
        av_log(s, AV_LOG_DEBUG, "default_get_buffer called on pic %p\n", pic);
    return 0;
fail:
    av_frame_unref(pic);
    return AVERROR(ENOMEM);
}
['static int video_get_buffer(AVCodecContext *s, AVFrame *pic)\n{\n    FramePool *pool = s->internal->pool;\n    const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pic->format);\n    int pixel_size = desc->comp[0].step_minus1 + 1;\n    int h_chroma_shift, v_chroma_shift;\n    int i;\n    if (pic->data[0] != NULL) {\n        av_log(s, AV_LOG_ERROR, "pic->data[0]!=NULL in avcodec_default_get_buffer\\n");\n        return -1;\n    }\n    memset(pic->data, 0, sizeof(pic->data));\n    pic->extended_data = pic->data;\n    av_pix_fmt_get_chroma_sub_sample(s->pix_fmt, &h_chroma_shift, &v_chroma_shift);\n    for (i = 0; i < 4 && pool->pools[i]; i++) {\n        const int h_shift = i == 0 ? 0 : h_chroma_shift;\n        const int v_shift = i == 0 ? 0 : v_chroma_shift;\n        pic->linesize[i] = pool->linesize[i];\n        pic->buf[i] = av_buffer_pool_get(pool->pools[i]);\n        if (!pic->buf[i])\n            goto fail;\n        if ((s->flags & CODEC_FLAG_EMU_EDGE) || !pool->pools[2])\n            pic->data[i] = pic->buf[i]->data;\n        else {\n            pic->data[i] = pic->buf[i]->data +\n                FFALIGN((pic->linesize[i] * EDGE_WIDTH >> v_shift) +\n                        (pixel_size * EDGE_WIDTH >> h_shift), pool->stride_align[i]);\n        }\n    }\n    for (; i < AV_NUM_DATA_POINTERS; i++) {\n        pic->data[i] = NULL;\n        pic->linesize[i] = 0;\n    }\n    if (pic->data[1] && !pic->data[2])\n        avpriv_set_systematic_pal2((uint32_t *)pic->data[1], s->pix_fmt);\n    if (s->debug & FF_DEBUG_BUFFERS)\n        av_log(s, AV_LOG_DEBUG, "default_get_buffer called on pic %p\\n", pic);\n    return 0;\nfail:\n    av_frame_unref(pic);\n    return AVERROR(ENOMEM);\n}', 'const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)\n{\n    if (pix_fmt < 0 || pix_fmt >= AV_PIX_FMT_NB)\n        return NULL;\n    return &av_pix_fmt_descriptors[pix_fmt];\n}']