diff options
author | Kevin Mitchell <kevmitch@gmail.com> | 2014-04-13 07:00:11 -0700 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-04-13 18:03:01 +0200 |
commit | 7ae2eb8e2cbb041d22017632e95de6ac773db56a (patch) | |
tree | 3e283d18161fd472b8f1701d0f68acd08090d3e1 | |
parent | b11fdeab9ef94a4a0ce6a82877209662022067d9 (diff) | |
download | mpv-7ae2eb8e2cbb041d22017632e95de6ac773db56a.tar.bz2 mpv-7ae2eb8e2cbb041d22017632e95de6ac773db56a.tar.xz |
vf: add vf_control_by_label to send vfctrl to specific filter
-rw-r--r-- | video/filter/vf.c | 11 | ||||
-rw-r--r-- | video/filter/vf.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/video/filter/vf.c b/video/filter/vf.c index 118587766d..2e26ed0fbe 100644 --- a/video/filter/vf.c +++ b/video/filter/vf.c @@ -156,6 +156,17 @@ int vf_control_any(struct vf_chain *c, int cmd, void *arg) return CONTROL_UNKNOWN; } +int vf_control_by_label(struct vf_chain *c,int cmd, void *arg, bstr label) +{ + char *label_str = bstrdup0(NULL, label); + struct vf_instance *cur = vf_find_by_label(c, label_str); + talloc_free(label_str); + if (cur) + return cur->control(cur, cmd, arg); + else + return CONTROL_UNKNOWN; +} + static void vf_fix_img_params(struct mp_image *img, struct mp_image_params *p) { // Filters must absolutely set these correctly. diff --git a/video/filter/vf.h b/video/filter/vf.h index 4e7832a6e8..6bc887bbb2 100644 --- a/video/filter/vf.h +++ b/video/filter/vf.h @@ -129,6 +129,7 @@ struct vf_chain *vf_new(struct mpv_global *global); void vf_destroy(struct vf_chain *c); int vf_reconfig(struct vf_chain *c, const struct mp_image_params *params); int vf_control_any(struct vf_chain *c, int cmd, void *arg); +int vf_control_by_label(struct vf_chain *c, int cmd, void *arg, bstr label); int vf_filter_frame(struct vf_chain *c, struct mp_image *img); struct mp_image *vf_output_queued_frame(struct vf_chain *c); void vf_seek_reset(struct vf_chain *c); |