Move av_get_token() from libavfilter to libavutil.
[ffmpeg.git] / libavfilter / parseutils.h
index 46c66ed..59c5262 100644 (file)
  */
 
 /**
- * @file libavfilter/parseutils.h
+ * @file
  * parsing utils
  */
 
 #ifndef AVFILTER_PARSEUTILS_H
 #define AVFILTER_PARSEUTILS_H
 
-/**
- * Unescapes the given string until a non escaped terminating char,
- * and returns the token corresponding to the unescaped string.
- *
- * The normal \ and ' escaping is supported. Leading and trailing
- * whitespaces are removed.
- *
- * @param term a 0-terminated list of terminating chars
- * @param buf the buffer to parse, buf will be updated to point to the
- * terminating char
- * @return the malloced unescaped string, which must be av_freed by
- * the user
- */
-char *av_get_token(const char **buf, const char *term);
+#include "libavutil/opt.h"
 
 /**
- * Puts the RGBA values that correspond to color_string in rgba_color.
+ * Put the RGBA values that correspond to color_string in rgba_color.
  *
  * @param color_string a string specifying a color. It can be the name of
- * a color (case insensitive match) or a 0xRRGGBB[AA] sequence.
+ * a color (case insensitive match) or a 0xRRGGBB[AA] sequence,
+ * possibly followed by "@" and a string representing the alpha
+ * component.
+ * The alpha component may be a string composed by "0x" followed by an
+ * hexadecimal number or a base-10 number between 0 and 255, or a
+ * decimal number between 0.0 and 1.0, which represents the opacity
+ * value (0/0x00/0.0 means completely transparent, 255/0xff/1.0
+ * completely opaque).
+ * If the alpha component is not specified then 255 is assumed.
  * The string "random" will result in a random color.
  * @return >= 0 in case of success, a negative value in case of
  * failure (for example if color_string cannot be parsed).
  */
 int av_parse_color(uint8_t *rgba_color, const char *color_string, void *log_ctx);
 
+/**
+ * Parse the key/value pairs list in opts. For each key/value pair
+ * found, stores the value in the field in ctx that is named like the
+ * key. ctx must be an AVClass context, storing is done using
+ * AVOptions.
+ *
+ * @param key_val_sep a 0-terminated list of characters used to
+ * separate key from value
+ * @param pairs_sep a 0-terminated list of characters used to separate
+ * two pairs from each other
+ * @return the number of successfully set key/value pairs, or a negative
+ * value corresponding to an AVERROR code in case of error:
+ * AVERROR(EINVAL) if opts cannot be parsed,
+ * the error code issued by av_set_string3() if a key/value pair
+ * cannot be set
+ */
+int av_set_options_string(void *ctx, const char *opts,
+                          const char *key_val_sep, const char *pairs_sep);
+
 #endif  /* AVFILTER_PARSEUTILS_H */