LINUX.ORG.RU
решено ФорумTalks

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


1

1

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

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

И вот этот тред: http://4pda.ru/forum/lofiversion/index.php?t271792.html

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

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

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

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

CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
CONFIG_VIDEO_MEDIA=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y

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

потом есть вот такой патч для Эклера: http://code.google.com/p/android-m912/downloads/detail?name=v4l2_camera_v2.patch

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

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

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

★★★★☆

Последнее исправление: stevejobs (всего исправлений: 2)
Ответ на: комментарий от billic

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

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

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

billic ★★
()
Ответ на: комментарий от billic

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

feofan ★★★★★
()
Ответ на: комментарий от billic

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

www.linux.org.ru/people/billic/profile

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

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

хмммм....

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

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

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)

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

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

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

Jetty ★★★★★
()
Последнее исправление: Jetty (всего исправлений: 2)
Ответ на: комментарий от stevejobs

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

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

billic ★★
()
Ответ на: комментарий от Jetty

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

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

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

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от billic

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

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от Jetty

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

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

Harald ★★★★★
()

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

AiFiLTr0 ★★★★★
()
Последнее исправление: AiFiLTr0 (всего исправлений: 1)
Ответ на: комментарий от stevejobs

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

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

billic ★★
()
Ответ на: комментарий от Harald

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

Harald ★★★★★
()
Ответ на: комментарий от billic

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

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

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от AiFiLTr0

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

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 1)
Ответ на: комментарий от stevejobs

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

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

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

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от Harald

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

Jetty ★★★★★
()
Ответ на: комментарий от stevejobs

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от Jetty

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

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

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от Harald

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от Jetty

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от Harald

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

Jetty ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

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

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

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

AiFiLTr0 ★★★★★
()

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

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

exception13 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Ответ на: комментарий от Jetty

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

AiFiLTr0 ★★★★★
()
Ответ на: комментарий от AiFiLTr0

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

Jetty ★★★★★
()
Последнее исправление: Jetty (всего исправлений: 1)
Ответ на: комментарий от stevejobs

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

убедил. (=

billic ★★
()

Интерено, как раз вчера заморочился именно этим же вопросом.
http://support.creative.com/Products/ProductDetails.aspx?catID=218&CatNam...
Вот эта камера
https://play.google.com/store/apps/details?id=com.dngames.mobilewebcam&hl=ru
Вот это приложение.
Камера подоткнута в OTG-USB на седьмом нексусе и таки показывает с внешней камеры. В приложениии есть кнопка-переключалка. В других приложениях ничего нет, поэтому в них внешняя камера не работает, даже питание не подаётся. Как только запустил скайп сразу всё поломалось, переключаться перестало.
PS: stevejobs

imul ★★★★★
()
Последнее исправление: imul (всего исправлений: 1)
Ответ на: комментарий от Jetty

Вобщето стандарт для камер это CSI/CSI2

угу я про него и говорил. В китайских датащитах его правда величают чаще CAMIF/CIF (по крайней мере в тех, что я видел).
Аппаратчина/не аппаратчина, а бизнес модели разные. Например китайцы берут тупо референсное ПО, переразводят референс борду под нищебродскую обвязку и выкидывают на рынок. Максимум что сделают - добавят свой логотип на сплеш. Реально что-то дописывают конторы крупнее, и то далеко не всегда. ЕМНИП куча достаточно крупных контор тупо берет уже сделанные китайцами пады, добавляет тупо свой брендинг и выкидывает на рынок. (Ritmix емнип этим балуются)

AiFiLTr0 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.