31 typedef struct vf_info_s {
41 #define NUM_NUMBERED_MPI 50
43 typedef struct vf_image_context_s {
56 typedef struct vf_instance {
59 int (*
config)(
struct vf_instance *vf,
61 unsigned int flags,
unsigned int outfmt);
63 int request,
void*
data);
70 void (*start_slice)(
struct vf_instance *vf,
73 unsigned char**
src,
int*
stride,
int w,
int h,
int x,
int y);
76 int (*continue_buffered_image)(
struct vf_instance *vf);
92 typedef struct vf_seteq_s
98 #define VFCTRL_QUERY_MAX_PP_LEVEL 4
99 #define VFCTRL_SET_PP_LEVEL 5
100 #define VFCTRL_SET_EQUALIZER 6
101 #define VFCTRL_GET_EQUALIZER 8
102 #define VFCTRL_DRAW_OSD 7
103 #define VFCTRL_CHANGE_RECTANGLE 9
104 #define VFCTRL_FLIP_PAGE 10
105 #define VFCTRL_DUPLICATE_FRAME 11
106 #define VFCTRL_SKIP_NEXT_FRAME 12
107 #define VFCTRL_FLUSH_FRAMES 13
108 #define VFCTRL_SCREENSHOT 14
109 #define VFCTRL_INIT_EOSD 15
110 #define VFCTRL_DRAW_EOSD 16
111 #define VFCTRL_GET_PTS 17
112 #define VFCTRL_SET_DEINTERLACE 18
113 #define VFCTRL_GET_DEINTERLACE 19
118 #define MP_NOPTS_VALUE (-1LL<<63) //both int64_t and double should be able to represent this exactly
138 unsigned int flags,
unsigned int outfmt);
152 unsigned int flags,
unsigned int outfmt);
164 return (63 - qscale + 2) >> 2;
static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts)
vf_instance_t * vf_open_plugin(const vf_info_t *const *filter_list, vf_instance_t *next, const char *name, char **args)
unsigned int default_caps
mp_image_t * ff_vf_get_image(vf_instance_t *vf, unsigned int outfmt, int mp_imgtype, int mp_imgflag, int w, int h)
static int config(struct vf_instance *vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt)
static int query_format(struct vf_instance *vf, unsigned int fmt)
static void draw_slice(HYuvContext *s, AVFrame *frame, int y)
int ff_vf_next_config(struct vf_instance *vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt)
int ff_vf_output_queued_frame(vf_instance_t *vf)
static av_cold int uninit(AVCodecContext *avctx)
unsigned int default_reqs
void ff_vf_uninit_filter_chain(vf_instance_t *vf)
int ff_vf_next_control(struct vf_instance *vf, int request, void *data)
void ff_vf_extra_flip(struct vf_instance *vf)
int ff_vf_config_wrapper(struct vf_instance *vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt)
vf_instance_t * vf_open_encoder(vf_instance_t *next, const char *name, char *args)
void ff_vf_clone_mpi_attributes(mp_image_t *dst, mp_image_t *src)
typedef void(RENAME(mix_any_func_type))
BYTE int const BYTE int int int height
vf_instance_t * ff_append_filters(vf_instance_t *last)
static void get_image(struct vf_instance *vf, mp_image_t *mpi)
static int vf_open(vf_instance_t *vf, char *args)
void ff_vf_uninit_filter(vf_instance_t *vf)
vf_instance_t * vf_open_filter(vf_instance_t *next, const char *name, char **args)
void ff_vf_next_draw_slice(struct vf_instance *vf, unsigned char **src, int *stride, int w, int h, int x, int y)
int ff_vf_next_put_image(struct vf_instance *vf, mp_image_t *mpi, double pts)
vf_instance_t * ff_vf_add_before_vo(vf_instance_t **vf, char *name, char **args)
void ff_vf_mpi_clear(mp_image_t *mpi, int x0, int y0, int w, int h)
vf_image_context_t imgctx
unsigned int ff_vf_match_csp(vf_instance_t **vfp, const unsigned int *list, unsigned int preferred)
static int norm_qscale(int qscale, int type)
int ff_vf_next_query_format(struct vf_instance *vf, unsigned int fmt)
static int control(struct vf_instance *vf, int request, void *data)
void ff_vf_queue_frame(vf_instance_t *vf, int(*)(vf_instance_t *))
struct vf_instance * next