diff options
author | Uoti Urpala <uau@symbol.nonexistent.invalid> | 2008-08-12 15:03:34 +0300 |
---|---|---|
committer | Uoti Urpala <uau@symbol.nonexistent.invalid> | 2008-08-12 15:03:34 +0300 |
commit | e09fe1ce0413609b891f4abf2f5df5f1996622a0 (patch) | |
tree | 4624712ba8f4773463272c44513a86af6accc9da /libass | |
parent | 9425571f41d5cca40ec75537cdac3e474948f047 (diff) | |
parent | f88bf0c7b7faf4b6f58c8b4c9c0f3892e07dc5ba (diff) | |
download | mpv-e09fe1ce0413609b891f4abf2f5df5f1996622a0.tar.bz2 mpv-e09fe1ce0413609b891f4abf2f5df5f1996622a0.tar.xz |
Merge svn changes up to r27458
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_render.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index 894d8e6711..df75aeb76e 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -161,6 +161,7 @@ typedef struct render_context_s { uint32_t fade; // alpha from \fad char be; // blur edges int shadow; + int drawing_mode; // not implemented; when != 0 text is discarded, except for style override tags effect_t effect_type; int effect_timing; @@ -1028,6 +1029,13 @@ static char* parse_tag(char* p, double pwr) { render_context.shadow = val; else render_context.shadow = render_context.style->Shadow; + } else if (mystrcmp(&p, "pbo")) { + (void)strtol(p, &p, 10); // ignored + } else if (mystrcmp(&p, "p")) { + int val; + if (!mystrtoi(&p, 10, &val)) + val = 0; + render_context.drawing_mode = !!val; } return p; @@ -1203,6 +1211,7 @@ static void init_render_context(ass_event_t* event) render_context.clip_y1 = frame_context.track->PlayResY; render_context.detect_collisions = 1; render_context.fade = 0; + render_context.drawing_mode = 0; render_context.effect_type = EF_NONE; render_context.effect_timing = 0; render_context.effect_skip_timing = 0; @@ -1750,7 +1759,9 @@ static int ass_render_event(ass_event_t* event, event_images_t* event_images) while (1) { // get next char, executing style override // this affects render_context - code = get_next_char(&p); + do { + code = get_next_char(&p); + } while (code && render_context.drawing_mode); // skip everything in drawing mode // face could have been changed in get_next_char if (!render_context.font) { |