[FFmpeg-devel] [PATCH] match input format names split by commas

Michael Niedermayer michaelni
Fri Jan 16 22:51:04 CET 2009


On Fri, Jan 16, 2009 at 08:43:15PM +0000, M?ns Rullg?rd wrote:
> Baptiste Coudurier <baptiste.coudurier at gmail.com> writes:
> 
> > Hi Michael,
> >
> > Michael Niedermayer wrote:
> >> On Thu, Jan 15, 2009 at 03:38:29PM -0800, Baptiste Coudurier wrote:
> >>> Hi,
> >>>
> >>> $subject, this enables using "mov", "mp4, "mj2" etc..
> >> [...]
> >>> Index: libavformat/utils.c
> >>> ===================================================================
> >>> --- libavformat/utils.c	(revision 16617)
> >>> +++ libavformat/utils.c	(working copy)
> >>> @@ -153,6 +153,20 @@
> >>>      return 0;
> >>>  }
> >>>  +static int match_format(const char *name, const char *names)
> >>> +{
> >>> +    if (!name || !names)
> >>> +        return 0;
> >>> +    for (;;) {
> >>> +        if (!strncasecmp(name, names, strlen(name)))
> >>> +            return 1;
> >>> +        if (!(names = strchr(names, ',')))
> >>> +            break;
> >>> +        names++;
> >>> +    }
> >>> +    return 0;
> >>> +}
> >> with this m will match mp4
> >
> > Hehe, auto completion ;)
> > New patch attached.
> >
> > Index: libavformat/utils.c
> > ===================================================================
> > --- libavformat/utils.c	(revision 16614)
> > +++ libavformat/utils.c	(working copy)
> > @@ -153,6 +153,24 @@
> >      return 0;
> >  }
> >
> > +static int match_format(const char *name, const char *names)
> > +{
> > +    int len, namelen;
> > +    if (!name || !names)
> > +        return 0;
> > +    namelen = strlen(name);
> > +    for (;;) {
> > +        const char *p = strchr(names, ',');
> > +        if (!p)
> > +            return !strcasecmp(name, names);
> > +        len = FFMAX(p - names, namelen);
> > +        if (!strncasecmp(name, names, len))
> > +            return 1;
> > +        names = p+1;
> > +    }
> > +    return 0;
> > +}
> 
> Simpler (untested):
> 
> while (p = strchr(names, ',')) {
>     len = FFMAX(p - names, namelen);
>     if (!strncasecmp(name, names, len))
>         return 1;
>     names = p+1;
> }
> return strcasecmp(name, names);

ok

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090116/d6d146f8/attachment.pgp>



More information about the ffmpeg-devel mailing list