22 #ifndef AVFILTER_AVFILTER_H
23 #define AVFILTER_AVFILTER_H
69 #if FF_API_AVFILTERBUFFER
75 typedef struct AVFilterBuffer {
103 void (*free)(
struct AVFilterBuffer *
buf);
110 #define AV_PERM_READ 0x01
111 #define AV_PERM_WRITE 0x02
112 #define AV_PERM_PRESERVE 0x04
113 #define AV_PERM_REUSE 0x08
114 #define AV_PERM_REUSE2 0x10
115 #define AV_PERM_NEG_LINESIZES 0x20
116 #define AV_PERM_ALIGN 0x40
118 #define AVFILTER_ALIGN 16 //not part of ABI
125 typedef struct AVFilterBufferRefAudioProps {
126 uint64_t channel_layout;
130 } AVFilterBufferRefAudioProps;
137 typedef struct AVFilterBufferRefVideoProps {
145 int qp_table_linesize;
148 } AVFilterBufferRefVideoProps;
158 typedef struct AVFilterBufferRef {
178 AVFilterBufferRefVideoProps *video;
179 AVFilterBufferRefAudioProps *audio;
202 void avfilter_copy_buffer_ref_props(AVFilterBufferRef *dst,
const AVFilterBufferRef *
src);
214 AVFilterBufferRef *avfilter_ref_buffer(AVFilterBufferRef *ref,
int pmask);
226 void avfilter_unref_buffer(AVFilterBufferRef *ref);
236 void avfilter_unref_bufferp(AVFilterBufferRef **ref);
245 #if FF_API_AVFILTERPAD_PUBLIC
299 int (*start_frame)(
AVFilterLink *link, AVFilterBufferRef *picref);
431 #define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0)
437 #define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1)
442 #define AVFILTER_FLAG_SLICE_THREADS (1 << 2)
451 #define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16)
459 #define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17)
464 #define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL)
628 #define AVFILTER_THREAD_SLICE (1 << 0)
900 #if FF_API_AVFILTERBUFFER
932 AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_arrays(
uint8_t **
data,
937 uint64_t channel_layout);
952 AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_arrays_channels(
uint8_t **
data,
958 uint64_t channel_layout);
963 #define AVFILTER_CMD_FLAG_ONE 1
964 #define AVFILTER_CMD_FLAG_FAST 2
975 #if FF_API_OLD_FILTER_REGISTER
978 void avfilter_uninit(
void);
1000 #if !FF_API_NOCONST_GET_NAME
1012 #if FF_API_OLD_FILTER_REGISTER
1024 #if FF_API_AVFILTER_OPEN
1040 #if FF_API_AVFILTER_INIT_FILTER
1107 unsigned filt_srcpad_idx,
unsigned filt_dstpad_idx);
1109 #if FF_API_AVFILTERBUFFER
1117 int avfilter_copy_frame_props(AVFilterBufferRef *dst,
const AVFrame *
src);
1126 int avfilter_copy_buf_props(
AVFrame *dst,
const AVFilterBufferRef *
src);
1165 void *
arg,
int *
ret,
int nb_jobs);
1169 #if FF_API_FOO_COUNT
1171 unsigned filter_count_unused;
1174 #if !FF_API_FOO_COUNT
1180 #if FF_API_FOO_COUNT
1279 #if FF_API_AVFILTER_OPEN
1307 const char *
name,
const char *
args,
void *opaque,
1376 #if AV_HAVE_INCOMPATIBLE_LIBAV_ABI || !FF_API_OLD_GRAPH_PARSE