summaryrefslogtreecommitdiffstats
path: root/sub
diff options
context:
space:
mode:
Diffstat (limited to 'sub')
-rw-r--r--sub/ass_mp.c3
-rw-r--r--sub/osd.c2
-rw-r--r--sub/osd.h1
-rw-r--r--sub/sd_ass.c4
4 files changed, 10 insertions, 0 deletions
diff --git a/sub/ass_mp.c b/sub/ass_mp.c
index 84a706b681..6d85ac1f28 100644
--- a/sub/ass_mp.c
+++ b/sub/ass_mp.c
@@ -78,6 +78,9 @@ void mp_ass_set_style(ASS_Style *style, double res_y,
style->ScaleX = 1.;
style->ScaleY = 1.;
style->Alignment = 1 + (opts->align_x + 1) + (opts->align_y + 2) % 3 * 4;
+#ifdef ASS_JUSTIFY_LEFT
+ style->Justify = opts->justify;
+#endif
style->Blur = opts->blur;
style->Bold = opts->bold;
style->Italic = opts->italic;
diff --git a/sub/osd.c b/sub/osd.c
index bf6233a0b1..a35380d99f 100644
--- a/sub/osd.c
+++ b/sub/osd.c
@@ -62,6 +62,8 @@ static const m_option_t style_opts[] = {
OPT_FLOATRANGE("blur", blur, 0, 0, 20),
OPT_FLAG("bold", bold, 0),
OPT_FLAG("italic", italic, 0),
+ OPT_CHOICE("justify", justify, 0,
+ ({"auto", 0}, {"left", 1}, {"center", 2}, {"right", 3})),
{0}
};
diff --git a/sub/osd.h b/sub/osd.h
index aef1c60b33..7572ec0360 100644
--- a/sub/osd.h
+++ b/sub/osd.h
@@ -134,6 +134,7 @@ struct osd_style_opts {
float blur;
int bold;
int italic;
+ int justify;
};
extern const struct m_sub_options osd_style_conf;
diff --git a/sub/sd_ass.c b/sub/sd_ass.c
index 31c66a6087..9b4d3763c5 100644
--- a/sub/sd_ass.c
+++ b/sub/sd_ass.c
@@ -333,6 +333,10 @@ static void configure_ass(struct sd *sd, struct mp_osd_res *dim,
if (converted)
set_force_flags |= ASS_OVERRIDE_BIT_ALIGNMENT;
#endif
+#ifdef ASS_JUSTIFY_AUTO
+ if ((converted || opts->ass_style_override) && opts->ass_justify)
+ set_force_flags |= ASS_OVERRIDE_BIT_JUSTIFY;
+#endif
ass_set_selective_style_override_enabled(priv, set_force_flags);
ASS_Style style = {0};
mp_ass_set_style(&style, 288, opts->sub_style);