summaryrefslogtreecommitdiffstats
path: root/sub/sd_lavc.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-10-04 17:16:36 +0200
committerwm4 <wm4@nowhere>2012-10-16 07:26:32 +0200
commit05f4f00e24caf23646a2b551b8e1a1a1abe76de7 (patch)
treef7f5684385025a9a7dfe22082209ddc266a3059b /sub/sd_lavc.c
parent17f5019b468d5269408b7dae53a24e17426de7d5 (diff)
downloadmpv-05f4f00e24caf23646a2b551b8e1a1a1abe76de7.tar.bz2
mpv-05f4f00e24caf23646a2b551b8e1a1a1abe76de7.tar.xz
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.
Diffstat (limited to 'sub/sd_lavc.c')
-rw-r--r--sub/sd_lavc.c9
1 files changed, 5 insertions, 4 deletions
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 = &params->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++) {