Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

camera3_callback_ops Ссылка на структуру

camera3_callback_ops Справочник по структуре

#include < camera3.h >

Поля данных

пустота (* process_capture_result ) (const struct camera3_callback_ops *, const camera3_capture_result_t * результат)
пустота (* уведомить ) (Const структура camera3_callback_ops * Const camera3_notify_msg_t * тзд)

Подробное описание

Определение в строке 2397 файла camera3.h .

Полевая документация

void (* уведомление) (const struct camera3_callback_ops *, const camera3_notify_msg_t * msg)

поставить в известность:

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

Несколько потоков могут одновременно вызывать notify () .

<= CAMERA_DEVICE_API_VERSION_3_1:

Уведомление о начале раскрытия для данного запроса должно быть отправлено HAL до того, как будет сделан первый вызов process_capture_result () для этого запроса.

> = CAMERA_DEVICE_API_VERSION_3_2:

Буферы, доставленные в платформу, не будут отправлены на уровень приложения до тех пор, пока метка времени начала экспозиции (или метка времени начала экспозиции входного изображения для запроса на повторную обработку) не будет получена посредством вызова SHUTTER notify () . Настоятельно рекомендуется отправить этот звонок как можно раньше.


Требования к производительности:

Это неблокирующий звонок. Платформа ответит на этот вызов через 5 мсек.

Определение в строке 2499 файла camera3.h .

void (* process_capture_result) (const struct camera3_callback_ops *, const camera3_capture_result_t * результат)

process_capture_result:

Отправьте результаты завершенного захвата в платформу. process_capture_result () может вызываться HAL несколько раз в ответ на один запрос захвата. Это позволяет, например, возвращать метаданные и буферы с низким разрешением за один вызов, а буферы JPEG после обработки - при последующем вызове, когда они становятся доступными. Каждый вызов должен включать номер кадра запроса, для которого он возвращает метаданные или буферы.

Компонент (буфер или метаданные) полного результата может быть включен только в один вызов process_capture_result. Буфер для каждого потока и метаданные результата должны возвращаться HAL для каждого запроса в одном из вызовов process_capture_result, даже в случае ошибок, приводящих к некоторым выходным данным. Вызов process_capture_result () без буферов вывода или метаданных результата не разрешен.

Порядок возврата метаданных и буферов для одного результата не имеет значения, но буферы для данного потока должны возвращаться в порядке FIFO. Таким образом, буфер для запроса 5 для потока A всегда должен возвращаться перед буфером для запроса 6 для потока A. Это также относится к метаданным результата; метаданные для запроса 5 должны быть возвращены перед метаданными для запроса 6.

Однако разные потоки не зависят друг от друга, поэтому допустимо и ожидается, что буфер для запроса 5 для потока A может быть возвращен после того, как буфер для запроса 6 для потока B будет. И допустимо, чтобы метаданные результата для запроса 6 для потока B возвращались раньше, чем буфер для запроса 5 для потока A.

HAL сохраняет право собственности на структуру результата, которая должна быть действительной только для доступа во время этого вызова. Фреймворк скопирует все, что ему нужно, прежде чем этот вызов вернется.

Буферы вывода пока заполнять не нужно; перед чтением данных из буфера фреймворк будет ожидать блокировки синхронизации освобождения буфера потока. Следовательно, этот метод должен быть вызван HAL как можно скорее, даже если некоторые или все выходные буферы все еще заполнены. HAL должен включать допустимые ограждения синхронизации выпуска в каждую запись буфера потока output_buffers или -1, если этот буфер потока уже заполнен.

Если буфер результата не может быть создан для запроса, HAL должен вернуть пустой буфер метаданных, но все же предоставить выходные буферы и их границы синхронизации. Кроме того, notify () должен вызываться с сообщением ERROR_RESULT.

Если буфер вывода не может быть заполнен, его поле состояния должно быть установлено на STATUS_ERROR. Кроме того, notify () должен вызываться с сообщением ERROR_BUFFER.

Если весь захват завершился неудачно, этот метод все равно необходимо вызвать, чтобы вернуть выходные буферы в платформу. Все статусы буфера должны быть STATUS_ERROR, а метаданные результата должны быть пустым буфером. Кроме того, notify () должен вызываться с сообщением ERROR_REQUEST. В этом случае отдельные сообщения ERROR_RESULT / ERROR_BUFFER не должны отправляться.

Требования к производительности:

Это неблокирующий звонок. Платформа ответит на этот вызов через 5 мсек.

Задержка конвейера (определение см. В S7) должна быть меньше или равна 4 интервалам кадра и должна быть меньше или равна 8 интервалам кадра.

Определение в строке 2466 файла camera3.h .


Документация для этой структуры была создана из следующего файла:
  • оборудование / libhardware / включают / оборудование / camera3.h