[FFmpeg-devel] [PATCH] v4l2: setting device parameters early

Federico Simoncelli federico.simoncelli at gmail.com
Sun Jan 5 12:33:42 CET 2014


Any feedback?

Thanks,
-- 
Federico

On Thu, Jan 2, 2014 at 4:25 PM, Federico Simoncelli
<federico.simoncelli at gmail.com> wrote:
> Setting the v4l2 device parameters may influence video properties
> such as width, height and pixel format.
> This patch moves v4l2_set_parameters to be executed before fetching
> the video properties, avoiding errors such as (pal vs ntsc):
>
>  The v4l2 frame is 829440 bytes, but 691200 bytes are expected
>
> Signed-off-by: Federico Simoncelli <fsimonce at redhat.com>
> ---
>  libavdevice/v4l2.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index cb962b7..1ab6f1c 100644
> --- a/libavdevice/v4l2.c
> +++ b/libavdevice/v4l2.c
> @@ -866,6 +866,9 @@ static int v4l2_read_header(AVFormatContext *s1)
>
>      avpriv_set_pts_info(st, 64, 1, 1000000); /* 64 bits pts in us */
>
> +    if ((res = v4l2_set_parameters(s1)) < 0)
> +        return res;
> +
>      if (s->pixel_format) {
>          AVCodec *codec = avcodec_find_decoder_by_name(s->pixel_format);
>
> @@ -917,9 +920,6 @@ static int v4l2_read_header(AVFormatContext *s1)
>
>      s->frame_format = desired_format;
>
> -    if ((res = v4l2_set_parameters(s1)) < 0)
> -        return res;
> -
>      st->codec->pix_fmt = avpriv_fmt_v4l2ff(desired_format, codec_id);
>      s->frame_size =
>          avpicture_get_size(st->codec->pix_fmt, s->width, s->height);
> --
> 1.8.4.2
>


More information about the ffmpeg-devel mailing list