On Thu, 26 May 2011 13:45:06 +0200, Stefano Sabatini 
<[email protected]> wrote:
> On date Thursday 2011-05-26 09:23:27 +0200, Anton Khirnov encoded:
> > ---
> >  libavdevice/v4l2.c |   21 +++++++++++++++++++--
> >  1 files changed, 19 insertions(+), 2 deletions(-)
> > 
> > diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> > index 566ee92..f95b3bd 100644
> > --- a/libavdevice/v4l2.c
> > +++ b/libavdevice/v4l2.c
> > @@ -46,6 +46,7 @@
> >  #include "libavutil/imgutils.h"
> >  #include "libavutil/log.h"
> >  #include "libavutil/opt.h"
> > +#include "libavutil/parseutils.h"
> >  
> >  static const int desired_video_buffers = 256;
> >  
> > @@ -69,6 +70,7 @@ struct video_data {
> >      unsigned int *buf_len;
> >      char *standard;
> >      int channel;
> > +    char *video_size; /**< String describing video size, set by a private 
> > option. */
> >  };
> >  
> >  struct buff_data {
> > @@ -587,8 +589,20 @@ static int v4l2_read_header(AVFormatContext *s1, 
> > AVFormatParameters *ap)
> >      }
> >      av_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */
> >  
> > -    s->width  = ap->width;
> > -    s->height = ap->height;
> > +    if (s->video_size) {
> > +        res = av_parse_video_size(&s->width, &s->height, s->video_size);
> > +        av_freep(&s->video_size);
> > +        if (res < 0) {
> > +            av_log(s1, AV_LOG_ERROR, "Couldn't parse video size.\n");
> > +            return res;
> > +        }
> > +    }
> > +#if FF_API_FORMAT_PARAMETERS
> > +    if (ap->width > 0)
> > +        s->width  = ap->width;
> > +    if (ap->height > 0)
> > +        s->height = ap->height;
> > +#endif
> >  
> >      capabilities = 0;
> >      s->fd = device_open(s1, &capabilities);
> > @@ -696,9 +710,12 @@ static int v4l2_read_close(AVFormatContext *s1)
> >      return 0;
> >  }
> >  
> > +#define OFFSET(x) offsetof(struct video_data, x)
> > +#define DEC AV_OPT_FLAG_DECODING_PARAM
> >  static const AVOption options[] = {
> >      { "standard", "", offsetof(struct video_data, standard), 
> > FF_OPT_TYPE_STRING, {.str = "NTSC" }, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
> >      { "channel",  "", offsetof(struct video_data, channel),  
> > FF_OPT_TYPE_INT,    {.dbl = 0 }, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
> > +    { "video_size", "A string describing frame size, such as 640x480 or 
> > hd720.", OFFSET(video_size), FF_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC },
> 
> Nit: maybe "size" with an "s" alias is better.
> 
> Rest of the patch looks fine, same for the other similar patches.

I don't think it's a good idea, we risk conflicts.
Especially with current ffmpeg options parsing, where it's impossible
to differentiate between format/codec options, having options named
'b' and 's' is very bad. User apps can provide aliases themselves
if they need them.

--
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to