Proper device-capabilities check when opening
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 10 Nov 2003 10:25:59 +0000 (10:25 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Mon, 10 Nov 2003 10:25:59 +0000 (10:25 +0000)
Original commit message from CVS:
Proper device-capabilities check when opening

sys/v4l2/v4l2_calls.c

index 8b65dc7..ee6e00d 100644 (file)
@@ -34,6 +34,8 @@
 #include "gstv4l2xoverlay.h"
 #include "gstv4l2colorbalance.h"
 
+#include "gstv4l2src.h"
+
 #define DEBUG(format, args...) \
        GST_DEBUG_OBJECT (\
                GST_ELEMENT(v4l2element), \
@@ -372,6 +374,15 @@ gst_v4l2_open (GstV4l2Element *v4l2element)
                goto error;
        }
 
+       /* do we need to be a capture device? */
+       if (GST_IS_V4L2SRC(v4l2element) &&
+           !(v4l2element->vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) {
+               gst_element_error(GST_ELEMENT(v4l2element),
+                                 "Not a capture device (0x%x)",
+                                 v4l2element->vcap.capabilities);
+               goto error;
+       }
+
        /* create enumerations */
        if (!gst_v4l2_fill_lists(v4l2element))
                goto error;