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.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sub/sd.h') diff --git a/sub/sd.h b/sub/sd.h index 7a0740f823..b286d3691b 100644 --- a/sub/sd.h +++ b/sub/sd.h @@ -2,6 +2,7 @@ #define MPLAYER_SD_H struct osd_state; +struct sub_render_params; struct sh_sub; struct sub_bitmaps; @@ -10,6 +11,7 @@ struct sd_functions { void (*decode)(struct sh_sub *sh, struct osd_state *osd, void *data, int data_len, double pts, double duration); void (*get_bitmaps)(struct sh_sub *sh, struct osd_state *osd, + struct sub_render_params *params, struct sub_bitmaps *res); void (*reset)(struct sh_sub *sh, struct osd_state *osd); void (*switch_off)(struct sh_sub *sh, struct osd_state *osd); -- cgit v1.2.3 From 4d11f32162b08e3b48ae382e2ed0a151035f8aea Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 19 Oct 2012 19:25:18 +0200 Subject: VO, sub: refactor Remove VFCTRL_DRAW_OSD, VFCAP_EOSD_FILTER, VFCAP_EOSD_RGBA, VFCAP_EOSD, VOCTRL_DRAW_EOSD, VOCTRL_GET_EOSD_RES, VOCTRL_QUERY_EOSD_FORMAT. Remove draw_osd_with_eosd(), which rendered the OSD by calling VOCTRL_DRAW_EOSD. Change VOs to call osd_draw() directly, which takes a callback as argument. (This basically works like the old OSD API, except multiple OSD bitmap formats are supported and caching is possible.) Remove all mentions of "eosd". It's simply "osd" now. Make OSD size per-OSD-object, as they can be different when using vf_sub. Include display_par/video_par in resolution change detection. Fix the issue with margin borders in vo_corevideo. --- sub/sd.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'sub/sd.h') diff --git a/sub/sd.h b/sub/sd.h index b286d3691b..29f021ab5e 100644 --- a/sub/sd.h +++ b/sub/sd.h @@ -1,17 +1,14 @@ #ifndef MPLAYER_SD_H #define MPLAYER_SD_H -struct osd_state; -struct sub_render_params; -struct sh_sub; -struct sub_bitmaps; +#include "dec_sub.h" struct sd_functions { int (*init)(struct sh_sub *sh, struct osd_state *osd); void (*decode)(struct sh_sub *sh, struct osd_state *osd, void *data, int data_len, double pts, double duration); void (*get_bitmaps)(struct sh_sub *sh, struct osd_state *osd, - struct sub_render_params *params, + struct mp_osd_res dim, double pts, struct sub_bitmaps *res); void (*reset)(struct sh_sub *sh, struct osd_state *osd); void (*switch_off)(struct sh_sub *sh, struct osd_state *osd); -- cgit v1.2.3