libavfilter/avfilter.c:305: error: Null Dereference
  pointer `ret` last assigned on line 300 could be null and is dereferenced by call to `ff_dlog_ref()` at line 305, column 106.

libavfilter/avfilter.c:288:1: start of procedure avfilter_get_video_buffer()
286. #define FF_DPRINTF_START(ctx, func) av_dlog(NULL, "%-16s: ", #func)
287. 
288. AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
     ^
289. {
290.     AVFilterBufferRef *ret = NULL;

libavfilter/avfilter.c:290:5: 
288. AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
289. {
290.     AVFilterBufferRef *ret = NULL;
         ^
291. 
292.     av_unused char buf[16];

libavfilter/avfilter.c:293:47: 
291. 
292.     av_unused char buf[16];
293.     FF_DPRINTF_START(NULL, get_video_buffer); ff_dlog_link(NULL, link, 0);
                                                   ^
294.     av_dlog(NULL, " perms:%s w:%d h:%d\n", ff_get_ref_perms_string(buf, sizeof(buf), perms), w, h);
295. 

libavfilter/avfilter.c:262:1: start of procedure ff_dlog_link()
  260. }
  261. 
  262. static void ff_dlog_link(void *ctx, AVFilterLink *link, int end)
       ^
  263. {
  264.     if (link->type == AVMEDIA_TYPE_VIDEO) {

libavfilter/avfilter.c:264:9: Taking false branch
  262. static void ff_dlog_link(void *ctx, AVFilterLink *link, int end)
  263. {
  264.     if (link->type == AVMEDIA_TYPE_VIDEO) {
               ^
  265.         av_dlog(ctx,
  266.                 "link[%p s:%dx%d fmt:%-16s %-16s->%-16s]%s",

libavfilter/avfilter.c:274:9: Skipping av_get_channel_layout_string(): empty list of specs
  272.     } else {
  273.         char buf[128];
  274.         av_get_channel_layout_string(buf, sizeof(buf), -1, link->channel_layout);
               ^
  275. 
  276.         av_dlog(ctx,

libavfilter/avfilter.c:264:5: 
  262. static void ff_dlog_link(void *ctx, AVFilterLink *link, int end)
  263. {
  264.     if (link->type == AVMEDIA_TYPE_VIDEO) {
           ^
  265.         av_dlog(ctx,
  266.                 "link[%p s:%dx%d fmt:%-16s %-16s->%-16s]%s",

libavfilter/avfilter.c:284:1: return from a call to ff_dlog_link
  282.                 end ? "\n" : "");
  283.     }
  284. }
       ^
  285. 
  286. #define FF_DPRINTF_START(ctx, func) av_dlog(NULL, "%-16s: ", #func)

libavfilter/avfilter.c:296:9: Taking true branch
294.     av_dlog(NULL, " perms:%s w:%d h:%d\n", ff_get_ref_perms_string(buf, sizeof(buf), perms), w, h);
295. 
296.     if (link->dstpad->get_video_buffer)
             ^
297.         ret = link->dstpad->get_video_buffer(link, perms, w, h);
298. 

libavfilter/avfilter.c:297:9: Skipping __function_pointer__(): unresolved function pointer
295. 
296.     if (link->dstpad->get_video_buffer)
297.         ret = link->dstpad->get_video_buffer(link, perms, w, h);
             ^
298. 
299.     if (!ret)

libavfilter/avfilter.c:299:10: Taking true branch
297.         ret = link->dstpad->get_video_buffer(link, perms, w, h);
298. 
299.     if (!ret)
              ^
300.         ret = avfilter_default_get_video_buffer(link, perms, w, h);
301. 

libavfilter/avfilter.c:300:9: Skipping avfilter_default_get_video_buffer(): empty list of specs
298. 
299.     if (!ret)
300.         ret = avfilter_default_get_video_buffer(link, perms, w, h);
             ^
301. 
302.     if (ret)

libavfilter/avfilter.c:302:9: Taking false branch
300.         ret = avfilter_default_get_video_buffer(link, perms, w, h);
301. 
302.     if (ret)
             ^
303.         ret->type = AVMEDIA_TYPE_VIDEO;
304. 

libavfilter/avfilter.c:305:47: 
303.         ret->type = AVMEDIA_TYPE_VIDEO;
304. 
305.     FF_DPRINTF_START(NULL, get_video_buffer); ff_dlog_link(NULL, link, 0); av_dlog(NULL, " returning "); ff_dlog_ref(NULL, ret, 1);
                                                   ^
306. 
307.     return ret;

libavfilter/avfilter.c:262:1: start of procedure ff_dlog_link()
  260. }
  261. 
  262. static void ff_dlog_link(void *ctx, AVFilterLink *link, int end)
       ^
  263. {
  264.     if (link->type == AVMEDIA_TYPE_VIDEO) {

libavfilter/avfilter.c:264:9: Taking false branch
  262. static void ff_dlog_link(void *ctx, AVFilterLink *link, int end)
  263. {
  264.     if (link->type == AVMEDIA_TYPE_VIDEO) {
               ^
  265.         av_dlog(ctx,
  266.                 "link[%p s:%dx%d fmt:%-16s %-16s->%-16s]%s",

libavfilter/avfilter.c:274:9: Skipping av_get_channel_layout_string(): empty list of specs
  272.     } else {
  273.         char buf[128];
  274.         av_get_channel_layout_string(buf, sizeof(buf), -1, link->channel_layout);
               ^
  275. 
  276.         av_dlog(ctx,

libavfilter/avfilter.c:264:5: 
  262. static void ff_dlog_link(void *ctx, AVFilterLink *link, int end)
  263. {
  264.     if (link->type == AVMEDIA_TYPE_VIDEO) {
           ^
  265.         av_dlog(ctx,
  266.                 "link[%p s:%dx%d fmt:%-16s %-16s->%-16s]%s",

libavfilter/avfilter.c:284:1: return from a call to ff_dlog_link
  282.                 end ? "\n" : "");
  283.     }
  284. }
       ^
  285. 
  286. #define FF_DPRINTF_START(ctx, func) av_dlog(NULL, "%-16s: ", #func)

libavfilter/avfilter.c:305:106: 
303.         ret->type = AVMEDIA_TYPE_VIDEO;
304. 
305.     FF_DPRINTF_START(NULL, get_video_buffer); ff_dlog_link(NULL, link, 0); av_dlog(NULL, " returning "); ff_dlog_ref(NULL, ret, 1);
                                                                                                              ^
306. 
307.     return ret;

libavfilter/avfilter.c:232:1: start of procedure ff_dlog_ref()
  230. #endif
  231. 
  232. static void ff_dlog_ref(void *ctx, AVFilterBufferRef *ref, int end)
       ^
  233. {
  234.     av_unused char buf[16];

libavfilter/avfilter.c:241:9: Taking false branch
  239.             ref->pts, ref->pos);
  240. 
  241.     if (ref->video) {
               ^
  242.         av_dlog(ctx, " a:%d/%d s:%dx%d i:%c iskey:%d type:%c",
  243.                 ref->video->pixel_aspect.num, ref->video->pixel_aspect.den,
