mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avutil/avstring: add a "ALL" entry and the possibility to negate matches to av_match_name()
This will extend the whitelist features to allow blacklisting individual protocols and to explicitly force everything to be enabled. Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
d18df8beb0
commit
a9b81bfd1c
@ -326,13 +326,18 @@ int av_match_name(const char *name, const char *names)
|
||||
return 0;
|
||||
|
||||
namelen = strlen(name);
|
||||
while ((p = strchr(names, ','))) {
|
||||
while (*names) {
|
||||
int negate = '-' == *names;
|
||||
p = strchr(names, ',');
|
||||
if (!p)
|
||||
p = names + strlen(names);
|
||||
names += negate;
|
||||
len = FFMAX(p - names, namelen);
|
||||
if (!av_strncasecmp(name, names, len))
|
||||
return 1;
|
||||
names = p + 1;
|
||||
if (!av_strncasecmp(name, names, len) || !strncmp("ALL", names, FFMAX(3, p - names)))
|
||||
return !negate;
|
||||
names = p + (*p == ',');
|
||||
}
|
||||
return !av_strcasecmp(name, names);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end,
|
||||
|
@ -284,6 +284,11 @@ const char *av_dirname(char *path);
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* @param name Name to look for.
|
||||
* @param names List of names.
|
||||
* @return 1 on match, 0 otherwise.
|
||||
|
@ -65,7 +65,7 @@
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 55
|
||||
#define LIBAVUTIL_VERSION_MINOR 17
|
||||
#define LIBAVUTIL_VERSION_MICRO 100
|
||||
#define LIBAVUTIL_VERSION_MICRO 101
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
LIBAVUTIL_VERSION_MINOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user