Android ndk: ACameraManager_getCameraIdList возвращает 0 - PullRequest
0 голосов
/ 01 октября 2018

У меня есть плата Android 8.1 rk3399 с модулем камеры OV13850.

Интерфейс этого модуля - mipi-csi, а протокол - I2C.

Когда я регистрировал характеристики камеры, это была CameraCharacteristics..INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY.

Я действительно очень хочу использовать камеру ndk.

Но люди говорят, что родная камера не поддерживает устаревшие.

Вопрос 1:

У меня есть камера Raspberry b + mipi.

Если я просто поменяю модуль камеры, будет ли он совместим?

Я думаю, что интерфейсы одинаковы, поэтомунет необходимости редактировать код SDK на плате.

Простое добавление в файл .rc может работать.

Вопрос 2:

Я хочуподдержка устаревшей камеры на собственной стороне.

Если я отредактирую некоторый код в коде инфраструктуры ndk и соберу свой own.m, можно ли будет поддерживать устаревшую камеру?

Вопрос 3:

Какая часть решает, является ли модуль камерыустаревший или нет (физический модуль, драйвер ядра модуля, код камеры Android OS, инфраструктура ndk и т. д.)?

Какой метод выбрать между изменением модуля физической камеры или редактированием кода для собственной обработки?

Вопрос 4:

Чем отличается устаревшая камера от полной камеры?

1 Ответ

0 голосов
/ 01 октября 2018

Да, вы можете изменить структуру, чтобы иметь некоторую поддержку камеры LEGACY2 без Java.Посмотрите мой POC , который передает поддержку NDK Camera2 на Android 6, вам нужно будет выбрать некоторые изменения.Мой код работает с камерой LEGACY, но я никогда не тестировал его, кроме самых базовых функций.

Вы не можете запускать мой код как на Android 8, так как он запрещает связывать системные библиотеки с кодом пользователя.

Официальные документы подробно описывают ограничения камеры LEGACY, но TL; NR: камера LEGACY имеет старую HAL камеры и некоторую оболочку, эмулирующую API camera2 для пользовательских приложений.Правило большого пальца заключается в использовании старого устаревшего Camera API при обнаружении камеры LEGACY, таким образом вы избегаете некоторых дополнительных оболочек и ошибок в ней.

К сожалению, это не поможет вашей причине, потому чтонаша камера не имеет общедоступного C ++ API.Кроме того, я не думаю, что замена модуля камеры может помочь.LEGACY-характер камеры определяется на уровне прошивки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...