summaryrefslogtreecommitdiff
path: root/libavutil/parseutils.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2011-02-16 09:52:38 +0100
committerJanne Grunau <janne-ffmpeg@jannau.net>2011-02-17 15:35:18 +0100
commitab0287fcbdebc8ff416214535d7ee8424406990e (patch)
tree48491346ba91fc472e3dc9dbef4b72a94fbef068 /libavutil/parseutils.c
parent979395bbbb9381b522b44c3448c24aef9c819ffc (diff)
Move find_info_tag to lavu and add av_ prefix to it
Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
Diffstat (limited to 'libavutil/parseutils.c')
-rw-r--r--libavutil/parseutils.c39
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