]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vsrc_testsrc.c
avfilter: x86: Use more precise compile template names
[ffmpeg] / libavfilter / vsrc_testsrc.c
index 6de16768e8c4e571ce5505cdc9885d3090a2ab29..56404fe21aedbec49c44b718df80ffd23fe26c36 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <float.h>
 
+#include "libavutil/common.h"
 #include "libavutil/mathematics.h"
 #include "libavutil/opt.h"
 #include "libavutil/intreadwrite.h"
@@ -130,10 +131,14 @@ static int request_frame(AVFilterLink *outlink)
 {
     TestSourceContext *test = outlink->src->priv;
     AVFilterBufferRef *picref;
+    int ret;
 
     if (test->max_pts >= 0 && test->pts > test->max_pts)
         return AVERROR_EOF;
     picref = ff_get_video_buffer(outlink, AV_PERM_WRITE, test->w, test->h);
+    if (!picref)
+        return AVERROR(ENOMEM);
+
     picref->pts = test->pts++;
     picref->pos = -1;
     picref->video->key_frame = 1;
@@ -143,9 +148,10 @@ static int request_frame(AVFilterLink *outlink)
     test->nb_frame++;
     test->fill_picture_fn(outlink->src, picref);
 
-    ff_start_frame(outlink, picref);
-    ff_draw_slice(outlink, 0, test->h, 1);
-    ff_end_frame(outlink);
+    if ((ret = ff_start_frame(outlink, picref)) < 0 ||
+        (ret = ff_draw_slice(outlink, 0, test->h, 1)) < 0 ||
+        (ret = ff_end_frame(outlink)) < 0)
+        return ret;
 
     return 0;
 }