From 05f4f00e24caf23646a2b551b8e1a1a1abe76de7 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 4 Oct 2012 17:16:36 +0200 Subject: sub: cleanup: don't pass parameters via global variables Passing parameters from caller to subtitle renderer was done by temporarily setting certain members in the osd_state struct (which for all practical purposes are as good as global variables). This was the only purpose of these members. Rather than using such a messy way to pass parameter, put these into a struct sub_render_params. The struct was already introduced in earlier commits, and this commit just removes the parameter passing hack. --- sub/sd_lavc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'sub/sd_lavc.c') diff --git a/sub/sd_lavc.c b/sub/sd_lavc.c index b0dde50a00..7f327957dd 100644 --- a/sub/sd_lavc.c +++ b/sub/sd_lavc.c @@ -220,14 +220,15 @@ static void decode(struct sh_sub *sh, struct osd_state *osd, void *data, } static void get_bitmaps(struct sh_sub *sh, struct osd_state *osd, + struct sub_render_params *params, struct sub_bitmaps *res) { struct sd_lavc_priv *priv = sh->context; - if (priv->endpts != MP_NOPTS_VALUE && (osd->sub_pts >= priv->endpts || - osd->sub_pts < priv->endpts - 300)) + if (priv->endpts != MP_NOPTS_VALUE && (params->pts >= priv->endpts || + params->pts < priv->endpts - 300)) clear(priv); - if (!osd->support_rgba) + if (!params->support_rgba) return; if (priv->bitmaps_changed && priv->count > 0) priv->outbitmaps = talloc_memdup(priv, priv->inbitmaps, @@ -236,7 +237,7 @@ static void get_bitmaps(struct sh_sub *sh, struct osd_state *osd, int inw = priv->avctx->width; int inh = priv->avctx->height; guess_resolution(sh->type, &inw, &inh); - struct mp_eosd_res *d = &osd->dim; + struct mp_eosd_res *d = ¶ms->dim; double xscale = (double) (d->w - d->ml - d->mr) / inw; double yscale = (double) (d->h - d->mt - d->mb) / inh; for (int i = 0; i < priv->count; i++) { -- cgit v1.2.3