diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-07-07 18:26:51 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-07-07 18:26:51 +0000 |
commit | e15ae9a60043d8d9c1b110607c5059f13ca86421 (patch) | |
tree | 22b3b039cdc936ae7063c5fd0092c2c837292d0f /libass/ass_utils.c | |
parent | 2f2d8cef15ccef7f2e0882a482a4fa071054778d (diff) | |
download | mpv-e15ae9a60043d8d9c1b110607c5059f13ca86421.tar.bz2 mpv-e15ae9a60043d8d9c1b110607c5059f13ca86421.tar.xz |
Initial libass release (without mencoder support).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18942 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass/ass_utils.c')
-rw-r--r-- | libass/ass_utils.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/libass/ass_utils.c b/libass/ass_utils.c new file mode 100644 index 0000000000..7b381d3d38 --- /dev/null +++ b/libass/ass_utils.c @@ -0,0 +1,63 @@ +#include "config.h" + +#include <stdlib.h> +#include <stdint.h> +#include <sys/time.h> +#include <time.h> + +#include "mp_msg.h" +#include "ass_utils.h" + +int mystrtoi(char** p, int base, int* res) +{ + char* start = *p; + *res = strtol(*p, p, base); + if (*p != start) return 1; + else return 0; +} + +int mystrtou32(char** p, int base, uint32_t* res) +{ + char* start = *p; + *res = strtoll(*p, p, base); + if (*p != start) return 1; + else return 0; +} + +int mystrtod(char** p, double* res) +{ + char* start = *p; + *res = strtod(*p, p); + if (*p != start) return 1; + else return 0; +} + +int strtocolor(char** q, uint32_t* res) +{ + uint32_t color = 0; + int result; + char* p = *q; + + if (*p == '&') ++p; + else mp_msg(MSGT_GLOBAL, MSGL_V, "bad color: \"%s\"\n", p); + + if (*p == 'H') { + ++p; + result = mystrtou32(&p, 16, &color); + } else { + result = mystrtou32(&p, 10, &color); + } + + { + unsigned char* tmp = (unsigned char*)(&color); + unsigned char b; + b = tmp[0]; tmp[0] = tmp[3]; tmp[3] = b; + b = tmp[1]; tmp[1] = tmp[2]; tmp[2] = b; + } + if (*p == '&') ++p; + *q = p; + + *res = color; + return result; +} + |