diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index 1b46b5bd7b..a12b928f62 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -148,6 +148,10 @@ int av_buffersrc_add_ref(AVFilterContext *s, AVFilterBufferRef *buf, int flags) c->warning_limit *= 10; } + if ((flags & AV_BUFFERSRC_FLAG_PUSH)) + if ((ret = s->output_pads[0].request_frame(s->outputs[0])) < 0) + return ret; + return 0; } diff --git a/libavfilter/buffersrc.h b/libavfilter/buffersrc.h index a23e48f677..d25316125f 100644 --- a/libavfilter/buffersrc.h +++ b/libavfilter/buffersrc.h @@ -40,6 +40,11 @@ enum { */ AV_BUFFERSRC_FLAG_NO_COPY = 2, + /** + * Immediately push the frame to the output. + */ + AV_BUFFERSRC_FLAG_PUSH = 4, + }; /** diff --git a/libavfilter/version.h b/libavfilter/version.h index db415d9df5..a008d94f2e 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -29,7 +29,7 @@ #include "libavutil/avutil.h" #define LIBAVFILTER_VERSION_MAJOR 3 -#define LIBAVFILTER_VERSION_MINOR 12 +#define LIBAVFILTER_VERSION_MINOR 13 #define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \