gboolean gst_v4l2_set_norm (GstV4l2Object * v4l2object, v4l2_std_id norm);
gboolean gst_v4l2_get_input (GstV4l2Object * v4l2object, guint32 * input);
gboolean gst_v4l2_set_input (GstV4l2Object * v4l2object, guint32 input);
+gboolean gst_v4l2_query_input (GstV4l2Object * v4l2object, struct v4l2_input * input);
gboolean gst_v4l2_get_output (GstV4l2Object * v4l2object, guint32 * output);
gboolean gst_v4l2_set_output (GstV4l2Object * v4l2object, guint32 output);
gboolean gst_v4l2_set_string_attribute (GstV4l2Object * v4l2object, int attribute_num, const char *value);
gboolean gst_v4l2_set_controls (GstV4l2Object * v4l2object, GstStructure * controls);
-
/* events */
gboolean gst_v4l2_subscribe_event (GstV4l2Object * v4l2object, guint32 event);
gboolean gst_v4l2_dequeue_event (GstV4l2Object * v4l2object, struct v4l2_event *event);
}
gboolean
+gst_v4l2_query_input (GstV4l2Object * obj, struct v4l2_input * input)
+{
+ gint ret;
+
+ ret = obj->ioctl (obj->video_fd, VIDIOC_ENUMINPUT, input);
+ if (ret < 0) {
+ GST_WARNING_OBJECT (obj->dbg_obj, "Failed to read input state: %s (%i)",
+ g_strerror (errno), errno);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+gboolean
gst_v4l2_get_output (GstV4l2Object * v4l2object, guint32 * output)
{
guint32 n;