mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Вот блин ты обрадовал :) спасибо сейчас читать буду
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Ну пропатчить-то я пропатчил, изменил в инициализации вход:
Код
int g_input = 2;
******
ioctl(fd_capture_v4l, VIDIOC_S_INPUT, &g_input)
При вызове выдает ошибку
Код ./mxc_v4l2_tvin -ow 800 -oh 480 -ot 0 -ol 0 -f YU12
VIDIOC_S_INPUT failed
Setup v4l capture failed.
leh
Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Цитата После того как пропатчите ядро будет возможность выбрать вход ADV7180 с помощью битов input[7..4], а биты input[3..0] по прежнему отвечают за выбор пути картинки: 0 - через IC, 1 - напрямую в память.
Так для пути 1 будут следующие номера каналов ADV7180:
AIN1 - input=0x01
AIN2 - input=0x11
AIN3 - input=0x21
и т.д.
0x02 - это AIN1 через путь 2, которого нет в драйвере. Правда, если еще наложить патч для деинтерлейсинга с imxcommunity, то он будет.
Если хотите AIN2 по пути 1, то нужно выбирать вход 0x11.
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Так вот пробовал я заменить
Код ioctl(fd_capture_v4l, VIDIOC_S_INPUT, &g_input)
на
Код ioctl(fd_capture_v4l, VIDIOC_S_INPUT, 0x11)
А результат такой же, ощущение, что я че-то не так делаю...
leh
Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Ну дак третий параметр - это указатель на номер входа, а не его значение
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Ну так значит если я сделаю вот так:
Код g_input = 0x11
ioctl(fd_capture_v4l, VIDIOC_S_INPUT, &g_input)
То все работает
Код g_input = 0x12
ioctl(fd_capture_v4l, VIDIOC_S_INPUT, &g_input)
То схватываю ошибку.
leh
Пункты: 1646
Регистрация: 07.06.2009
Пол: Мужчина
Из: Волгоград
Цитата AIN1 - input=0x01
AIN2 - input=0x11
AIN3 - input=0x21
и т.д.
Еще раз напоминаю: младшая тетрада - это путь, а старшая - номер входа в мультиплексоре ADV7180
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Блин че-то я совсем туплю...все понял в чем косяк...извиняюсь...
Все нафиг...завтра на свежую голову заниматься буду...
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина
Код g_input = 0x31;
if (ioctl(fd_capture_v4l, VIDIOC_S_INPUT, &g_input) < 0)
{
printf("VIDIOC_S_INPUT failed\n");
close(fd_capture_v4l);
return TFAIL;
}
Ну теперь как я понимаю все верно? Но блин нифига переключения не переходит...как считывал с первого какнала так и считывает...может у меня i2c не работает?
Он просто забивает на то, что там выставлено и гонит по первой паре ног...
mibin
Пункты: 7688
Регистрация: 22.05.2012
Пол: Мужчина