Riferimento alla struttura camera3_stream
#include <
camera3.h
>
Campi dati |
|
int | stream_type |
uint32_t | width |
uint32_t | height |
int | format |
uint32_t | utilizzo |
uint32_t | max_buffers |
void * | priv |
android_dataspace_t | data_space |
int | rotazione |
void * | riservato [7] |
Descrizione dettagliata
camera3_stream_t:
Un handle per uno stream di input o di output di una singola videocamera. Uno stream è definito dal framework in base alla risoluzione e al formato del buffer e, in aggiunta, dall'HAL con i flag di utilizzo di gralloc e il conteggio massimo dei buffer in-flight.
Le strutture di stream sono di proprietà del framework, ma i puntatori a un camera3_stream passato all'HAL da configure_streams() sono validi fino alla fine della prima chiamata configure_streams() successiva che non include camera3_stream come argomento o fino alla fine della chiamata close().
Tutti camera3_stream gli elementi controllati dal framework sono immutabili una volta che camera3_stream viene passato a configure_streams(). L'HAL può modificare i parametri controllati dall'HAL solo durante una chiamata a configure_streams(), ad eccezione dei contenuti del puntatore privato.
Se una chiamata a configure_streams() restituisce un errore non fatale, tutti gli stream attivi rimangono validi come se configure_streams() non fosse stato chiamato.
L'endpoint dello stream non è visibile al dispositivo HAL della videocamera. In DEVICE_API_VERSION_3_1, questo valore è stato modificato per condividere i flag di utilizzo dei consumatori negli stream in cui la videocamera è un produttore (tipi di stream OUTPUT e BIDIRECTIONAL). Consulta il campo di utilizzo di seguito.
Documentazione dei campi
android_dataspace_t data_space |
Un campo che descrive i contenuti del buffer. Le dimensioni format e buffer definiscono il layout e la struttura della memoria dei buffer dello stream, mentre dataSpace definisce il significato dei dati all'interno del buffer.
Per la maggior parte dei formati, dataSpace definisce lo spazio di colore dei dati dell'immagine. Inoltre, per alcuni formati, dataSpace indica se sono richiesti dati basati su immagini o profondità. Consulta system/core/include/system/graphics.h per i dettagli dei formati e dei valori validi di dataSpace per ciascun formato.
Informazioni sulla versione:
< CAMERA_DEVICE_API_VERSION_3_3:
Non definito e non deve essere accessibile. Si presume che dataSpace sia HAL_DATASPACE_UNKNOWN e che lo spazio colore appropriato e così via debbano essere determinati dai flag di utilizzo e dal formato.
= CAMERA_DEVICE_API_VERSION_3_3:
Impostato sempre dal servizio della videocamera. HAL deve utilizzare questo spazio dati per configurare lo stream con lo spazio colore corretto o per scegliere tra le uscite a colori e a profondità, se supportate. I valori dello spazio dati sono le definizioni precedenti in graphics.h
>= CAMERA_DEVICE_API_VERSION_3_4:
Impostato sempre dal servizio della videocamera. HAL deve utilizzare questo spazio dati per configurare lo stream con lo spazio colore corretto o per scegliere tra le uscite a colori e a profondità, se supportate. I valori dello spazio dati vengono impostati utilizzando le definizioni dello spazio dati V0 in graphics.h
Formato int |
Il formato dei pixel per i buffer in questo stream. Format è un valore dell'elenco HAL_PIXEL_FORMAT_* in system/core/include/system/graphics.h o dagli intestazioni specifiche del dispositivo.
Se viene utilizzato HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, il modulo gralloc della piattaforma seleziona un formato in base ai flag di utilizzo forniti dal dispositivo della fotocamera e dall'altro endpoint dello stream.
<= CAMERA_DEVICE_API_VERSION_3_1:
Il dispositivo HAL della fotocamera deve ispezionare i buffer che gli vengono passati nella chiamata successiva register_stream_buffers() per ottenere i dettagli del formato specifici dell'implementazione, se necessario.
>= CAMERA_DEVICE_API_VERSION_3_2:
register_stream_buffers() non verrà chiamato dal framework, pertanto l'HAL deve configurare la pipeline ISP e del sensore in base esclusivamente alle dimensioni, ai flag di utilizzo e ai formati degli stream configurati.
uint32_t height |
uint32_t max_buffers |
void* priv |
rotazione int |
La rotazione di output richiesta dello stream, uno dei valori camera3_stream_rotation_t. Questo deve essere controllato da HAL insieme alla larghezza e all'altezza dello stream. Ad esempio, se la rotazione è di 90 gradi e la larghezza e l'altezza dello stream sono rispettivamente 720 e 1280, il servizio della fotocamera fornirà buffer di dimensioni 720 x 1280 e HAL dovrà acquisire un'immagine di 1280 x 720 e ruotarla di 90 gradi in senso antiorario. Il campo di rotazione non è interessato quando il tipo di stream è input. L'HAL della fotocamera deve ignorare il campo di rotazione per uno stream di input.
<= CAMERA_DEVICE_API_VERSION_3_2:
Non definito e non deve essere accessibile. L'HAL non deve applicare alcuna rotazione alle immagini di output.
>= CAMERA_DEVICE_API_VERSION_3_3:
Impostato sempre in base al servizio della videocamera. HAL deve ispezionare questo campo durante la configurazione dello stream e restituisce -EINVAL se non è in grado di eseguire questa rotazione. L'HAL deve sempre supportare CAMERA3_STREAM_ROTATION_0, pertanto una chiamata a configure_streams() non deve non riuscire per la rotazione non supportata se il campo di rotazione di tutti gli stream è CAMERA3_STREAM_ROTATION_0.
int stream_type |
Utilizzo di uint32_t |
I flag di utilizzo di gralloc per questo stream, come richiesto dall'HAL. I flag di utilizzo sono definiti in gralloc.h (GRALLOC_USAGE_*), o nelle intestazioni specifiche del dispositivo.
Per gli stream di output, si tratta dei flag di utilizzo del produttore dell'HAL. Per gli stream di input, si tratta degli indicatori di utilizzo dei consumatori dell'HAL. I flag di utilizzo del produttore e del consumatore verranno combinati e poi passati al modulo HAL gralloc della piattaforma per l'allocazione dei buffer gralloc per ogni stream.
Informazioni sulla versione:
== CAMERA_DEVICE_API_VERSION_3_0:
Nessun valore iniziale garantito se passato tramite configure_streams(). HAL potrebbe non utilizzare questo campo come input e deve sovrascriverlo con i relativi flag di utilizzo.
>= CAMERA_DEVICE_API_VERSION_3_1:
Per stream_type OUTPUT e BIDIRECTIONAL, quando viene passato tramite configure_streams(), il valore iniziale è costituito dai flag di utilizzo del consumatore. L'HAL potrebbe utilizzare questi flag consumer per decidere la configurazione dello stream. Per stream_type INPUT, quando viene passato tramite configure_streams(), il valore iniziale è 0. Per tutti gli stream passati tramite configure_streams(), l'HAL deve sovrascrivere questo campo con i relativi flag di utilizzo.
uint32_t width |
La documentazione di questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ camera3.h