mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
Instead of passing an explicit cache to the function, the res parameter is used. Also, instead of replacing its contents, sub bitmaps are now appended to it (all assuming the format doesn't actually change). This is preparation for the following commits.
63 lines
1.2 KiB
C
63 lines
1.2 KiB
C
#ifndef MP_OSD_STATE_H_
|
|
#define MP_OSD_STATE_H_
|
|
|
|
#include <pthread.h>
|
|
|
|
#include "osd.h"
|
|
|
|
#define OSD_CONV_CACHE_MAX 4
|
|
|
|
struct osd_object {
|
|
int type; // OSDTYPE_*
|
|
bool is_sub;
|
|
|
|
bool force_redraw;
|
|
|
|
// OSDTYPE_SUB/OSDTYPE_SUB2/OSDTYPE_OSD/OSDTYPE_EXTERNAL
|
|
char *text;
|
|
|
|
// OSDTYPE_OSD
|
|
struct osd_progbar_state progbar_state;
|
|
|
|
// OSDTYPE_SUB/OSDTYPE_SUB2
|
|
struct dec_sub *sub;
|
|
|
|
// OSDTYPE_EXTERNAL
|
|
int external_res_x, external_res_y;
|
|
|
|
// OSDTYPE_EXTERNAL2
|
|
struct sub_bitmaps *external2;
|
|
|
|
// caches for OSD conversion (internal to render_object())
|
|
struct osd_conv_cache *cache[OSD_CONV_CACHE_MAX];
|
|
struct sub_bitmaps cached;
|
|
|
|
// VO cache state
|
|
int vo_change_id;
|
|
struct mp_osd_res vo_res;
|
|
|
|
// Internally used by osd_libass.c
|
|
struct sub_bitmaps parts_cache;
|
|
struct ass_track *osd_track;
|
|
struct ass_renderer *osd_render;
|
|
struct ass_library *osd_ass_library;
|
|
};
|
|
|
|
struct osd_state {
|
|
pthread_mutex_t lock;
|
|
|
|
struct osd_object *objs[MAX_OSD_PARTS];
|
|
|
|
bool render_subs_in_filter;
|
|
|
|
bool want_redraw;
|
|
|
|
struct MPOpts *opts;
|
|
struct mpv_global *global;
|
|
struct mp_log *log;
|
|
|
|
struct mp_draw_sub_cache *draw_cache;
|
|
};
|
|
|
|
#endif
|