X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Finternal.h;h=766debeb714a077feffe4b4374855c3dcb57fb9e;hb=af1238f863fda4a1a6fc00525b651a3d9b31eccd;hp=1cc6bf3b10dfa46b8be9b2473466c71f2debbb7f;hpb=2730a2013daab9a69b021fe107a60e601ec9d688;p=ffmpeg diff --git a/libavfilter/internal.h b/libavfilter/internal.h index 1cc6bf3b10d..766debeb714 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -28,6 +28,7 @@ #include "avfilter.h" #include "avfiltergraph.h" #include "formats.h" +#include "framepool.h" #include "thread.h" #include "version.h" #include "video.h" @@ -225,6 +226,21 @@ int ff_parse_channel_layout(int64_t *ret, int *nret, const char *arg, void ff_update_link_current_pts(AVFilterLink *link, int64_t pts); +/** + * Set the status field of a link from the source filter. + * The pts should reflect the timestamp of the status change, + * in link time base and relative to the frames timeline. + * In particular, for AVERROR_EOF, it should reflect the + * end time of the last frame. + */ +void ff_avfilter_link_set_in_status(AVFilterLink *link, int status, int64_t pts); + +/** + * Set the status field of a link from the destination filter. + * The pts should probably be left unset (AV_NOPTS_VALUE). + */ +void ff_avfilter_link_set_out_status(AVFilterLink *link, int status, int64_t pts); + void ff_command_queue_pop(AVFilterContext *filter); /* misc trace functions */ @@ -318,6 +334,8 @@ int ff_poll_frame(AVFilterLink *link); */ int ff_request_frame(AVFilterLink *link); +int ff_request_frame_to_filter(AVFilterLink *link); + #define AVFILTER_DEFINE_CLASS(fname) \ static const AVClass fname##_class = { \ .class_name = #fname, \ @@ -363,6 +381,11 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name); */ void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter); +/** + * Run one round of processing on a filter graph. + */ +int ff_filter_graph_run_once(AVFilterGraph *graph); + /** * Normalize the qscale factor * FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below