Loading...
Searching...
No Matches
String Manipulation
libavutil

## Macros

#define | AV_ESCAPE_FLAG_WHITESPACE (1 << 0)
| Consider spaces special and escape them even in the middle of the string.
#define | AV_ESCAPE_FLAG_STRICT (1 << 1)
| Escape only specified special characters.
#define | AV_ESCAPE_FLAG_XML_SINGLE_QUOTES (1 << 2)
| Within AV_ESCAPE_MODE_XML, additionally escape single quotes for single quoted attributes.
#define | AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES (1 << 3)
| Within AV_ESCAPE_MODE_XML, additionally escape double quotes for double quoted attributes.
#define | AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1
| accept codepoints over 0x10FFFF
#define | AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2
| accept non-characters - 0xFFFE and 0xFFFF
#define | AV_UTF8_FLAG_ACCEPT_SURROGATES 4
| accept UTF-16 surrogates codes
#define | AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8
| exclude control codes not accepted by XML
#define | AV_UTF8_FLAG_ACCEPT_ALL AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES|AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS|AV_UTF8_FLAG_ACCEPT_SURROGATES

## Enumerations

enum | AVEscapeMode { AV_ESCAPE_MODE_AUTO , AV_ESCAPE_MODE_BACKSLASH , AV_ESCAPE_MODE_QUOTE , AV_ESCAPE_MODE_XML }

## Functions

int | av_strstart (const char *str, const char *pfx, const char **ptr)
| Return non-zero if pfx is a prefix of str.
int | av_stristart (const char *str, const char *pfx, const char **ptr)
| Return non-zero if pfx is a prefix of str independent of case.
char * | av_stristr (const char *haystack, const char *needle)
| Locate the first case-independent occurrence in the string haystack of the string needle.
char * | av_strnstr (const char *haystack, const char *needle, size_t hay_length)
| Locate the first occurrence of the string needle in the string haystack where not more than hay_length characters are searched.
size_t | av_strlcpy (char *dst, const char *src, size_t size)
| Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.
size_t | av_strlcat (char *dst, const char *src, size_t size)
| Append the string src to the string dst, but to a total length of no more than size - 1 bytes, and null-terminate dst.
size_t | av_strlcatf (char *dst, size_t size, const char *fmt,...) av_printf_format(3
| Append output to a string, according to a format.
size_t static size_t | av_strnlen (const char *s, size_t len)
| Get the count of continuous non zero chars starting from the beginning.
char * | av_asprintf (const char *fmt,...) av_printf_format(1
| Print arguments following specified format into a large enough auto allocated buffer.
char char * | av_get_token (const char **buf, const char *term)
| Unescape the given string until a non escaped terminating char, and return the token corresponding to the unescaped string.
char * | av_strtok (char *s, const char *delim, char **saveptr)
| Split the string into several tokens which can be accessed by successive calls to av_strtok().
static av_const int | av_isdigit (int c)
| Locale-independent conversion of ASCII isdigit.
static av_const int | av_isgraph (int c)
| Locale-independent conversion of ASCII isgraph.
static av_const int | av_isspace (int c)
| Locale-independent conversion of ASCII isspace.
static av_const int | av_toupper (int c)
| Locale-independent conversion of ASCII characters to uppercase.
static av_const int | av_tolower (int c)
| Locale-independent conversion of ASCII characters to lowercase.
static av_const int | av_isxdigit (int c)
| Locale-independent conversion of ASCII isxdigit.
int | av_strcasecmp (const char *a, const char *b)
| Locale-independent case-insensitive compare.
int | av_strncasecmp (const char *a, const char *b, size_t n)
| Locale-independent case-insensitive compare.
char * | av_strireplace (const char *str, const char *from, const char *to)
| Locale-independent strings replace.
const char * | av_basename (const char *path)
| Thread safe basename.
const char * | av_dirname (char *path)
| Thread safe dirname.
int | av_match_name (const char *name, const char *names)
| Match instances of a name in a comma-separated list of names.
char * | av_append_path_component (const char *path, const char *component)
| Append path component to the existing path.
av_warn_unused_result int | av_escape (char **dst, const char *src, const char *special_chars, enum AVEscapeMode mode, int flags)
| Escape string in src, and put the escaped string in an allocated string in *dst, which must be freed with av_free().
av_warn_unused_result int | av_utf8_decode (int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags)
| Read and decode a single UTF-8 code point (character) from the buffer in *buf, and update *buf to point to the next byte to decode.
int | av_match_list (const char *name, const char *list, char separator)
| Check if a name is in a list.
int | av_sscanf (const char *string, const char *format,...)
| See libc sscanf manual for more information.

## Detailed Description

## Macro Definition Documentation

## AV_ESCAPE_FLAG_WHITESPACE

#define AV_ESCAPE_FLAG_WHITESPACE (1 << 0)

Consider spaces special and escape them even in the middle of the string.

This is equivalent to adding the whitespace characters to the special characters lists, except it is guaranteed to use the exact same list of whitespace characters as the rest of libavutil.

Definition at line 329 of file avstring.h.

## AV_ESCAPE_FLAG_STRICT

#define AV_ESCAPE_FLAG_STRICT (1 << 1)

Escape only specified special characters.

Without this flag, escape also any characters that may be considered special by av_get_token(), such as the single quote.

Definition at line 336 of file avstring.h.

## AV_ESCAPE_FLAG_XML_SINGLE_QUOTES

#define AV_ESCAPE_FLAG_XML_SINGLE_QUOTES (1 << 2)

Within AV_ESCAPE_MODE_XML, additionally escape single quotes for single quoted attributes.

Definition at line 342 of file avstring.h.

## AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES

#define AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES (1 << 3)

Within AV_ESCAPE_MODE_XML, additionally escape double quotes for double quoted attributes.

Definition at line 348 of file avstring.h.

## AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES

#define AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1

accept codepoints over 0x10FFFF

Definition at line 371 of file avstring.h.

## AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS

#define AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2

accept non-characters - 0xFFFE and 0xFFFF

Definition at line 372 of file avstring.h.

## AV_UTF8_FLAG_ACCEPT_SURROGATES

#define AV_UTF8_FLAG_ACCEPT_SURROGATES 4

accept UTF-16 surrogates codes

Definition at line 373 of file avstring.h.

## AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES

#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8

exclude control codes not accepted by XML

Definition at line 374 of file avstring.h.

## AV_UTF8_FLAG_ACCEPT_ALL

#define AV_UTF8_FLAG_ACCEPT_ALL AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES|AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS|AV_UTF8_FLAG_ACCEPT_SURROGATES

Definition at line 376 of file avstring.h.

## Enumeration Type Documentation

## AVEscapeMode

enum AVEscapeMode

Enumerator
AV_ESCAPE_MODE_AUTO | Use auto-selected escaping mode.
AV_ESCAPE_MODE_BACKSLASH | Use backslash escaping.
AV_ESCAPE_MODE_QUOTE | Use single-quote escaping.
AV_ESCAPE_MODE_XML | Use XML non-markup character data escaping.

Definition at line 314 of file avstring.h.

## Function Documentation

## av_strstart()

int av_strstart | ( | const char * | str,
|  | const char * | pfx,
|  | const char ** | ptr
| ) |  |

Return non-zero if pfx is a prefix of str.

If it is, *ptr is set to the address of the first character in str after the prefix.

Parameters

  str | input string
  pfx | prefix to test
  ptr | updated if the prefix is matched inside str

Returns
  non-zero if the prefix matches, zero otherwise

Examples
  ffhash.c.

## av_stristart()

int av_stristart | ( | const char * | str,
|  | const char * | pfx,
|  | const char ** | ptr
| ) |  |

Return non-zero if pfx is a prefix of str independent of case.

If it is, *ptr is set to the address of the first character in str after the prefix.

Parameters

  str | input string
  pfx | prefix to test
  ptr | updated if the prefix is matched inside str

Returns
  non-zero if the prefix matches, zero otherwise

## av_stristr()

char * av_stristr | ( | const char * | haystack,
|  | const char * | needle
| ) |  |

Locate the first case-independent occurrence in the string haystack of the string needle.

A zero-length string needle is considered to match at the start of haystack.

This function is a case-insensitive version of the standard strstr().

Parameters

  haystack | string to search in
  needle | string to search for

Returns
  pointer to the located match within haystack or a null pointer if no match

## av_strnstr()

char * av_strnstr | ( | const char * | haystack,
|  | const char * | needle,
|  | size_t | hay_length
| ) |  |

Locate the first occurrence of the string needle in the string haystack where not more than hay_length characters are searched.

A zero-length string needle is considered to match at the start of haystack.

This function is a length-limited version of the standard strstr().

Parameters

  haystack | string to search in
  needle | string to search for
  hay_length | length of string to search in

Returns
  pointer to the located match within haystack or a null pointer if no match

## av_strlcpy()

size_t av_strlcpy | ( | char * | dst,
|  | const char * | src,
|  | size_t | size
| ) |  |

Copy the string src to dst, but no more than size - 1 bytes, and null-terminate dst.

This function is the same as BSD strlcpy().

Parameters

  dst | destination buffer
  src | source string
  size | size of destination buffer

Returns
  the length of src

Warning
  since the return value is the length of src, src absolutely must be a properly 0-terminated string, otherwise this will read beyond the end of the buffer and possibly crash.

## av_strlcat()

size_t av_strlcat | ( | char * | dst,
|  | const char * | src,
|  | size_t | size
| ) |  |

Append the string src to the string dst, but to a total length of no more than size - 1 bytes, and null-terminate dst.

This function is similar to BSD strlcat(), but differs when size <= strlen(dst).

Parameters

  dst | destination buffer
  src | source string
  size | size of destination buffer

Returns
  the total length of src and dst

Warning
  since the return value use the length of src and dst, these absolutely must be a properly 0-terminated strings, otherwise this will read beyond the end of the buffer and possibly crash.

## av_strlcatf()

size_t av_strlcatf | ( | char * | dst,
|  | size_t | size,
|  | const char * | fmt,
|  |  | ...
| ) |  |

Append output to a string, according to a format.

Never write out of the destination buffer, and always put a terminating 0 within the buffer.

Parameters

  dst | destination buffer (string to which the output is appended)
  size | total size of the destination buffer
  fmt | printf-compatible format string, specifying how the following parameters are used

Returns
  the length of the string that would have been generated if enough space had been available

## av_strnlen()

size_t static size_t av_strnlen | ( | const char * | s,
|  | size_t | len
| ) |  |

inline static

Get the count of continuous non zero chars starting from the beginning.

Parameters

  s | the string whose length to count
  len | maximum number of characters to check in the string, that is the maximum value which is returned by the function

Definition at line 141 of file avstring.h.

## av_asprintf()

char * av_asprintf | ( | const char * | fmt,
|  |  | ...
| ) |  |

Print arguments following specified format into a large enough auto allocated buffer.

It is similar to GNU asprintf().

Parameters

  fmt | printf-compatible format string, specifying how the following parameters are used.

Returns
  the allocated string

Note
  You have to free the string yourself with av_free().

## av_get_token()

char char * av_get_token | ( | const char ** | buf,
|  | const char * | term
| ) |  |

Unescape the given string until a non escaped terminating char, and return the token corresponding to the unescaped string.

The normal \ and ' escaping is supported. Leading and trailing whitespaces are removed, unless they are escaped with '\' or are enclosed between ''.

Parameters

  buf | the buffer to parse, buf will be updated to point to the terminating char
  term | a 0-terminated list of terminating chars

Returns
  the malloced unescaped string, which must be av_freed by the user, NULL in case of allocation failure

## av_strtok()

char * av_strtok | ( | char * | s,
|  | const char * | delim,
|  | char ** | saveptr
| ) |  |

Split the string into several tokens which can be accessed by successive calls to av_strtok().

A token is defined as a sequence of characters not belonging to the set specified in delim.

On the first call to av_strtok(), s should point to the string to parse, and the value of saveptr is ignored. In subsequent calls, s should be NULL, and saveptr should be unchanged since the previous call.

This function is similar to strtok_r() defined in POSIX.1.

Parameters

  s | the string to parse, may be NULL
  delim | 0-terminated list of token delimiters, must be non-NULL
  saveptr | user-provided pointer which points to stored information necessary for av_strtok() to continue scanning the same string. saveptr is updated to point to the next character after the first delimiter found, or to NULL if the string was terminated

Returns
  the found token, or NULL when no token is found

## av_isdigit()

static av_const int av_isdigit | ( | int | c | ) |

inline static

Locale-independent conversion of ASCII isdigit.

Definition at line 202 of file avstring.h.

Referenced by av_isxdigit().

## av_isgraph()

static av_const int av_isgraph | ( | int | c | ) |

inline static

Locale-independent conversion of ASCII isgraph.

Definition at line 210 of file avstring.h.

## av_isspace()

static av_const int av_isspace | ( | int | c | ) |

inline static

Locale-independent conversion of ASCII isspace.

Definition at line 218 of file avstring.h.

## av_toupper()

static av_const int av_toupper | ( | int | c | ) |

inline static

Locale-independent conversion of ASCII characters to uppercase.

Definition at line 227 of file avstring.h.

## av_tolower()

static av_const int av_tolower | ( | int | c | ) |

inline static

Locale-independent conversion of ASCII characters to lowercase.

Definition at line 237 of file avstring.h.

Referenced by av_isxdigit().

## av_isxdigit()

static av_const int av_isxdigit | ( | int | c | ) |

inline static

Locale-independent conversion of ASCII isxdigit.

Definition at line 247 of file avstring.h.

## av_strcasecmp()

int av_strcasecmp | ( | const char * | a,
|  | const char * | b
| ) |  |

Locale-independent case-insensitive compare.

Note
  This means only ASCII-range characters are case-insensitive

## av_strncasecmp()

int av_strncasecmp | ( | const char * | a,
|  | const char * | b,
|  | size_t | n
| ) |  |

Locale-independent case-insensitive compare.

Note
  This means only ASCII-range characters are case-insensitive

## av_strireplace()

char * av_strireplace | ( | const char * | str,
|  | const char * | from,
|  | const char * | to
| ) |  |

Locale-independent strings replace.

Note
  This means only ASCII-range characters are replaced.

## av_basename()

const char * av_basename | ( | const char * | path | ) |

Thread safe basename.

Parameters

  path | the string to parse, on DOS both \ and / are considered separators.

Returns
  pointer to the basename substring. If path does not contain a slash, the function returns a copy of path. If path is a NULL pointer or points to an empty string, a pointer to a string "." is returned.

## av_dirname()

const char * av_dirname | ( | char * | path | ) |

Thread safe dirname.

Parameters

  path | the string to parse, on DOS both \ and / are considered separators.

Returns
  A pointer to a string that's the parent directory of path. If path is a NULL pointer or points to an empty string, a pointer to a string "." is returned.

Note
  the function may modify the contents of the path, so copies should be passed.

## av_match_name()

int av_match_name | ( | const char * | name,
|  | const char * | names
| ) |  |

Match instances of a name in a comma-separated list of names.

List entries are checked from the start to the end of the names list, the first match ends further processing. If an entry prefixed with '-' matches, then 0 is returned. The "ALL" list entry is considered to match all names.

Parameters

  name | Name to look for.
  names | List of names.

Returns
  1 on match, 0 otherwise.

## av_append_path_component()

char * av_append_path_component | ( | const char * | path,
|  | const char * | component
| ) |  |

Append path component to the existing path.

Path separator '/' is placed between when needed. Resulting string have to be freed with av_free().

Parameters

  path | base path
  component | component to be appended

Returns
  new path or NULL on error.

## av_escape()

av_warn_unused_result int av_escape | ( | char ** | dst,
|  | const char * | src,
|  | const char * | special_chars,
|  | enum AVEscapeMode | mode,
|  | int | flags
| ) |  |

Escape string in src, and put the escaped string in an allocated string in *dst, which must be freed with av_free().

Parameters

  dst | pointer where an allocated string is put
  src | string to escape, must be non-NULL
  special_chars | string containing the special characters which need to be escaped, can be NULL
  mode | escape mode to employ, see AV_ESCAPE_MODE_* macros. Any unknown value for mode will be considered equivalent to AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without notice.
  flags | flags which control how to escape, see AV_ESCAPE_FLAG_ macros

Returns
  the length of the allocated string, or a negative error code in case of error

See also
  av_bprint_escape()

## av_utf8_decode()

av_warn_unused_result int av_utf8_decode | ( | int32_t * | codep,
|  | const uint8_t ** | bufp,
|  | const uint8_t * | buf_end,
|  | unsigned int | flags
| ) |  |

Read and decode a single UTF-8 code point (character) from the buffer in *buf, and update *buf to point to the next byte to decode.

In case of an invalid byte sequence, the pointer will be updated to the next byte after the invalid sequence and the function will return an error code.

Depending on the specified flags, the function will also fail in case the decoded code point does not belong to a valid range.

Note
  For speed-relevant code a carefully implemented use of GET_UTF8() may be preferred.

Parameters

  codep | pointer used to return the parsed code in case of success. The value in *codep is set even in case the range check fails.
  bufp | pointer to the address the first byte of the sequence to decode, updated by the function to point to the byte next after the decoded sequence
  buf_end | pointer to the end of the buffer, points to the next byte past the last in the buffer. This is used to avoid buffer overreads (in case of an unfinished UTF-8 sequence towards the end of the buffer).
  flags | a collection of AV_UTF8_FLAG_* flags

Returns
  >= 0 in case a sequence was successfully read, a negative value in case of invalid sequence

## av_match_list()

int av_match_list | ( | const char * | name,
|  | const char * | list,
|  | char | separator
| ) |  |

Check if a name is in a list.

Returns
  0 if not found, or the 1 based index where it has been found in the list.

## av_sscanf()

int av_sscanf | ( | const char * | string,
|  | const char * | format,
|  |  | ...
| ) |  |

See libc sscanf manual for more information.

Locale-independent sscanf implementation.