}
static double x2scr(ASS_Renderer *render_priv, double x)
{
+ if (render_priv->state.explicit)
+ return x2scr_pos(render_priv, x);
return x * render_priv->orig_width_nocrop / render_priv->font_scale_x /
render_priv->track->PlayResX +
FFMAX(render_priv->settings.left_margin, 0);
}
static double x2scr_scaled(ASS_Renderer *render_priv, double x)
{
+ if (render_priv->state.explicit)
+ return x2scr_pos_scaled(render_priv, x);
return x * render_priv->orig_width_nocrop /
render_priv->track->PlayResX +
FFMAX(render_priv->settings.left_margin, 0);
}
static double y2scr(ASS_Renderer *render_priv, double y)
{
+ if (render_priv->state.explicit)
+ return y2scr_pos(render_priv, y);
return y * render_priv->orig_height_nocrop /
render_priv->track->PlayResY +
FFMAX(render_priv->settings.top_margin, 0);
// the same for toptitles
static double y2scr_top(ASS_Renderer *render_priv, double y)
{
+ if (render_priv->state.explicit)
+ return y2scr_pos(render_priv, y);
if (render_priv->settings.use_margins)
return y * render_priv->orig_height_nocrop /
render_priv->track->PlayResY;
// the same for subtitles
static double y2scr_sub(ASS_Renderer *render_priv, double y)
{
+ if (render_priv->state.explicit)
+ return y2scr_pos(render_priv, y);
if (render_priv->settings.use_margins)
return y * render_priv->orig_height_nocrop /
render_priv->track->PlayResY +
// script's style that are deemed necessary.
*new = *rstyle;
+ render_priv->state.explicit = explicit;
+
render_priv->state.apply_font_scale =
!explicit || !(requested & ASS_OVERRIDE_BIT_SELECTIVE_FONT_SCALE);