diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2008-06-27 18:16:22 +0200 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2008-06-27 18:16:22 +0200 |
commit | 1ebb6eae3f9dc67b3bb68184bb1e4dd911263688 (patch) | |
tree | d45cb877ed80f2f4c3caeb49df27e55e4916e090 /v4l2-apps/util/v4l2-ctl.cpp | |
parent | e223dda7bf237801b2e60bcaa486848c4af4528e (diff) | |
download | mediapointer-dvb-s2-1ebb6eae3f9dc67b3bb68184bb1e4dd911263688.tar.gz mediapointer-dvb-s2-1ebb6eae3f9dc67b3bb68184bb1e4dd911263688.tar.bz2 |
v4l2-ctl: fix bug in --set-standard
From: Hans Verkuil <hverkuil@xs4all.nl>
--set-standard allows you to set a standard index corresponding to
what ENUMSTD returns. But this clashes when you specify a standard whose
ID is very small, like PAL-BG. Then the utility thinks you specified
a standard index and will select the wrong standard.
Fixed by using a flag to mark that the standard actually is a standard
and not a standard index.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'v4l2-apps/util/v4l2-ctl.cpp')
-rw-r--r-- | v4l2-apps/util/v4l2-ctl.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/v4l2-apps/util/v4l2-ctl.cpp b/v4l2-apps/util/v4l2-ctl.cpp index d637e34d7..8a9287418 100644 --- a/v4l2-apps/util/v4l2-ctl.cpp +++ b/v4l2-apps/util/v4l2-ctl.cpp @@ -1365,7 +1365,7 @@ int main(int argc, char **argv) std = V4L2_STD_SECAM; } else { - std = strtol(optarg, 0L, 0); + std = strtol(optarg, 0L, 0) | (1ULL << 63); } break; case OptGetCtrl: @@ -1562,8 +1562,8 @@ int main(int argc, char **argv) } if (options[OptSetStandard]) { - if (std < 16) { - vs.index = std; + if (std & (1ULL << 63)) { + vs.index = std & 0xffff; if (ioctl(fd, VIDIOC_ENUMSTD, &vs) >= 0) { std = vs.id; } |