[FFmpeg-devel] [PATCH] lavd/v4l2: fix logic for setting standards

Stefano Sabatini stefasab at gmail.com
Sun Feb 10 17:48:01 CET 2013


Set ret to 0, avoid use of uninitialized variable.
Regression introduced in 60950adc18fe145a235211e75da68ab07123fcaa.
---
 libavdevice/v4l2.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 63a3abe..4c43e37 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -679,13 +679,16 @@ static int v4l2_set_parameters(AVFormatContext *s1)
 
     if (s->standard) {
         if (s->std_id) {
+            ret = 0;
             av_log(s1, AV_LOG_DEBUG, "Setting standard: %s\n", s->standard);
             /* set tv standard */
             for (i = 0; ; i++) {
                 standard.index = i;
-                if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0)
+                if (v4l2_ioctl(s->fd, VIDIOC_ENUMSTD, &standard) < 0) {
                     ret = AVERROR(errno);
-                if (ret < 0 || !av_strcasecmp(standard.name, s->standard))
+                    break;
+                }
+                if (!av_strcasecmp(standard.name, s->standard))
                     break;
             }
             if (ret < 0) {
-- 
1.7.9.5



More information about the ffmpeg-devel mailing list