FFMPEG学习【libavutil】:String Manipulation
作者:互联网
一、宏
#define | AV_ESCAPE_FLAG_WHITESPACE (1 << 0) |
考虑空间特别,甚至在字符串的中间逃避他们。
这相当于将空格字符添加到特殊字符列表中,除了它保证使用完全相同的空格字符列表作为libavutil的其余部分。
#define | AV_ESCAPE_FLAG_STRICT (1 << 1) |
仅转义指定的特殊字符。
没有这个标志,也可以逃避av_get_token()可能被视为特殊的任何字符,例如单引号。
#define | AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1 |
接受0x10FFFF以上的代码点
#define | AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2 |
接受非字符 - 0xFFFE和0xFFFF
#define | AV_UTF8_FLAG_ACCEPT_SURROGATES 4 |
接受UTF-16代理代码
‘
’
#define | AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8 |
排除不被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 |
二、枚举
enum | AVEscapeMode { AV_ESCAPE_MODE_AUTO, AV_ESCAPE_MODE_BACKSLASH, AV_ESCAPE_MODE_QUOTE } |
三、函数
int | av_strstart (const char *str, const char *pfx, const char **ptr) |
如果pfx是str的前缀,返回非零。
如果是,则将* ptr设置为str前面的第一个字符的地址。
参数:str:输入字符
pfx:前缀测试
ptr:如果前缀在str中匹配,则更新
返回:如果前缀匹配则为非零,否则为零
int | av_stristart (const char *str, const char *pfx, const char **ptr) |
如果pfx是独立于大小写的str的前缀,返回非零。
如果是,则将* ptr设置为str前面的第一个字符的地址。
参数:str:输入字符
pfx:前缀测试
ptr:如果前缀在str中匹配,则更新
返回:如果前缀匹配则为非零,否则为零
char * | av_stristr (const char *haystack, const char *needle) |
在字符串针的字符串干草堆中找到第一个不区分大小写的事件。
在干草堆开始时,零长度的针头针被认为是匹配的。
此函数是标准strstr()的不区分大小写的版本。
参数:haystack:要搜索的字符串
needle:待搜索字符串
返回:指向haystack中找到的匹配的指针,如果没有匹配,则指向空指针
char * | av_strnstr (const char *haystack, const char *needle, size_t hay_length) |
在字符串haystack中找到字符串针的第一次出现,其中不超过hay_length字符被搜索。
在haystack开始时,零长度的针头针被认为是匹配的。
此函数是标准strstr()的长度限制版本。
参数:haystack:要搜索的字符串
needle:待搜索字符串
hay_length:要搜索的字符串的长度
返回:指向haystack中找到的匹配的指针,如果没有匹配,则指向空指针
size_t | av_strlcpy (char *dst, const char *src, size_t size) |
将字符串src复制到dst,但不能超过size-1个字节,并将null终止dst。
此功能与BSD strlcpy()相同。
参数:dst:目的缓冲区
src:源字符串
size:目的缓冲区的大小
返回:源字符串长度
警告:由于返回值是src的长度,src绝对必须是一个正确的0终止的字符串,否则这将读取超出缓冲区的结尾并可能崩溃。
size_t | av_strlcat (char *dst, const char *src, size_t size) |
将字符串src附加到字符串dst,但总长度不得大于1字节,并且为null终止dst。
此功能类似于BSD strlcat(),但在大小<= strlen(dst)时不同。
参数:dst:目的缓冲区
src:源字符串
size:目的缓冲区的大小
返回:src和dst的总长度
警告:由于返回值使用src和dst的长度,这些绝对必须是一个正确的0终止的字符串,否则这将读取超出缓冲区的结尾,并可能会崩溃。
size_t | av_strlcatf (char *dst, size_t size, const char *fmt,...) av_printf_format(3 |
根据格式将输出附加到字符串。
不要写出目标缓冲区,并且始终将缓冲区中的终止0。
参数:dst:目标缓冲区(附加输出的字符串)
size:目标缓冲区的总大小
fmt:printf兼容的格式字符串,指定如何使用以下参数
返回:如果有足够的空间可用,将生成的字符串的长度
size_t static size_t | av_strnlen (const char *s, size_t len) |
从头开始获取连续非零字符的数量。
参数:len:要检查字符串的最大字符数,即该函数返回的最大值
char * | av_asprintf (const char *fmt,...) av_printf_format(1 |
按照指定格式将参数打印到足够大的自动分配缓冲区中。
它类似于GNU asprintf()。
参数:fmt:printf兼容的格式字符串,指定如何使用以下参数。
返回:分配的字符串
注意:你必须用av_free()自己释放字符串。
char char * | av_d2str (double d) |
将数字转换为av_malloced字符串。
char * | av_get_token (const char **buf, const char *term) |
取消对给定的字符串进行过滤,直到非转义的终止字符为止,并返回与未转义字符串对应的令牌。
正常的\和'转义是支持的。 领先和尾随的空白被删除,除非它们以“\”或“封闭在”之间被转义。
参数:buf:要解析的缓冲区,buf将被更新为指向终止字符
term:终止字符的0个终止的列表
返回:在分配失败的情况下,用户必须av_freed的malloced unescaped字符串为NULL
char * | av_strtok (char *s, const char *delim, char **saveptr) |
将字符串拆分成若干令牌,可以通过连续调用av_strtok()来访问。
令牌被定义为不属于在delim中指定的集合的字符序列。
在第一次调用av_strtok()时,s应指向要解析的字符串,并忽略saveptr的值。 在后续调用中,s应该为NULL,并且saveptr应该是从前一次调用开始不变的。
此函数与POSIX.1中定义的strtok_r()类似。
参数:s:要解析的字符串可能为NULL
delim:0终止的令牌分隔符列表,必须为非NULL
saveptr:用户提供的指针指向av_strtok()所需的存储信息,以继续扫描相同的字符串。 saveptr被更新为指向第一个分隔符之后的下一个字符,如果字符串被终止,则为NULL
返回:找到的令牌,或者当没有找到令牌时为NULL
static av_const int | av_isdigit (int c) |
与ASCII isdigit的区域无关转换。
static av_const int | av_isgraph (int c) |
ASCII地图区域设置独立转换。
static av_const int | av_isspace (int c) |
与ASCII isspace的区域无关转换。
static av_const int | av_toupper (int c) |
ASCII字符转换为大写字母区域设置。
static av_const int | av_tolower (int c) |
区域设置独立的ASCII字符转换为小写。
static av_const int | av_isxdigit (int c) |
ASCII区域设置独立转换isxdigit。
int | av_strcasecmp (const char *a, const char *b) |
不区分大小写区分大小写。
注意:这意味着只有ASCII范围字符不区分大小写
int | av_strncasecmp (const char *a, const char *b, size_t n) |
不区分大小写区分大小写。
注意:这意味着只有ASCII范围字符不区分大小写
char * | av_strireplace (const char *str, const char *from, const char *to) |
与区域设置无关的字符串替换。
注意:这意味着只有ASCII范围字符被替换
const char * | av_basename (const char *path) |
线程安全基本名称。
参数:path:路径,在DOS上,\和/都被认为是分隔符。
返回:指向basename子字符串的指针。
const char * | av_dirname (char *path) |
线程安全目录。
路径,在DOS上,\和/都被认为是分隔符。
返回:带有分隔符的路径被字符串终止符或“。”替换。
注意:该功能可能会改变输入字符串。
int | av_match_name (const char *name, const char *names) |
以逗号分隔的名称列表匹配名称的实例。
从名称列表的开始到结束检查列表条目,第一个匹配结束进一步处理。 如果以' - '为前缀的条目匹配,则返回0。 “ALL”列表项被认为与所有名称相匹配。
参数:name:要找的名字。
names:名字列表
返回:1表示匹配,偶表示不匹配
char * | av_append_path_component (const char *path, const char *component) |
将路径组件附加到现有路径。
路径分隔符'/'位于需要的位置之间。 必须使用av_free()来释放所得到的字符串。
参数:path:基本路径
component:要附加的组件
返回:新路径或NULL错误。
av_warn_unused_result int | av_escape (char **dst, const char *src, const char *special_chars, enum AVEscapeMode mode, int flags) |
在src中转义字符串,并将转义的字符串放在* dst中分配的字符串中,该字符串必须与av_free()一起释放。
参数:dst:指向分配字符串的指针
src:字符串要转义,必须是非NULL
special_chars:包含需要转义的特殊字符的字符串可以为NULL
mode:逃生模式使用,请参阅AV_ESCAPE_MODE_ *宏。 模式的任何未知值将被视为等同于AV_ESCAPE_MODE_BACKSLASH,但是此行为可能会更改,恕不另行通知。
flags:控制如何转义的标志,请参阅AV_ESCAPE_FLAG_宏
返回:分配的字符串的长度,或者错误的情况下的负错误代码
av_warn_unused_result int | av_utf8_decode (int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, unsigned int flags) |
从* buf中的缓冲区中读取和解码单个UTF-8代码点(字符),并更新* buf以指向要解码的下一个字节。
在无效字节序列的情况下,指针将被更新为无效序列后的下一个字节,并且该函数将返回错误代码。
根据指定的标志,解码的代码点不属于有效范围时,功能也将失败。
注意:对于与速度相关的代码,可能会优先考虑使用GET_UTF8()。
参数:codep:指针用于返回解析的代码,以防成功。 即使在范围检查失败的情况下,也会设置* codep中的值。
bufp:指向地址的第一个字节的序列进行解码,由该函数更新为指向下一个字节后的解码序列
buf_end:指向缓冲区的结尾,指向缓冲区中最后一个的下一个字节。 这用于避免缓冲区覆盖(在缓冲区末尾有未完成的UTF-8序列的情况下)。
flags:一个AV_UTF8_FLAG_ *标志的集合
返回:> = 0,如果序列成功读取,则在无效序列的情况下为负值
int | av_match_list (const char *name, const char *list, char separator) |
检查名称是否在列表中。
返回:0,如果没有找到,或者在列表中找到的基于1的索引。
标签:libavutil,const,FFMPEG,int,Manipulation,char,av,字符串,size 来源: https://www.cnblogs.com/lidabo/p/15624613.html