From 83570fc0fb7aee06411c037842ec941c1f920483 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 14 May 2013 12:10:27 +0000 Subject: [PATCH] add osd-scale command Signed-off-by: Paul B Mahol Modified to add docs for --osd-scale option, and adjusted to the previous commit by wm4. --- DOCS/man/en/input.rst | 1 + DOCS/man/en/options.rst | 3 +++ core/cfg-mplayer.h | 1 + core/command.c | 1 + core/defaultopts.c | 1 + core/options.h | 1 + sub/osd_libass.c | 8 ++++++++ 7 files changed, 16 insertions(+) diff --git a/DOCS/man/en/input.rst b/DOCS/man/en/input.rst index 5ae78ca06d..2833f965b0 100644 --- a/DOCS/man/en/input.rst +++ b/DOCS/man/en/input.rst @@ -268,6 +268,7 @@ option. Name W Comment =========================== = ================================================== osd-level x see ``--osd-level`` +osd-scale x osd font size multiplicator, see ``--osd-scale`` loop x see ``--loop`` speed x see ``--speed`` filename currently played file (path stripped) diff --git a/DOCS/man/en/options.rst b/DOCS/man/en/options.rst index 453b49d30e..524018db3d 100644 --- a/DOCS/man/en/options.rst +++ b/DOCS/man/en/options.rst @@ -1443,6 +1443,9 @@ Default: 10. +--osd-scale= + OSD font size multiplicator, multiplied with ``--osd-font-size`` value. + --osd-shadow-color=<#RRGGBB>, --sub-text-shadow-color=<#RRGGBB> See ``--osd-color``. Color used for OSD/sub text shadow. diff --git a/core/cfg-mplayer.h b/core/cfg-mplayer.h index b386cb53e8..18a1c30324 100644 --- a/core/cfg-mplayer.h +++ b/core/cfg-mplayer.h @@ -624,6 +624,7 @@ const m_option_t mplayer_opts[]={ ({"0", 0}, {"1", 1}, {"2", 2}, {"3", 3})), OPT_INTRANGE("osd-duration", osd_duration, 0, 0, 3600000), OPT_FLAG("osd-fractions", osd_fractions, 0), + OPT_FLOATRANGE("osd-scale", osd_scale, 0, 0, 100), OPT_DOUBLE("sstep", step_sec, CONF_MIN, 0), diff --git a/core/command.c b/core/command.c index 17b9f654d3..605520aab8 100644 --- a/core/command.c +++ b/core/command.c @@ -1361,6 +1361,7 @@ static int mp_property_alias(m_option_t *prop, int action, void *arg, static const m_option_t mp_properties[] = { // General M_OPTION_PROPERTY("osd-level"), + M_OPTION_PROPERTY_CUSTOM("osd-scale", property_osd_helper), M_OPTION_PROPERTY("loop"), M_OPTION_PROPERTY_CUSTOM("speed", mp_property_playback_speed), { "filename", mp_property_filename, CONF_TYPE_STRING, diff --git a/core/defaultopts.c b/core/defaultopts.c index 3ffc5e2555..c07580a872 100644 --- a/core/defaultopts.c +++ b/core/defaultopts.c @@ -49,6 +49,7 @@ void set_default_mplayer_options(struct MPOpts *opts) .osd_bar_align_y = 0.5, .osd_bar_w = 75.0, .osd_bar_h = 3.125, + .osd_scale = 1, .loop_times = -1, .ordered_chapters = 1, .chapter_merge_threshold = 100, diff --git a/core/options.h b/core/options.h index b5370ebac7..34254d69aa 100644 --- a/core/options.h +++ b/core/options.h @@ -174,6 +174,7 @@ typedef struct MPOpts { float osd_bar_align_y; float osd_bar_w; float osd_bar_h; + float osd_scale; struct osd_style_opts *osd_style; struct osd_style_opts *sub_text_style; float sub_scale; diff --git a/sub/osd_libass.c b/sub/osd_libass.c index 495bce2b73..d157f7925c 100644 --- a/sub/osd_libass.c +++ b/sub/osd_libass.c @@ -147,11 +147,19 @@ static char *mangle_ass(const char *in) static void update_osd(struct osd_state *osd, struct osd_object *obj) { + struct MPOpts *opts = osd->opts; + create_osd_ass_track(osd, obj); clear_obj(obj); if (!osd->osd_text[0]) return; + struct osd_style_opts font = *opts->osd_style; + font.font_size *= opts->osd_scale; + + ASS_Style *style = obj->osd_track->styles + obj->osd_track->default_style; + mp_ass_set_style(style, &font); + char *text = mangle_ass(osd->osd_text); add_osd_ass_event(obj->osd_track, text); talloc_free(text);