PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Видео (http://pccar.ru/forumdisplay.php?f=194)
-   -   USB EasyCAP for Android (http://pccar.ru/showthread.php?t=19390)

AmNik 25.05.2014 22:52

Цитата:

Сообщение от YuryK (Сообщение 297974)
resetusb.sh

Очень полезный скрипт для корректного выхода из спящего режима (или возврата в рабочий режим). Зачем он нужен? Дело в том, что в режиме хоста планшет не подает напряжение в периферию, а наоборот - сам заряжается, поэтому отключении напряжения периферия для планшета так же пропадала. При появлении напряжения на VBUS планшет включает режим зарядки и периферию не опрашивает. Этот скрипт "рестартует" usb port на планшете и тот находит подключенную периферию не выключая режим зарядки. Я настроил таскер, чтобы он запускал этот скрипт по состоянию "зарядка", т.к. в момент включения зажигания. Скрипт можно положить куда-нибудь в /sdcard/... и запускать через /system/bin/sh ОБЯЗАТЕЛЬНО С ПРАВАМИ РУТА!




Цитата:

Сообщение от YuryK (Сообщение 297974)
resetcam.sh

Этот скрипт рестартует каркам сервис. Я долго не мог добиться корректного выхода каркама из спящего режима, т.к. тот не выводил картинку на передний план. Т.е. сигнал был, картинка показывалась, но только если вручную запустить. После этого картинка уже включалась автоматически до следуюшего спящего режима. В итоге я решил просто перезапускать каркам через командную строку. Исполнение скрипта так же повесил на таскер, как и resetusb.sh с правами рута. НО! для этого нужен "ломаная" версия каркама, которая ниже:

carcam_1.4bbb.apk

В этой версии изменен манифест андроид-приложения, а точнее - сервиса, чтобы его можно было перезапускать из сторонних программ. Декомпилировал я его тоже, чисто на джава-код посмотреть, интересно было :) но менять ничего не стал.


Вопрос: будут ли скрипты работать на тимуровской прошивке на 1012 нексусе??

YuryK 26.05.2014 02:24

Цитата:

Сообщение от Rage2 (Сообщение 297975)
Вот это сила! Респект!
Можно подробнее как сделал чтоб видео3 не скакало?

есть в kernel/drivers/media/video драйвер v4l2 (video4linux2), в нем есть два файла, отвечающие за создание девайса захвата видео (v4l2-dev.c и v4l2-device.c). файл там создается по шаблону %s%d, в параметры идут basename и num. basename я так понял может быть video, v4l-subdev, radio и еще что-то там. я добавил проверку, что если это 'video' и num > 3 то все равно ставить 3 в качестве num

изикеповские модули используют либо стандартный линуксовый v4l2 (те что в шапке) либо некую qv4l2 (те, которые от DmitrySmol), но создание девайса там одинаково сделано, кто С знает - разберется

YuryK 26.05.2014 02:27

Цитата:

Сообщение от AmNik (Сообщение 297976)
Вопрос: будут ли скрипты работать на тимуровской прошивке на 1012 нексусе??

Работать будут, вопрос - как? :) Тот, что рестартует сервис каркама - стопудово да, что ресетит usb - будет ресетить, но как после этого себя ядро поведет, не проверял.

armlive 26.05.2014 10:41

Цитата:

Сообщение от YuryK (Сообщение 297985)
есть в kernel/drivers/media/video драйвер v4l2 (video4linux2), в нем есть два файла, отвечающие за создание девайса захвата видео (v4l2-dev.c и v4l2-device.c). файл там создается по шаблону %s%d, в параметры идут basename и num. basename я так понял может быть video, v4l-subdev, radio и еще что-то там. я добавил проверку, что если это 'video' и num > 3 то все равно ставить 3 в качестве num

изикеповские модули используют либо стандартный линуксовый v4l2 (те что в шапке) либо некую qv4l2 (те, которые от DmitrySmol), но создание девайса там одинаково сделано, кто С знает - разберется

Вот с чем проблем ни когда не было, так это с видео3.

Rage2 26.05.2014 12:42

Цитата:

Сообщение от YuryK (Сообщение 297985)
есть в kernel/drivers/media/video драйвер v4l2 (video4linux2), в нем есть два файла, отвечающие за создание девайса захвата видео (v4l2-dev.c и v4l2-device.c). файл там создается по шаблону %s%d, в параметры идут basename и num. basename я так понял может быть video, v4l-subdev, radio и еще что-то там. я добавил проверку, что если это 'video' и num > 3 то все равно ставить 3 в качестве num

изикеповские модули используют либо стандартный линуксовый v4l2 (те что в шапке) либо некую qv4l2 (те, которые от DmitrySmol), но создание девайса там одинаково сделано, кто С знает - разберется

qv4l2 - это и есть стандартный v4l2, просто переименован, т.к у тимура часть пакета вкомпилено в ядро. А нужен полный набор.

Можешь привести кусок кода до и после. А то я в коде не силен вообще.

Файлы из твоего поста удалены с обменника. Залей сюда в архиве.

YuryK 26.05.2014 13:13

Жирным выделены мои изменения.

v4l2-dev.c:

int __video_register_device(struct video_device *vdev, int type, int nr,
int warn_if_nr_in_use, struct module *owner)
{
int i = 0;
int ret;
int minor_offset = 0;
int minor_cnt = VIDEO_NUM_DEVICES;
bool vid = false;
const char *name_base;


-----------------------------------------------

/* Part 1: check device type */
switch (type) {
case VFL_TYPE_GRABBER:
name_base = "video";
vid = true;
break;
case VFL_TYPE_VBI:
name_base = "vbi";
break;
case VFL_TYPE_RADIO:
name_base = "radio";
break;
case VFL_TYPE_SUBDEV:
name_base = "v4l-subdev";
break;

---------------------------------------------------------

/* Part 4: register the device with sysfs */
vdev->dev.class = &video_class;
vdev->dev.devt = MKDEV(VIDEO_MAJOR, vdev->minor);
if (vdev->parent)
vdev->dev.parent = vdev->parent;
dev_set_name(&vdev->dev, "%s%d", name_base, (vdev->num > 3 && vid) ? 3 : vdev->num);
ret = device_register(&vdev->dev);


v4l2-device.c:

int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
atomic_t *instance)
{
int num = atomic_inc_return(instance) - 1;
int len = strlen(basename);

if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
snprintf(v4l2_dev->name, sizeof(v4l2_dev->name),
"%s-%d", basename, num);
else
snprintf(v4l2_dev->name, sizeof(v4l2_dev->name),
"%s%d", basename, (num > 3 && len == 5 && basename[0] == 'v') ? 3 : num);
return num;


Загрузил архив сюда, на форуме лимит 1.91 мб - не влезает.
Если что-то не будет работать как надо, пишите - разберемся :)

Shlag 27.05.2014 21:59

YuryK В Вашей версии ядра работает индикация заряда после перезагрузки с подключенным otg кабелем? Кстати проблем с video 3 у меня не было.

YuryK 29.05.2014 22:54

да, зарядка автоматически определяется, много на это сил было потрачено :)

Shlag 30.05.2014 00:32

Цитата:

Сообщение от YuryK (Сообщение 298377)
да, зарядка автоматически определяется, много на это сил было потрачено :)

Попытался поставить Ваш boot через рекавери - не получилось пишет ошибка...Как его правильно прошить? Не могли бы Вы выложить boot отдельно?
Будет ли индикация заряда без использования скриптов?

Hidemon 30.05.2014 02:08

Не пинайте, не смог найти поиском. Проблема такая. Приехал свисток на 1160, подключаю к nexus gsm 2012, на котором стоит CarCam1.4bbb. На свисток подаю сигнал с Canon 650. В статике все нормуль, хотя ожидал лучшей картинки, а вот в динамике на вертикальных линиях появляются искажения в виде гребенки... Подключил свисток к ноуту. Установил дрова и прогу UVS se, которые шли в комплекте с EasyCAP. При просмотре динамической картинки все ок, а вот той же рипованной картинки уже с гребенкой изображение идет.
У всех так или мне косячный EasyCAP приехал?


Часовой пояс GMT +4, время: 13:11.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot