diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2013-02-10 17:46:17 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2013-02-10 20:59:06 +0100 |
commit | f0703b6cba655dfc215903d22980d8e39fff0349 (patch) | |
tree | b6b03650a96ad94de40e44392188e2d0b83ea989 | |
parent | 0e3dacb11eacf6a944691bb4a12f4dd56b6d7ce6 (diff) | |
download | ffmpeg-f0703b6cba655dfc215903d22980d8e39fff0349.tar.gz |
lavd/v4l2: fix error logic when enumerating standards
Set ret to 0 before enumerating standards in v4l2_set_parameters(), avoid
use of uninitialized variable.
Regression introduced in 60950adc18fe145a235211e75da68ab07123fcaa.
-rw-r--r-- | libavdevice/v4l2.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 63a3abe256..4c43e37769 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) { |