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

Andriy Gelman andriy.gelman at gmail.com
Tue Nov 5 05:32:59 EET 2019


From: Andriy Gelman <andriy.gelman at 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 at 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;
 }
 
-- 
2.23.0



More information about the ffmpeg-devel mailing list