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
