Выбор входного канала с V4L2 API

Я хочу выбрать входной канал моего устройства VideoCamera. Я могу выбрать его в VLC через «Настройки-Диалог». В расширенных настройках я могу переключить «вход» на 3, и моя камера работает.
Теперь я хочу сделать это в моем приложении C ++. Я не могу найти метод записи, чтобы сделать это. На данный момент мои картины просто черные. Мне нужно выбрать канал S-Video моего устройства.

2

Решение

Вы должны взглянуть на исходный код v4l2-ctl которая является частью v4l-Utils. Этот инструмент написан на C ++ / Qt и должен предоставить вам всю необходимую информацию, чтобы сделать это самостоятельно. Изменение входа для устройства обрабатывается в v4l2-CTL-io.cpp

void io_set(int fd)
{
if (options[OptSetInput]) {
if (doioctl(fd, VIDIOC_S_INPUT, &input) == 0) {
struct v4l2_input vin;

printf("Video input set to %d", input);
vin.index = input;
if (test_ioctl(fd, VIDIOC_ENUMINPUT, &vin) >= 0)
printf(" (%s: %s)", vin.name, status2s(vin.status).c_str());
printf("\n");
}
}
// snip...
}

Надеюсь это поможет.

Редактировать:
Просто нашел соответствующую часть в официальной документации API Вот.
На этой странице есть несколько примеров того, как изменить видеовход.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]