diff mbox

[FFmpeg-devel,v3] avdevice/v4l2: Remove av_assert0 when format not supported

Message ID 20191105033259.8751-1-andriy.gelman@gmail.com
State Accepted
Commit 7b2ce27e56cfb4c55490035283a687251061bb50
Headers show

Commit Message

Andriy Gelman Nov. 5, 2019, 3:32 a.m. UTC
From: Andriy Gelman <andriy.gelman@gmail.com>

Before this commit an av_assert0 would fail if a v4l2 device did not
support a target format.
For example,
./ffmpeg -f v4l2 -codec:v h264 -i /dev/video0 -f mpegts -
would signal an abort if /dev/video0 did not support h264.

The new behaviour is to return an AVERROR(EINVAL) error code. An
av_assert0 has been added to verify this return.

Fixes #6629

Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
---
 libavdevice/v4l2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Nicolas George Nov. 6, 2019, 10:44 a.m. UTC | #1
Andriy Gelman (12019-11-04):
> From: Andriy Gelman <andriy.gelman@gmail.com>
> 
> Before this commit an av_assert0 would fail if a v4l2 device did not
> support a target format.
> For example,
> ./ffmpeg -f v4l2 -codec:v h264 -i /dev/video0 -f mpegts -
> would signal an abort if /dev/video0 did not support h264.
> 
> The new behaviour is to return an AVERROR(EINVAL) error code. An
> av_assert0 has been added to verify this return.
> 
> Fixes #6629
> 
> Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
> ---
>  libavdevice/v4l2.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index 446a243cf8..365bacd771 100644
> --- a/libavdevice/v4l2.c
> +++ b/libavdevice/v4l2.c
> @@ -811,7 +811,8 @@ static int device_try_init(AVFormatContext *ctx,
>      }
>  
>      *codec_id = ff_fmt_v4l2codec(*desired_format);
> -    av_assert0(*codec_id != AV_CODEC_ID_NONE);
> +    if (*codec_id == AV_CODEC_ID_NONE)
> +        av_assert0(ret == AVERROR(EINVAL));
>      return ret;
>  }
>  

This version is fine by me, thanks. But I do not maintain this file.

Please remember to reply to the list, not personally; it is the default,
no need to do anything special if your software works normally.

Regards,
Michael Niedermayer Nov. 6, 2019, 7:20 p.m. UTC | #2
On Wed, Nov 06, 2019 at 11:44:50AM +0100, Nicolas George wrote:
> Andriy Gelman (12019-11-04):
> > From: Andriy Gelman <andriy.gelman@gmail.com>
> > 
> > Before this commit an av_assert0 would fail if a v4l2 device did not
> > support a target format.
> > For example,
> > ./ffmpeg -f v4l2 -codec:v h264 -i /dev/video0 -f mpegts -
> > would signal an abort if /dev/video0 did not support h264.
> > 
> > The new behaviour is to return an AVERROR(EINVAL) error code. An
> > av_assert0 has been added to verify this return.
> > 
> > Fixes #6629
> > 
> > Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com>
> > ---
> >  libavdevice/v4l2.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> > index 446a243cf8..365bacd771 100644
> > --- a/libavdevice/v4l2.c
> > +++ b/libavdevice/v4l2.c
> > @@ -811,7 +811,8 @@ static int device_try_init(AVFormatContext *ctx,
> >      }
> >  
> >      *codec_id = ff_fmt_v4l2codec(*desired_format);
> > -    av_assert0(*codec_id != AV_CODEC_ID_NONE);
> > +    if (*codec_id == AV_CODEC_ID_NONE)
> > +        av_assert0(ret == AVERROR(EINVAL));
> >      return ret;
> >  }
> >  
> 
> This version is fine by me, thanks. But I do not maintain this file.

will apply

thanks

[...]
diff mbox

Patch

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 446a243cf8..365bacd771 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -811,7 +811,8 @@  static int device_try_init(AVFormatContext *ctx,
     }
 
     *codec_id = ff_fmt_v4l2codec(*desired_format);
-    av_assert0(*codec_id != AV_CODEC_ID_NONE);
+    if (*codec_id == AV_CODEC_ID_NONE)
+        av_assert0(ret == AVERROR(EINVAL));
     return ret;
 }