summaryrefslogtreecommitdiff
path: root/v4l2-apps/libv4l/libv4l2/log.c
diff options
context:
space:
mode:
authorhans@rhel5-devel.localdomain <hans@rhel5-devel.localdomain>2009-03-11 13:12:08 +0100
committerhans@rhel5-devel.localdomain <hans@rhel5-devel.localdomain>2009-03-11 13:12:08 +0100
commit17bb671ca3461d5aacfe3ca34adb4694a3b25949 (patch)
tree1a7ba11f5d526109f0d063cfb6c1bc7d4ed435bf /v4l2-apps/libv4l/libv4l2/log.c
parent5f90628a20098c6dcde990310eaaabec2cef4694 (diff)
downloadmediapointer-dvb-s2-17bb671ca3461d5aacfe3ca34adb4694a3b25949.tar.gz
mediapointer-dvb-s2-17bb671ca3461d5aacfe3ca34adb4694a3b25949.tar.bz2
libv4l: avoid try_fmt on UVC cams if possible
From: Hans de Goede <hdegoede@redhat.com> Avoid the use of try_fmt as much as possible on UVC cams, instead use the results of the enum_framesizes ioctl. This is because: 1) try_fmt actually causes IO with UVC cams making apps which do lot of querying of device capabilities slow (cheese) 2) some buggy cams don't like getting lots of UVC video probes and crash when they do Priority: normal Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'v4l2-apps/libv4l/libv4l2/log.c')
-rw-r--r--v4l2-apps/libv4l/libv4l2/log.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/v4l2-apps/libv4l/libv4l2/log.c b/v4l2-apps/libv4l/libv4l2/log.c
index 6237d55ec..437b51d3e 100644
--- a/v4l2-apps/libv4l/libv4l2/log.c
+++ b/v4l2-apps/libv4l/libv4l2/log.c
@@ -18,6 +18,8 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
#include <linux/ioctl.h>
/* These headers are not needed by us, but by linux/videodev2.h,
which is broken on some systems and doesn't include them itself :( */
@@ -95,6 +97,7 @@ void v4l2_log_ioctl(unsigned long int request, void *arg, int result)
{
const char *ioctl_str;
char buf[40];
+ int saved_errno = errno;
if (!v4l2_log_file)
return;
@@ -143,6 +146,10 @@ void v4l2_log_ioctl(unsigned long int request, void *arg, int result)
break;
}
- fprintf(v4l2_log_file, "result == %d\n", result);
+ if (result < 0)
+ fprintf(v4l2_log_file, "result == %d (%s)\n", result, strerror(saved_errno));
+ else
+ fprintf(v4l2_log_file, "result == %d\n", result);
+
fflush(v4l2_log_file);
}