[FFmpeg-devel] [PATCH] lavd/v4l2: allow devices not implementing VIDIOC_G_PARM

Benoit Fouet benoit.fouet at free.fr
Thu Jun 16 10:16:54 CEST 2016


Hi,


On 15/06/2016 17:21, Niklas Söderlund wrote:
> Not all v4l2 devices implement the VIDIOC_G_PARM ioctl. This patch allow
> ffmpeg to open such device and treat it the same as devices that do
> implement the ioctl but returns that it do not implement the
> V4L2_CAP_TIMEPERFRAME capability.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas at ragnatech.se>
> ---
>   libavdevice/v4l2.c | 7 ++-----
>   1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index 103fb10..c8915e0 100644
> --- a/libavdevice/v4l2.c
> +++ b/libavdevice/v4l2.c
> @@ -715,11 +715,8 @@ static int v4l2_set_parameters(AVFormatContext *ctx)
>       streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
>       if (v4l2_ioctl(s->fd, VIDIOC_G_PARM, &streamparm) < 0) {
>           ret = AVERROR(errno);
> -        av_log(ctx, AV_LOG_ERROR, "ioctl(VIDIOC_G_PARM): %s\n", av_err2str(ret));
> -        return ret;
> -    }
> -
> -    if (framerate_q.num && framerate_q.den) {
> +        av_log(ctx, AV_LOG_WARNING, "ioctl(VIDIOC_G_PARM): %s\n", av_err2str(ret));
> +    } else if (framerate_q.num && framerate_q.den) {
>           if (streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) {
>               tpf = &streamparm.parm.capture.timeperframe;
>   

LGTM

-- 
Ben



More information about the ffmpeg-devel mailing list