андроидопланшет + внешняя веб-камера

андроидопланшет + внешняя веб-камера

Разъясните, андроид действительно настолько убог, что не может внешнюю веб-камеру? Или я просто как-то не так гуглю?

Смог найти только вот это видео (и исходники соответствующей проги): http://www.youtube.com/watch?v=V377E2FH0WQ

Но даже если это допилить, не совсем понимаю, как полученное видео запихнуть в скайп?

Вот тут советуют: достать сырцы андройда, пропатчить camera-HAL и camera-service.

Кто-нибудь уже таким занимался? Где можно почитать чтобы повторить? (Наверное, cianogen, под мой acer a500 оно есть.)

т.е. теоретически должно проканать что-то такое: вначале пересобрать ведро с вот такими флагами:

и выставить права 666 на /dev/video0 в ueventd.tuna.rc

если забить на то, что в нем надо еще и разобраться.

но это 2.0, а в планшетах - 4. То есть, нужно разобраться еще и в в текущей реализации. Потому что, как говорят, в 3.1 там все поменялось.

хотелось бы каких-нибудь историй успеха, а то сам я не шарю :(

а это правда Talks?

ну просто в linux-hardware это совать как-то странно, а в mobile - это раздел про «очередной тред про посоветуйте телефон до 15 т.р.», да и нету никого в том разделе..

разве не для таких случаев есть general?

общий форум для технических вопросов, не подходящих в другие группы

более того я уверен, что существуют более специализированные форумы на просторах интернетов.

Плюсую. В рунете есть 4pda. Но лучше обратись в xda-developers

более того я уверен, что существуют более специализированные форумы на просторах интернетов.

Число комментариев: 727 Число сообщений (тем) Форум 21

вроде не совсем новичок

помойму вне Лора никакой жизни нет (интернетов в том числе)

короче, если модераторы решат, что это излишне технический вопрос - снимут скора да перенесут в general.. мне поровну, в каком разделе это висит, лишь бы кто-нибудь ответил :))

Это зависит от производителя конечного девайса. Например у Motorola Xoom2 поддержка USB камер есть. А у китайских поделок соответственно цене.

Кстати тот пачт что ты привел - это для Samsung/Google Galaxy Nexus и соответственно для рандомной жилезки он никак не подойдет.

А вообще это очень спорный вопрос. Основная проблема в том что у Андроиддевайсов ресурсы не резиновые и их распределение зачастую происходит на этапе загрузки и инициализации.

что значит Ваше хммм? Переходите на личности при первом удобном случае? (=

наличие куска конфига ядра в первом посте, на мой скромный 21-темовый взгляд, является очень хорошим намеком на «излишне технический вопрос».

т.е. можно просто воткнуть в USB камеру, и она появится в скайпе?

или просто определится и будет показывать?

помойму, определяться-то она и у меня определяется. Главное - заставить скайп ее правильно понимать

изначальная проблема в том, что встроенная камера - ужасна, а ее микрофон - ужасен до такой степени, что собеседник не понимает половины слов. Это на заметку «очередной тред про посоветуйте планшет до 15 т.р.»

наличие куска конфига ядра в первом посте

линуксоиды докатились до того, что конфиг ядра кажется технической темой? (= :3

Это зависит от производителя конечного девайса. Например у Motorola Xoom2 поддержка USB камер есть. А у китайских поделок соответственно цене.

Разница в паре опций в конфиге ядра. Или эти 2-3 модуля прям 100500 мегабайт занимают?

Зависит от того, как сделано. В дройде камеру можно подцепить к жабоапи через v4l || костыль проприетарный. (там .soшка на это собирается). Во втором случае с вебкой облом, в первом достаточно собрать модуль, подправить конфиг и наслаждаться. Я так к флайтачу usb-микроскоп подключал.

да, если это касается патчей на этот самый конфиг (=

тем более, что патч направлен на решение вполне себе технической проблемы.

для начала неплохо бы проверить, включены ли сабжевые опции в имеющемся ядре

а еще можно устроить срач про то, какой же андроид убогий

блин, это же самая нужна опция для девайса, который используется для коммуникации - иметь возможность быстро апгрейднуть коммуникационную часть!

и ладно бы дырок не было. Есть же дырка! Не какая-нибудь, а универсальная. И где же ее поддержка? Почему тут вообще должен быть конфиг ядра?

а скайп твой микроскоп подхватывал? Т.е. прочитать камеру через жни можно, но я так понял, нужно еще подменить кусок фреймворка, который отвечает за device enumeration и передвинуть вебку в самое начало, вперед встроенных девайсов. И не только видео, но и микрофон (что отдельная проблема - судя по тексту того патча для Эклера, он только про видео)

скайп тебе подхватит то, что найдет.

Т.е. прочитать камеру через жни можно, но я так понял, нужно еще подменить кусок фреймворка, который отвечает за device enumeration и передвинуть вебку в самое начало, вперед встроенных девайсов.

Если v4l то там какой id v4l использовать для front/back/третьей камеры задается емнип в media_profiles.xml который в /system/etc/

Аудио, это отдельная проблема, которую надо отдельно раскуривать.

Грусть, печаль, тоска. /thread.

Ядро ядром, но кроме ядра, а точнее его опции, есть еще масса других нюансов работы подсистемы камера. Все не так просто как вы привыкли думать.

С аудио, если там альза кстати, можно попробовать подсунуть asoundrc аккуратненько, где девайсы поменять.

Фиг. Скайп использует CameraHAL а это значит что если CameraHAL не умеет источник «V4L камера», то скайп в пролете даже если у тебя появится устройство /dev/videoX

Там точно альса. см другой ответ. Опять же должен уметь AudioFlinger.

Если я правильно помню, вендор собирает .so шку для CameraHAL, которая прибивает это либо к v4l, либо к вендорному костылю. (Могу ошибаться, сырцы дройда мало ковырял)На своем старом flytouch2 N для /dev/videoN задавался где-то в конфиге, то ли в media_profiles.xml то ли еще в каком-то, не помню, но он легко ищется лурканьем в /system.

Ну audioflinger будет выводить в дефолтное устройтсво, а правильно подсунутый/отредактированный asoundrc тупо перенаправит звук в другое место. Глобально. Хак, но должно сработать в теории.

Если я правильно помню, вендор собирает .so шку для CameraHAL, которая прибивает это либо к v4l, либо к вендорному костылю.

а теперь перейдем к тому варианту, когда такой .so-шки нет, и ее нужно как-то зделать самостоятельно.

что если CameraHAL не умеет источник «V4L камера»

а что, ещё какие-то другие бывают, кроме v4l2?

Есть еще понятие audio-route, это когда на пути к джеку надо включить/выключить 5-10 переключателей. Поэтому чаще всего на «сложных» или «навороченых» ДСП этот хак работать не будет.

Конечно. По умолчанию в андроидо девайсах v4l2 не используется вообще.

как страшно жыть :) А что вместо этого используется?

Ну то что ты сказал это слова капитана. Вопрос в другом - типовые решения на Exynos/Krait/Omap/Tegra не используют v4l. Что там у китайцев - не в курсе, не доводилось щупать такие девайсы близко.

Возьми любой mediatek. v4l/v4l2 в ядре и не пахнет, а камеры есть. Загадка-с.

Из того, что я ковырял, я встречал только mediatek, которые поклали ведро болтов на v4l/v4l2. По йехуносу кастую exception13 как спеца.

Вопрос где он задается. Если оно тупо пишет регистры через /dev/mem || костыль, это одно, а если роутинг тупо задает asoundrc то это другое. Это уже девайсоспецифика.

Чаще всего используются проприетарные стеки. Но это не потому что они злобные мудаки, а потому что есть много задач в камерных делах которые решаются «апаратно» либо на сопроцессорах. Например всякие стабилизации, конвертирование форматов/размеров/параметров, всякие корекции - ну вобщем все для того что бы это выглядело хорошо.

Не, через стандартное апи алсы с использованием юзерспейсовой libalsa либо tinyalsa. Фишка в том что параметры вхардкожены по понятным причинам.

Все ложат на v4l как праймари источник :)

Нда, значит мне более или менее везло с девайсами, так как там было все более или менее стандартно.

Ну МТК и другие скорее нет, этим страдают топовые вендоры. У них банально есть ресурсы на разработку фич.

У них банально есть ресурсы на разработку фич.

Из опыта скажу, сделать несовместимый ни с чем костыль быстрее, чем подцепляться к стандартному API. Особливо на стадии FPGA прототипирования, где придется делать АДОВО количество хаков, если оно не хочет работать. Так что скорее наоборот.

Если ты думаешь что V4L2 камерный интерфейс офигенно удобный и клевый - ты сильно ошибаешься. Он простой и унифицированный, но никак не функциональный и удобный.

Я этого не говорил, а v4l2 я даже знаю и из кернель и из юзерспейса. Я говорю, что на стадии прототипирования, для той же камеры проще запилить misc_device с хардкоженными параметрами, и тестить. А по лени природной эти костыли в итоге попадают в продакшен.

андроид действительно настолько убог, что не может внешнюю веб-камеру?

я уже неоднократно говорил что сборка андроида прибивается гвоздями к каждому устройству на таржете т.к. андроид не может в динамическую конфигурацию. есть костыли позволяющие использовать динамически подключаемые веб-камеры но это требует сборки библиотеки hal с какими то патчами и работать естественно будет только одна камера установленная как дефолтная.

Не по лени, а из здавой логики.Скажи, зачем вычитывать, пересчитывать, динамически контролить, если мы и так знаем что камера 8МП и умеет строго 4 режима в 2-ух пиксель форматах(а то и в одном)

Например

По лени. Вникать в чужую логику изучать существующий интерфейс всегда сложнее, чем запилить костыль, а выигрыш если и даст - то в необозримо далекой перспективе. Камера обычно сидит на CAM интерфейсе, к которому подрубить могут зоопарк сенсоров с разными ТТХ. интерфейс это обычно i2c для управления, и параллельная шина, по которой сенсор срет данными. Рефенсный драйвер (больше для тестов на FPGA) пишет производитель _чипа_, а не трубки и редко под один единственный сенсор. Далее производитель трубки, не пытается переписывать драйвер на v4l, а цепляет к дройду как попало свой сенсор/аналогичный референсу. Или вообще (если производитель чипа потрудился сделать референсную сборку дройда) использует что есть.

Вобщето стандарт для камер это CSI/CSI2 (при контрольном канале через и2ц например). А драйвер, именно драйвер, пишет конечный вендор. Все остальное апаратчина :)

а еще можно устроить срач про то, какой же андроид убогий

📎📎📎📎📎📎📎📎📎📎