]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/sink_buffer.c
lavf: minor bump for avformat_queue_attached_pictures()
[ffmpeg] / libavfilter / sink_buffer.c
index 608a8876c266c60733bda77a1877246cc354d7fa..f7b16db50a3ec1f9c45d4816d98c14fccd5a91ed 100644 (file)
@@ -96,7 +96,7 @@ static av_cold void common_uninit(AVFilterContext *ctx)
     }
 }
 
-static void end_frame(AVFilterLink *inlink)
+static int end_frame(AVFilterLink *inlink)
 {
     AVFilterContext *ctx = inlink->dst;
     BufferSinkContext *buf = inlink->dst->priv;
@@ -108,13 +108,14 @@ static void end_frame(AVFilterLink *inlink)
             av_log(ctx, AV_LOG_ERROR,
                    "Cannot buffer more frames. Consume some available frames "
                    "before adding new ones.\n");
-            return;
+            return AVERROR(ENOMEM);
         }
     }
 
     /* cache frame */
     av_fifo_generic_write(buf->fifo,
                           &inlink->cur_buf, sizeof(AVFilterBufferRef *), NULL);
+    inlink->cur_buf = NULL;
     if (buf->warning_limit &&
         av_fifo_size(buf->fifo) / sizeof(AVFilterBufferRef *) >= buf->warning_limit) {
         av_log(ctx, AV_LOG_WARNING,
@@ -123,6 +124,7 @@ static void end_frame(AVFilterLink *inlink)
                (char *)av_x_if_null(ctx->name, ctx->filter->name));
         buf->warning_limit *= 10;
     }
+    return 0;
 }
 
 void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size)