mirror of
https://github.com/mpv-player/mpv.git
synced 2025-12-28 05:33:14 +00:00
osd: make osd_ass_0/1 defines
So we can concatenate them with strings at compile time.
This commit is contained in:
@@ -2764,8 +2764,8 @@ static int mp_property_osd_ass(void *ctx, struct m_property *prop,
|
|||||||
int action, void *arg)
|
int action, void *arg)
|
||||||
{
|
{
|
||||||
struct m_sub_property props[] = {
|
struct m_sub_property props[] = {
|
||||||
{"0", SUB_PROP_STR(osd_ass_0)},
|
{"0", SUB_PROP_STR(OSD_ASS_0)},
|
||||||
{"1", SUB_PROP_STR(osd_ass_1)},
|
{"1", SUB_PROP_STR(OSD_ASS_1)},
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
return m_property_read_sub(props, action, arg);
|
return m_property_read_sub(props, action, arg);
|
||||||
|
|||||||
@@ -107,6 +107,12 @@ enum mp_osd_font_codepoints {
|
|||||||
OSD_PB_1 = 0x13,
|
OSD_PB_1 = 0x13,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Never valid UTF-8, so we expect it's free for use.
|
||||||
|
// Specially interpreted by osd_libass.c, in order to allow/escape ASS tags.
|
||||||
|
#define OSD_ASS_0 "\xFD"
|
||||||
|
#define OSD_ASS_1 "\xFE"
|
||||||
|
|
||||||
struct osd_style_opts {
|
struct osd_style_opts {
|
||||||
char *font;
|
char *font;
|
||||||
float font_size;
|
float font_size;
|
||||||
@@ -200,7 +206,5 @@ void osd_set_external(struct osd_state *osd, void *id, int res_x, int res_y,
|
|||||||
|
|
||||||
// doesn't need locking
|
// doesn't need locking
|
||||||
void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function);
|
void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function);
|
||||||
extern const char *const osd_ass_0;
|
|
||||||
extern const char *const osd_ass_1;
|
|
||||||
|
|
||||||
#endif /* MPLAYER_SUB_H */
|
#endif /* MPLAYER_SUB_H */
|
||||||
|
|||||||
@@ -6,9 +6,6 @@
|
|||||||
#include "mpv_talloc.h"
|
#include "mpv_talloc.h"
|
||||||
#include "osd.h"
|
#include "osd.h"
|
||||||
|
|
||||||
const char *const osd_ass_0 = "";
|
|
||||||
const char *const osd_ass_1 = "";
|
|
||||||
|
|
||||||
void osd_init_backend(struct osd_state *osd)
|
void osd_init_backend(struct osd_state *osd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,13 +179,10 @@ static void clear_ass(struct ass_state *ass)
|
|||||||
void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function)
|
void osd_get_function_sym(char *buffer, size_t buffer_size, int osd_function)
|
||||||
{
|
{
|
||||||
// 0xFF is never valid UTF-8, so we can use it to escape OSD symbols.
|
// 0xFF is never valid UTF-8, so we can use it to escape OSD symbols.
|
||||||
|
// (Same trick as OSD_ASS_0/OSD_ASS_1.)
|
||||||
snprintf(buffer, buffer_size, "\xFF%c", osd_function);
|
snprintf(buffer, buffer_size, "\xFF%c", osd_function);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Same trick as above: never valid UTF-8, so we expect it's free for use.
|
|
||||||
const char *const osd_ass_0 = "\xFD";
|
|
||||||
const char *const osd_ass_1 = "\xFE";
|
|
||||||
|
|
||||||
static void mangle_ass(bstr *dst, const char *in)
|
static void mangle_ass(bstr *dst, const char *in)
|
||||||
{
|
{
|
||||||
bool escape_ass = true;
|
bool escape_ass = true;
|
||||||
@@ -198,8 +195,8 @@ static void mangle_ass(bstr *dst, const char *in)
|
|||||||
in += 2;
|
in += 2;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (*in == '\xFD' || *in == '\xFE') {
|
if (*in == OSD_ASS_0[0] || *in == OSD_ASS_1[0]) {
|
||||||
escape_ass = *in == '\xFE';
|
escape_ass = *in == OSD_ASS_1[0];
|
||||||
in += 1;
|
in += 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user