Something went wrong. Try again.
🎥 Command line media player
Something went wrong. Try again.
C
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394#ifndef MP_OSD_STATE_H_#define MP_OSD_STATE_H_
#include <stdatomic.h>
#include "osd.h"#include "osdep/threads.h"
enum mp_osdtype { OSDTYPE_SUB, OSDTYPE_SUB2, // IDs must be numerically successive
OSDTYPE_OSD,
OSDTYPE_EXTERNAL, OSDTYPE_EXTERNAL2,
OSDTYPE_COUNT};
struct ass_state { struct mp_log *log; struct ass_track *track; struct ass_renderer *render; struct ass_library *library; int res_x, res_y; bool changed; struct mp_osd_res vo_res; // last known value};
struct osd_object { int type; // OSDTYPE_* bool is_sub;
// OSDTYPE_OSD bool osd_changed; char *text; struct osd_progbar_state progbar_state;
// OSDTYPE_SUB/OSDTYPE_SUB2 struct dec_sub *sub;
// OSDTYPE_EXTERNAL struct osd_external **externals; int num_externals;
// OSDTYPE_EXTERNAL2 struct sub_bitmaps *external2;
// VO cache state int vo_change_id; struct mp_osd_res vo_res; bool vo_had_output;
// Internally used by osd_libass.c bool changed; struct ass_state ass; struct mp_ass_packer *ass_packer; struct sub_bitmap_copy_cache *copy_cache; struct ass_image **ass_imgs;};
struct osd_external { struct osd_external_ass ov; struct ass_state ass;};
struct osd_state { mp_mutex lock;
struct osd_object *objs[MAX_OSD_PARTS];
bool render_subs_in_filter; _Atomic double force_video_pts;
bool want_redraw; bool want_redraw_notification;
struct m_config_cache *opts_cache; struct mp_osd_render_opts *opts; struct mpv_global *global; struct mp_log *log; struct stats_ctx *stats;
struct mp_draw_sub_cache *draw_cache;};
// defined in osd_libass.cstruct sub_bitmaps *osd_object_get_bitmaps(struct osd_state *osd, struct osd_object *obj, int format);void osd_destroy_backend(struct osd_state *osd);
#endif