[FFmpeg-devel] [PATCH] Move av_parse_frame_size() and av_parse_frame_rate() from libavcodec to libavcore

Stefano Sabatini stefano.sabatini-lala
Sat Jul 24 13:36:28 CEST 2010


On date Saturday 2010-07-24 04:18:22 +0200, Michael Niedermayer encoded:
> On Fri, Jul 23, 2010 at 12:57:15PM +0200, Stefano Sabatini wrote:
> [...]
> > +
> > +int av_parse_video_frame_rate(AVRational *frame_rate, const char *arg)
> > +{
> > +    int i;
> > +    int n = FF_ARRAY_ELEMS(video_frame_rate_abbrs);
> > +    char* cp;
> > +
> > +    /* First, we check our abbreviation table */
> > +    for (i = 0; i < n; ++i)
> > +         if (!strcmp(video_frame_rate_abbrs[i].abbr, arg)) {
> 
> > +             frame_rate->num = video_frame_rate_abbrs[i].rate_num;
> > +             frame_rate->den = video_frame_rate_abbrs[i].rate_den;
> 
> video_frame_rate_abbrs should contain AVRationals
> and i wonder if it would be simpler if both functions accepted AVRational

A size is not a rational, also I'm not sure the following is legal:
{ "pal", (AVRational) {1, 25} },
  
> > +             return 0;
> > +         }
> > +
> > +    /* Then, we try to parse it as fraction */
> > +    cp = strchr(arg, '/');
> > +    if (!cp)
> > +        cp = strchr(arg, ':');
> > +    if (cp) {
> > +        char* cpp;
> > +        frame_rate->num = strtol(arg, &cpp, 10);
> > +        if (cpp != arg || cpp == cp)
> > +            frame_rate->den = strtol(cp+1, &cpp, 10);
> > +        else
> > +           frame_rate->num = 0;
> 
> indention
> {}
> yes they are seperate from moving it of course ...
> still i think you could try patcheck and fix the things
> 
> 
> > +    }
> [...]
> > +
> > +/**
> > + * Parse str and put in width_ptr and height_ptr the detected values.
> > + *
> > + * @return 0 in case of a successful parsing, a negative value otherwise
> 
> this is unflexible for public abi
> because it just says we will never return a value >0
> doing so would break abi
> if you say <0 is error >= 0 is no error then additional information could be
> returned in the future without breaking abi/api

These comments are all unrelated to the proposed change, I'll fix them
with other patches but after this patch is applied.

Regards.
-- 
FFmpeg = Frenzy & Fierce Most Proud Ecumenical Game



More information about the ffmpeg-devel mailing list