1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00

avstring: Expose the simple name match function

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This commit is contained in:
Luca Barbato 2014-07-29 14:29:13 +01:00
parent e253a9e2b3
commit 69e7336b8e
5 changed files with 34 additions and 20 deletions

View File

@ -13,6 +13,9 @@ libavutil: 2013-12-xx
API changes, most recent first: API changes, most recent first:
2014-07-xx - xxxxxxx - lavu 53.19.0 - avstring.h
Make name matching function from lavf public as av_match_name().
2014-xx-xx - xxxxxxx - lavc 55.57.0 - avcodec.h 2014-xx-xx - xxxxxxx - lavc 55.57.0 - avcodec.h
Add AV_CODEC_PROP_REORDER to mark codecs supporting frame reordering. Add AV_CODEC_PROP_REORDER to mark codecs supporting frame reordering.

View File

@ -100,24 +100,6 @@ int av_match_ext(const char *filename, const char *extensions)
return 0; return 0;
} }
static int match_format(const char *name, const char *names)
{
const char *p;
int len, namelen;
if (!name || !names)
return 0;
namelen = strlen(name);
while ((p = strchr(names, ','))) {
len = FFMAX(p - names, namelen);
if (!av_strncasecmp(name, names, len))
return 1;
names = p + 1;
}
return !av_strcasecmp(name, names);
}
AVOutputFormat *av_guess_format(const char *short_name, const char *filename, AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
const char *mime_type) const char *mime_type)
{ {
@ -180,7 +162,7 @@ AVInputFormat *av_find_input_format(const char *short_name)
{ {
AVInputFormat *fmt = NULL; AVInputFormat *fmt = NULL;
while ((fmt = av_iformat_next(fmt))) while ((fmt = av_iformat_next(fmt)))
if (match_format(short_name, fmt->name)) if (av_match_name(short_name, fmt->name))
return fmt; return fmt;
return NULL; return NULL;
} }

View File

@ -234,6 +234,26 @@ int av_isxdigit(int c)
return av_isdigit(c) || (c >= 'a' && c <= 'f'); return av_isdigit(c) || (c >= 'a' && c <= 'f');
} }
int av_match_name(const char *name, const char *names)
{
const char *p;
int len, namelen;
if (!name || !names)
return 0;
namelen = strlen(name);
while ((p = strchr(names, ','))) {
len = FFMAX(p - names, namelen);
if (!av_strncasecmp(name, names, len))
return 1;
names = p + 1;
}
return !av_strcasecmp(name, names);
}
#ifdef TEST #ifdef TEST
int main(void) int main(void)

View File

@ -219,6 +219,15 @@ const char *av_basename(const char *path);
*/ */
const char *av_dirname(char *path); const char *av_dirname(char *path);
/**
* Match instances of a name in a comma-separated list of names.
* @param name Name to look for.
* @param names List of names.
* @return 1 on match, 0 otherwise.
*/
int av_match_name(const char *name, const char *names);
/** /**
* @} * @}
*/ */

View File

@ -54,7 +54,7 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 53 #define LIBAVUTIL_VERSION_MAJOR 53
#define LIBAVUTIL_VERSION_MINOR 18 #define LIBAVUTIL_VERSION_MINOR 19
#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \