summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-10-03 17:00:37 +0200
committerwm4 <wm4@nowhere>2012-10-16 07:26:31 +0200
commit8f8f6e6d9d27eef37640b363214a775647a0f2f4 (patch)
tree64c78eebb58a563ce8d6d02559dcff6e30520276
parentcf61928eecd87ba29324e501a3e4a0efde25d874 (diff)
downloadmpv-8f8f6e6d9d27eef37640b363214a775647a0f2f4.tar.bz2
mpv-8f8f6e6d9d27eef37640b363214a775647a0f2f4.tar.xz
sub: remove logic for disabling hinting on scaled EOSD
This was an extremely obscure setting, as it was used only with vo_gl if its scaled-osd suboption was used. If you really want this, you can set the desired ass-hinting value directly, and there will be literally no loss in functionality. Note that this didn't actually test whether the EOSD was scaled. Basically, it only checked whether vo_gl had the scaled-osd suboption set.
-rw-r--r--DOCS/man/en/options.rst2
-rw-r--r--libmpcodecs/vf_vo.c1
-rw-r--r--libmpcodecs/vfcap.h2
-rw-r--r--libvo/vo_direct3d.c2
-rw-r--r--libvo/vo_gl.c2
-rw-r--r--libvo/vo_gl3.c2
-rw-r--r--libvo/vo_vdpau.c2
-rw-r--r--sub/ass_mp.c7
-rw-r--r--sub/ass_mp.h2
-rw-r--r--sub/sd_ass.c2
-rw-r--r--sub/sub.h1
11 files changed, 8 insertions, 17 deletions
diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst
index bf297018a9..0b623859e5 100644
--- a/DOCS/man/en/options.rst
+++ b/DOCS/man/en/options.rst
@@ -163,8 +163,6 @@
:1: FreeType autohinter, light mode
:2: FreeType autohinter, normal mode
:3: font native hinter
- :0-3 + 4: The same, but hinting will only be performed if the OSD is
- rendered at screen resolution and will therefore not be scaled.
The default value is 0 (no hinting).
diff --git a/libmpcodecs/vf_vo.c b/libmpcodecs/vf_vo.c
index 862cd63492..49668d4640 100644
--- a/libmpcodecs/vf_vo.c
+++ b/libmpcodecs/vf_vo.c
@@ -126,7 +126,6 @@ static int control(struct vf_instance *vf, int request, void *data)
return CONTROL_FALSE;
osd->normal_scale = 1;
osd->vsfilter_scale = vf->priv->scale_ratio;
- osd->unscaled = vf->default_caps & VFCAP_EOSD_UNSCALED;
struct sub_bitmaps images;
sub_get_bitmaps(osd, &images);
return vo_control(video_out, VOCTRL_DRAW_EOSD, &images) == VO_TRUE;
diff --git a/libmpcodecs/vfcap.h b/libmpcodecs/vfcap.h
index 0bb255b3cd..0fb73f5a51 100644
--- a/libmpcodecs/vfcap.h
+++ b/libmpcodecs/vfcap.h
@@ -42,8 +42,6 @@
#define VFCAP_POSTPROC 0x800
// filter can draw EOSD
#define VFCAP_EOSD 0x2000
-// filter will draw EOSD at screen resolution (without scaling)
-#define VFCAP_EOSD_UNSCALED 0x4000
// used by libvo and vf_vo, indicates the VO does not support draw_slice for this format
#define VOCAP_NOSLICES 0x8000
#define VFCAP_EOSD_FILTER 0x20000 // EOSD is drawn in filter chain
diff --git a/libvo/vo_direct3d.c b/libvo/vo_direct3d.c
index f8c9054b97..57bad61d02 100644
--- a/libvo/vo_direct3d.c
+++ b/libvo/vo_direct3d.c
@@ -1271,7 +1271,7 @@ static int query_format(d3d_priv *priv, uint32_t movie_fmt)
int eosd_caps = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW
| VFCAP_OSD | VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN;
if (priv->eosd)
- eosd_caps |= VFCAP_EOSD | VFCAP_EOSD_UNSCALED;
+ eosd_caps |= VFCAP_EOSD;
return eosd_caps;
}
diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c
index 1fb788e780..e71e482feb 100644
--- a/libvo/vo_gl.c
+++ b/libvo/vo_gl.c
@@ -1116,7 +1116,7 @@ static int query_format(struct vo *vo, uint32_t format)
int caps = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW | VFCAP_FLIP |
VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_ACCEPT_STRIDE;
if (p->use_osd)
- caps |= VFCAP_OSD | VFCAP_EOSD | (p->scaled_osd ? 0 : VFCAP_EOSD_UNSCALED);
+ caps |= VFCAP_OSD | VFCAP_EOSD;
if (format == IMGFMT_RGB24 || format == IMGFMT_RGBA)
return caps;
if (p->use_yuv && mp_get_chroma_shift(format, NULL, NULL, &depth) &&
diff --git a/libvo/vo_gl3.c b/libvo/vo_gl3.c
index 03d04b7038..5fd4f62af0 100644
--- a/libvo/vo_gl3.c
+++ b/libvo/vo_gl3.c
@@ -1758,7 +1758,7 @@ static int query_format(uint32_t format)
{
int caps = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW | VFCAP_FLIP |
VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_ACCEPT_STRIDE |
- VFCAP_OSD | VFCAP_EOSD | VFCAP_EOSD_UNSCALED | VFCAP_EOSD_RGBA;
+ VFCAP_OSD | VFCAP_EOSD | VFCAP_EOSD_RGBA;
if (!init_format(format, NULL))
return 0;
return caps;
diff --git a/libvo/vo_vdpau.c b/libvo/vo_vdpau.c
index 14b9d0df63..64378a9a0c 100644
--- a/libvo/vo_vdpau.c
+++ b/libvo/vo_vdpau.c
@@ -1396,7 +1396,7 @@ static int query_format(uint32_t format)
{
int default_flags = VFCAP_CSP_SUPPORTED | VFCAP_CSP_SUPPORTED_BY_HW
| VFCAP_HWSCALE_UP | VFCAP_HWSCALE_DOWN | VFCAP_OSD | VFCAP_EOSD
- | VFCAP_EOSD_UNSCALED | VFCAP_EOSD_RGBA | VFCAP_FLIP;
+ | VFCAP_EOSD_RGBA | VFCAP_FLIP;
switch (format) {
case IMGFMT_YV12:
case IMGFMT_I420:
diff --git a/sub/ass_mp.c b/sub/ass_mp.c
index 5766a847f8..ba93c4c842 100644
--- a/sub/ass_mp.c
+++ b/sub/ass_mp.c
@@ -226,17 +226,14 @@ ASS_Track *mp_ass_read_stream(ASS_Library *library, const char *fname,
}
void mp_ass_configure(ASS_Renderer *priv, struct MPOpts *opts,
- struct mp_eosd_res *dim, bool unscaled)
+ struct mp_eosd_res *dim)
{
int hinting;
ass_set_frame_size(priv, dim->w, dim->h);
ass_set_margins(priv, dim->mt, dim->mb, dim->ml, dim->mr);
ass_set_use_margins(priv, opts->ass_use_margins);
ass_set_font_scale(priv, opts->ass_font_scale);
- if (!unscaled && (opts->ass_hinting & 4))
- hinting = 0;
- else
- hinting = opts->ass_hinting & 3;
+ hinting = opts->ass_hinting & 3; // +4 was for no hinting if scaled
ass_set_hinting(priv, hinting);
ass_set_line_spacing(priv, opts->ass_line_spacing);
}
diff --git a/sub/ass_mp.h b/sub/ass_mp.h
index 805e9d7310..4ca43dfb2e 100644
--- a/sub/ass_mp.h
+++ b/sub/ass_mp.h
@@ -42,7 +42,7 @@ ASS_Track *mp_ass_read_stream(ASS_Library *library, const char *fname,
struct MPOpts;
void mp_ass_configure(ASS_Renderer *priv, struct MPOpts *opts,
- struct mp_eosd_res *dim, bool unscaled);
+ struct mp_eosd_res *dim);
void mp_ass_configure_fonts(ASS_Renderer *priv);
ASS_Library *mp_ass_init(struct MPOpts *opts);
diff --git a/sub/sd_ass.c b/sub/sd_ass.c
index 478b1c96a9..8b8ad6c0eb 100644
--- a/sub/sd_ass.c
+++ b/sub/sd_ass.c
@@ -139,7 +139,7 @@ static void get_bitmaps(struct sh_sub *sh, struct osd_state *osd,
if (ctx->vsfilter_aspect && opts->ass_vsfilter_aspect_compat)
scale = osd->vsfilter_scale;
ASS_Renderer *renderer = osd->ass_renderer;
- mp_ass_configure(renderer, opts, &osd->dim, osd->unscaled);
+ mp_ass_configure(renderer, opts, &osd->dim);
ass_set_aspect_ratio(renderer, scale, 1);
mp_ass_render_frame(renderer, ctx->ass_track, osd->sub_pts * 1000 + .5,
&ctx->parts, res);
diff --git a/sub/sub.h b/sub/sub.h
index 5e1809bee1..92ac19eb52 100644
--- a/sub/sub.h
+++ b/sub/sub.h
@@ -67,7 +67,6 @@ struct osd_state {
struct mp_eosd_res dim;
double normal_scale;
double vsfilter_scale;
- bool unscaled;
bool support_rgba;
int w, h;