diff options
author | Oleg Oshmyan <chortos@inbox.lv> | 2015-05-23 00:06:40 +0300 |
---|---|---|
committer | Oleg Oshmyan <chortos@inbox.lv> | 2015-05-25 00:16:55 +0300 |
commit | 36db47b89cd5f4edfb2b02780ff2ddd8022190db (patch) | |
tree | a7f90c2fe0c4a103de2894b3587d3738d1518003 /libass/ass_parse.h | |
parent | 409ce02b6b9f9147af548cdc46695350af97d801 (diff) | |
download | libass-36db47b89cd5f4edfb2b02780ff2ddd8022190db.tar.bz2 libass-36db47b89cd5f4edfb2b02780ff2ddd8022190db.tar.xz |
Parse and animate all colors and alpha values like VSFilter
* Allow exactly one of these prefixes in header values:
0x, 0X, &h, &H. Note that "0x0xFFFFFF" is a correct value,
as the first 0x is consumed by the parser and the second by
the string-to-number conversion following strtol semantics.
* Allow arbitrary numbers of leading & and H
(and not h) in any order in override tag values.
* Reduce header values modulo 2**32 instead
of saturating them to LLONG_MIN/MAX.
* Saturate override tag values to INT32_MIN/MAX
rather than to LLONG_MIN/MAX.
* Don't fiddle with bytes in alpha override tag values.
(They can be outside of the 0..255 range.)
Also change the byte swapping code to be more sensible.
Fixes #80.
Fixes #145.
Fixes #178.
Also fixes our behavior in the case described in
https://code.google.com/p/xy-vsfilter/issues/detail?id=80.
Diffstat (limited to 'libass/ass_parse.h')
-rw-r--r-- | libass/ass_parse.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libass/ass_parse.h b/libass/ass_parse.h index e8512b2..2b4cee0 100644 --- a/libass/ass_parse.h +++ b/libass/ass_parse.h @@ -36,7 +36,7 @@ void process_karaoke_effects(ASS_Renderer *render_priv); unsigned get_next_char(ASS_Renderer *render_priv, char **str); char *parse_tag(ASS_Renderer *render_priv, char *p, char *end, double pwr); int event_has_hard_overrides(char *str); -extern void change_alpha(uint32_t *var, uint32_t new, double pwr); +extern void change_alpha(uint32_t *var, int32_t new, double pwr); extern uint32_t mult_alpha(uint32_t a, uint32_t b); |