[PATCH] Make gst_v4l2_fill_lists() adapt to kernel 3.3+
Huacai Chen
chenhc at lemote.com
Tue Aug 21 04:47:45 PDT 2012
When do v4l2_ioctl() with VIDIOC_ENUMINPUT fails on some devices,
kernels before 3.3.0 return EINVAL, but newer kernels return ENOTTY.
This patch make those devices work well on kernel 3.3+.
Related kernel commit:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=07d106d0a33d6063d2061305903deb02489eba20
Signed-off-by: Huacai Chen <chenhc at lemote.com>
Signed-off-by: Rui Wang <wangr at lemote.com>
Signed-off-by: Jie Chen <chenj at lemote.com>
---
sys/v4l2/v4l2_calls.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
index ace78df..2f79627 100644
--- a/sys/v4l2/v4l2_calls.c
+++ b/sys/v4l2/v4l2_calls.c
@@ -129,7 +129,7 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
input.index = n;
if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_ENUMINPUT, &input) < 0) {
- if (errno == EINVAL)
+ if (errno == EINVAL || errno == ENOTTY)
break; /* end of enumeration */
else {
GST_ELEMENT_ERROR (e, RESOURCE, SETTINGS,
--
1.7.7.3
More information about the gstreamer-devel
mailing list