2009-07-25 04:24:39 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>
|
|
|
|
*
|
2015-04-13 07:36:54 +00:00
|
|
|
* This file is part of mpv.
|
2009-07-25 04:24:39 +00:00
|
|
|
*
|
2017-04-20 07:18:28 +00:00
|
|
|
* mpv is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
2009-07-25 04:24:39 +00:00
|
|
|
*
|
2015-04-13 07:36:54 +00:00
|
|
|
* mpv is distributed in the hope that it will be useful,
|
2009-07-25 04:24:39 +00:00
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
2017-04-20 07:18:28 +00:00
|
|
|
* GNU Lesser General Public License for more details.
|
2009-07-25 04:24:39 +00:00
|
|
|
*
|
2017-04-20 07:18:28 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
2009-07-25 04:24:39 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef MPLAYER_ASS_MP_H
|
|
|
|
#define MPLAYER_ASS_MP_H
|
|
|
|
|
|
|
|
#include <stdint.h>
|
2011-01-19 16:00:22 +00:00
|
|
|
#include <stdbool.h>
|
2009-07-25 04:24:39 +00:00
|
|
|
|
2016-06-24 16:05:34 +00:00
|
|
|
#include <ass/ass.h>
|
|
|
|
#include <ass/ass_types.h>
|
2009-07-25 04:24:39 +00:00
|
|
|
|
2013-06-03 21:00:39 +00:00
|
|
|
// This is probably arbitrary.
|
|
|
|
// sd_lavc_conv might indirectly still assume this PlayResY, though.
|
2012-11-17 19:56:45 +00:00
|
|
|
#define MP_ASS_FONT_PLAYRESY 288
|
|
|
|
|
|
|
|
#define MP_ASS_RGBA(r, g, b, a) \
|
2014-05-10 08:38:05 +00:00
|
|
|
(((unsigned)(r) << 24) | ((g) << 16) | ((b) << 8) | (0xFF - (a)))
|
2012-11-17 19:56:45 +00:00
|
|
|
|
|
|
|
// m_color argument
|
|
|
|
#define MP_ASS_COLOR(c) MP_ASS_RGBA((c).r, (c).g, (c).b, (c).a)
|
|
|
|
|
2012-08-25 14:47:50 +00:00
|
|
|
struct MPOpts;
|
2013-12-21 18:06:37 +00:00
|
|
|
struct mpv_global;
|
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.
2012-10-19 17:25:18 +00:00
|
|
|
struct mp_osd_res;
|
2012-11-17 19:56:45 +00:00
|
|
|
struct osd_style_opts;
|
|
|
|
|
2016-01-07 21:31:09 +00:00
|
|
|
void mp_ass_flush_old_events(ASS_Track *track, long long ts);
|
2013-12-10 18:58:57 +00:00
|
|
|
void mp_ass_set_style(ASS_Style *style, double res_y,
|
2013-09-26 15:49:54 +00:00
|
|
|
const struct osd_style_opts *opts);
|
2013-06-03 20:14:56 +00:00
|
|
|
|
2013-12-21 18:06:37 +00:00
|
|
|
void mp_ass_configure_fonts(ASS_Renderer *priv, struct osd_style_opts *opts,
|
|
|
|
struct mpv_global *global, struct mp_log *log);
|
|
|
|
ASS_Library *mp_ass_init(struct mpv_global *global, struct mp_log *log);
|
2009-07-25 04:24:39 +00:00
|
|
|
|
2012-09-28 19:38:52 +00:00
|
|
|
struct sub_bitmaps;
|
2016-06-30 19:38:50 +00:00
|
|
|
struct mp_ass_packer;
|
|
|
|
struct mp_ass_packer *mp_ass_packer_alloc(void *ta_parent);
|
|
|
|
void mp_ass_packer_pack(struct mp_ass_packer *p, ASS_Image **image_lists,
|
|
|
|
int num_image_lists, bool changed,
|
|
|
|
int preferred_osd_format, struct sub_bitmaps *out);
|
2020-03-06 17:20:11 +00:00
|
|
|
void mp_ass_get_bb(ASS_Image *image_list, ASS_Track *track,
|
|
|
|
struct mp_osd_res *res, double *out_rc);
|
2012-09-28 19:38:52 +00:00
|
|
|
|
2009-07-25 04:24:39 +00:00
|
|
|
#endif /* MPLAYER_ASS_MP_H */
|