summaryrefslogtreecommitdiff
path: root/libavformat/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/internal.h')
-rw-r--r--libavformat/internal.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/libavformat/internal.h b/libavformat/internal.h
index 6d3ec23767..1b33fb153a 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -192,4 +192,28 @@ int ff_get_line(ByteIOContext *s, char *buf, int maxlen);
#define SPACE_CHARS " \t\r\n"
+/**
+ * Callback function type for ff_parse_key_value.
+ *
+ * @param key a pointer to the key
+ * @param key_len the number of bytes that belong to the key, including the '='
+ * char
+ * @param dest return the destination pointer for the value in *dest, may
+ * be null to ignore the value
+ * @param dest_len the length of the *dest buffer
+ */
+typedef void (*ff_parse_key_val_cb)(void *context, const char *key,
+ int key_len, char **dest, int *dest_len);
+/**
+ * Parse a string with comma-separated key=value pairs. The value strings
+ * may be quoted and may contain escaped characters within quoted strings.
+ *
+ * @param str the string to parse
+ * @param callback_get_buf function that returns where to store the
+ * unescaped value string.
+ * @param context the opaque context pointer to pass to callback_get_buf
+ */
+void ff_parse_key_value(const char *str, ff_parse_key_val_cb callback_get_buf,
+ void *context);
+
#endif /* AVFORMAT_INTERNAL_H */