From 2323ac0154e6bd25809563c2effdb077c8919f72 Mon Sep 17 00:00:00 2001 From: Baptiste Coudurier Date: Sat, 17 Jan 2009 21:40:27 +0000 Subject: match format in names list separated by commas Originally committed as revision 16659 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/utils.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index ce35fbe8a3..8e70109786 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -153,6 +153,24 @@ int match_ext(const char *filename, const char *extensions) 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 (!strncasecmp(name, names, len)) + return 1; + names = p+1; + } + return !strcasecmp(name, names); +} + AVOutputFormat *guess_format(const char *short_name, const char *filename, const char *mime_type) { @@ -232,7 +250,7 @@ AVInputFormat *av_find_input_format(const char *short_name) { AVInputFormat *fmt; for(fmt = first_iformat; fmt != NULL; fmt = fmt->next) { - if (!strcmp(fmt->name, short_name)) + if (match_format(short_name, fmt->name)) return fmt; } return NULL; -- cgit v1.2.3