summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-01-17 21:40:27 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-01-17 21:40:27 +0000
commit2323ac0154e6bd25809563c2effdb077c8919f72 (patch)
tree1807d3a834fe5fca58045bf08ea37abed56beabc /libavformat/utils.c
parent055dc116fcf75f7f38c64b689ebda7480a7da8c2 (diff)
match format in names list separated by commas
Originally committed as revision 16659 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c20
1 files changed, 19 insertions, 1 deletions
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;