Browse Source

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>
tags/n3.0
Michael Niedermayer 9 years ago
parent
commit
a9b81bfd1c
3 changed files with 16 additions and 6 deletions
  1. +10
    -5
      libavutil/avstring.c
  2. +5
    -0
      libavutil/avstring.h
  3. +1
    -1
      libavutil/version.h

+ 10
- 5
libavutil/avstring.c View File

@@ -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,


+ 5
- 0
libavutil/avstring.h View File

@@ -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.


+ 1
- 1
libavutil/version.h View File

@@ -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…
Cancel
Save