use VIDIOC_ENUMINPUT to get camera sensor name.
authorMarko Ollonen <marko.ollonen@ixonos.com>
Wed, 13 Feb 2013 08:07:26 +0000 (10:07 +0200)
committerMarko Ollonen <marko.ollonen@ixonos.com>
Wed, 13 Feb 2013 08:10:00 +0000 (10:10 +0200)
Change-Id: I4e3cb76280feb64a9823c06a65bd9b8857f403fc

gst/mfldv4l2cam/v4l2camsrc_calls.c

index 994df1b..725a706 100644 (file)
@@ -3799,10 +3799,28 @@ gboolean
 gst_v4l2camsrc_libmfldcam_init (GstMFLDV4l2CamSrc * v4l2camsrc)
 {
   cam_err_t err;
+  struct v4l2_input input;
+  int ret;
+  char *name, *space;
+
+  memset(&input, 0, sizeof(input));
   if (v4l2camsrc->input_sensor == GST_CAMERA_INPUT_SENSOR_PRIMARY)
-    err = cam_driver_init (v4l2camsrc->video_fd, "mt9e013");
+    input.index = V2L2_CAMERA_INPUT_SENSOR_PRIMARY;
   else
-    err = cam_driver_init (v4l2camsrc->video_fd, "mt9m114");
+    input.index = V2L2_CAMERA_INPUT_SENSOR_SECONDARY;
+
+  ret = ioctl(v4l2camsrc->video_fd, VIDIOC_ENUMINPUT, &input);
+  if (ret < 0) {
+    return FALSE;
+  }
+  name = (char*)input.name;
+  space = strchr(name, ' ');
+  if (space > name) {
+      name[space - name] = '\0';
+  }
+  GST_DEBUG_OBJECT (v4l2camsrc, "sensor name %s", name);
+
+  err = cam_driver_init (v4l2camsrc->video_fd, name);
 
   if (err != CAM_ERR_NONE) {
     GST_WARNING ("libmfldcam initialization failed");