diff options
author | Anton Khirnov <anton@khirnov.net> | 2011-02-16 11:52:38 +0300 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-02-18 21:52:33 +0300 |
commit | 1b98107c8d49005b84f5d656af85c1fccbd1f238 (patch) | |
tree | 6614cfd64aa8228f8197a984f3c4b9005291cb3e /libavutil/parseutils.c | |
parent | 9c9912b995bed00ae2a4717b9d680e30f388117c (diff) |
Move find_info_tag to lavu and add av_ prefix to it
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
(cherry picked from commit ab0287fcbdebc8ff416214535d7ee8424406990e)
Diffstat (limited to 'libavutil/parseutils.c')
-rw-r--r-- | libavutil/parseutils.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c index 8e09dade62..d67d31bffe 100644 --- a/libavutil/parseutils.c +++ b/libavutil/parseutils.c @@ -608,6 +608,45 @@ int av_parse_time(int64_t *timeval, const char *datestr, int duration) return 0; } +int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info) +{ + const char *p; + char tag[128], *q; + + p = info; + if (*p == '?') + p++; + for(;;) { + q = tag; + while (*p != '\0' && *p != '=' && *p != '&') { + if ((q - tag) < sizeof(tag) - 1) + *q++ = *p; + p++; + } + *q = '\0'; + q = arg; + if (*p == '=') { + p++; + while (*p != '&' && *p != '\0') { + if ((q - arg) < arg_size - 1) { + if (*p == '+') + *q++ = ' '; + else + *q++ = *p; + } + p++; + } + } + *q = '\0'; + if (!strcmp(tag, tag1)) + return 1; + if (*p != '&') + break; + p++; + } + return 0; +} + #ifdef TEST #undef printf |