summaryrefslogtreecommitdiff
path: root/v4l2-apps/util
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2008-06-27 18:16:22 +0200
committerHans Verkuil <hverkuil@xs4all.nl>2008-06-27 18:16:22 +0200
commit1ebb6eae3f9dc67b3bb68184bb1e4dd911263688 (patch)
treed45cb877ed80f2f4c3caeb49df27e55e4916e090 /v4l2-apps/util
parente223dda7bf237801b2e60bcaa486848c4af4528e (diff)
downloadmediapointer-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')
-rw-r--r--v4l2-apps/util/v4l2-ctl.cpp6
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;
}