Я пытаюсь настроить яркость камеры. Перед установкой яркости я пытаюсь проверить, находится ли яркость в автоматическом режиме или нет. Мы можем сделать это, проверив флаг volatile, но я использую версию ядра 2.6.32, которая не имеет этой функции. Итак, другой вариант — проверить V4L2_CID_AUTOBRIGHTNESS, что я и делаю, но он возвращает EINVAL.
Я использую следующий код для получения значения:
struct v4l2_control control;
control.id = V4L2_CID_BRIGHTNESS; // This is working fine
//control.id = V4L2_CID_AUTOBRIGHTNESS; // This is giving EINVAL in ioctl
if (-1 == ioctl(camDesc, VIDIOC_G_CTRL, &control))
cerr << "VIDIOC_G_CTRL" << " :: " << errno << endl ;
else
cout << "Successfully got property. Value :: " << control.value << endl;
Возможно, V4L2_CID_AUTOBRIGHTNESS является логическим свойством, поэтому оно выдает EINVAL, но тогда я не могу найти какой-либо другой метод, с помощью которого я могу получить значение логического свойства.