diff options
author | wm4 <wm4@nowhere> | 2013-03-01 11:16:01 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-03-01 11:16:01 +0100 |
commit | d511ef79a09fa9e42479e66f4837daaa68b7255b (patch) | |
tree | 9df1d56baf902583387317af3070152c6de40f0c /video/filter | |
parent | 6b3d510165201e5600e9ec25c37f33541c03f58a (diff) | |
download | mpv-d511ef79a09fa9e42479e66f4837daaa68b7255b.tar.bz2 mpv-d511ef79a09fa9e42479e66f4837daaa68b7255b.tar.xz |
core: simplify OSD capability handling, remove VFCAP_OSD
VFCAP_OSD was used to determine at runtime whether the VO supports OSD
rendering. This was mostly unused. vo_direct3d had an option to disable
OSD (was supposed to allow to force auto-insertion of vf_ass, but we
removed that anyway). vo_opengl_old could disable OSD rendering when a
very old OpenGL version was detected, and had an option to explicitly
disable it as well.
Remove VFCAP_OSD from everything (and some associated logic). Now the
vo_driver.draw_osd callback can be set to NULL to indicate missing OSD
support (important so that vo_null etc. don't single-step on OSD
redraw), and if OSD support depends on runtime support, the VO's
draw_osd should just do nothing if OSD is not available.
Also, do not access vo->want_redraw directly. Change the want_redraw
reset logic for this purpose, too. (Probably unneeded, vo_flip_page
resets it already.)
Diffstat (limited to 'video/filter')
-rw-r--r-- | video/filter/vf.c | 5 | ||||
-rw-r--r-- | video/filter/vf.h | 2 | ||||
-rw-r--r-- | video/filter/vf_pp.c | 8 | ||||
-rw-r--r-- | video/filter/vf_sub.c | 1 | ||||
-rw-r--r-- | video/filter/vf_vo.c | 3 |
5 files changed, 6 insertions, 13 deletions
diff --git a/video/filter/vf.c b/video/filter/vf.c index 719ec395fb..aa1de0848b 100644 --- a/video/filter/vf.c +++ b/video/filter/vf.c @@ -463,10 +463,7 @@ int vf_next_control(struct vf_instance *vf, int request, void *data) int vf_next_query_format(struct vf_instance *vf, unsigned int fmt) { - int flags = vf->next->query_format(vf->next, fmt); - if (flags) - flags |= vf->default_caps; - return flags; + return vf->next->query_format(vf->next, fmt); } //============================================================================ diff --git a/video/filter/vf.h b/video/filter/vf.h index 1bc0d5121c..3ff4b5ea87 100644 --- a/video/filter/vf.h +++ b/video/filter/vf.h @@ -66,8 +66,6 @@ typedef struct vf_instance { void (*uninit)(struct vf_instance *vf); - // caps: - unsigned int default_caps; // used by default query_format() // data: struct vf_format fmt_in, fmt_out; struct vf_instance *next; diff --git a/video/filter/vf_pp.c b/video/filter/vf_pp.c index 157dc3e068..372fc81cad 100644 --- a/video/filter/vf_pp.c +++ b/video/filter/vf_pp.c @@ -75,8 +75,11 @@ static int query_format(struct vf_instance *vf, unsigned int fmt){ case IMGFMT_444P: case IMGFMT_422P: case IMGFMT_420P: - case IMGFMT_411P: - return vf_next_query_format(vf,fmt); + case IMGFMT_411P: ; + int caps = vf_next_query_format(vf,fmt); + if (caps) + caps |= VFCAP_POSTPROC; + return caps; } return 0; } @@ -146,7 +149,6 @@ static int vf_open(vf_instance_t *vf, char *args){ vf->config=config; vf->filter=filter; vf->uninit=uninit; - vf->default_caps=VFCAP_POSTPROC; vf->priv=malloc(sizeof(struct vf_priv_s)); vf->priv->context=NULL; diff --git a/video/filter/vf_sub.c b/video/filter/vf_sub.c index a1f25efd6d..ae1390b6e9 100644 --- a/video/filter/vf_sub.c +++ b/video/filter/vf_sub.c @@ -153,7 +153,6 @@ static int vf_open(vf_instance_t *vf, char *args) vf->uninit = uninit; vf->control = control; vf->filter = filter; - vf->default_caps = VFCAP_OSD; return 1; } diff --git a/video/filter/vf_vo.c b/video/filter/vf_vo.c index d8d00130d7..922229aa53 100644 --- a/video/filter/vf_vo.c +++ b/video/filter/vf_vo.c @@ -63,9 +63,6 @@ static int config(struct vf_instance *vf, if (vo_config(video_out, width, height, d_width, d_height, flags, outfmt)) return 0; - // save vo's stride capability for the wanted colorspace: - vf->default_caps = video_out->default_caps; - return 1; } |