00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AVFILTER_INTERNAL_H
00020 #define AVFILTER_INTERNAL_H
00021
00027 #include "avfilter.h"
00028 #include "avfiltergraph.h"
00029 #include "formats.h"
00030
00031 #define POOL_SIZE 32
00032 typedef struct AVFilterPool {
00033 AVFilterBufferRef *pic[POOL_SIZE];
00034 int count;
00035 int refcount;
00036 int draining;
00037 } AVFilterPool;
00038
00039 typedef struct AVFilterCommand {
00040 double time;
00041 char *command;
00042 char *arg;
00043 int flags;
00044 struct AVFilterCommand *next;
00045 } AVFilterCommand;
00046
00055 int ff_avfilter_graph_check_validity(AVFilterGraph *graphctx, AVClass *log_ctx);
00056
00062 int ff_avfilter_graph_config_links(AVFilterGraph *graphctx, AVClass *log_ctx);
00063
00067 int ff_avfilter_graph_config_formats(AVFilterGraph *graphctx, AVClass *log_ctx);
00068
00072 void ff_avfilter_graph_update_heap(AVFilterGraph *graph, AVFilterLink *link);
00073
00075 void ff_avfilter_default_free_buffer(AVFilterBuffer *buf);
00076
00078 int ff_fmt_is_in(int fmt, const int *fmts);
00079
00084 int *ff_copy_int_list(const int * const list);
00085
00090 int64_t *ff_copy_int64_list(const int64_t * const list);
00091
00092
00093
00102 int ff_parse_pixel_format(enum PixelFormat *ret, const char *arg, void *log_ctx);
00103
00112 int ff_parse_sample_rate(int *ret, const char *arg, void *log_ctx);
00113
00122 int ff_parse_time_base(AVRational *ret, const char *arg, void *log_ctx);
00123
00132 int ff_parse_sample_format(int *ret, const char *arg, void *log_ctx);
00133
00142 int ff_parse_channel_layout(int64_t *ret, const char *arg, void *log_ctx);
00143
00147 static inline void ff_null_start_frame_keep_ref(AVFilterLink *inlink,
00148 AVFilterBufferRef *picref)
00149 {
00150 avfilter_start_frame(inlink->dst->outputs[0], avfilter_ref_buffer(picref, ~0));
00151 }
00152
00153 void ff_update_link_current_pts(AVFilterLink *link, int64_t pts);
00154
00155 void ff_free_pool(AVFilterPool *pool);
00156
00157 void ff_command_queue_pop(AVFilterContext *filter);
00158
00159 #define FF_DPRINTF_START(ctx, func) av_dlog(NULL, "%-16s: ", #func)
00160
00161 void ff_dlog_link(void *ctx, AVFilterLink *link, int end);
00162
00163 #endif