summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2013-02-10 17:46:17 +0100
committerStefano Sabatini <stefasab@gmail.com>2013-02-10 20:59:06 +0100
commitf0703b6cba655dfc215903d22980d8e39fff0349 (patch)
treeb6b03650a96ad94de40e44392188e2d0b83ea989
parent0e3dacb11eacf6a944691bb4a12f4dd56b6d7ce6 (diff)
downloadffmpeg-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.c7
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) {