Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

camera3_stream Riferimento alla struttura

camera3_stream Riferimento alla struttura

#include < camera3.h >

Campi dati

int tipo_flusso
uint32_t larghezza
uint32_t altezza
int formato
uint32_t utilizzo
uint32_t max_buffer
vuoto * privato
android_dataspace_t spazio_dati
int rotazione
vuoto * riservato [7]

Descrizione dettagliata

camera3_stream_t:

Un handle per un singolo flusso di input o output della telecamera. Un flusso è definito dal framework dalla risoluzione e dal formato del buffer e inoltre dall'HAL con i flag di utilizzo gralloc e il conteggio massimo del buffer in volo.

Le strutture del flusso sono di proprietà del framework, ma i puntatori a un camera3_stream passato nell'HAL da configure_streams() sono validi fino alla fine della prima chiamata successiva a configure_streams() che non include quel camera3_stream come argomento, o fino alla fine di la chiamata close().

Tutti i membri controllati dal framework camera3_stream sono immutabili una volta che camera3_stream è passato a configure_streams(). L'HAL può modificare i parametri controllati dall'HAL solo durante una chiamata configure_streams(), ad eccezione del contenuto del puntatore privato.

Se una chiamata a configure_streams() restituisce un errore non fatale, tutti i flussi attivi rimangono validi come se configure_streams() non fosse stato chiamato.

L'endpoint del flusso non è visibile al dispositivo HAL della telecamera. In DEVICE_API_VERSION_3_1, questo è stato modificato per condividere i flag di utilizzo dei consumatori sugli stream in cui la telecamera è un produttore (tipi di stream OUTPUT e BIDIREZIONALE) vedere il campo di utilizzo di seguito.

Definizione alla riga 1523 del file camera3.h .

Documentazione sul campo

android_dataspace_t data_space

Un campo che descrive il contenuto del buffer. Il formato e le dimensioni del buffer definiscono il layout della memoria e la struttura dei buffer di flusso, mentre dataSpace definisce il significato dei dati all'interno del buffer.

Per la maggior parte dei formati, dataSpace definisce lo spazio colore dei dati dell'immagine. Inoltre, per alcuni formati, dataSpace indica se sono richiesti dati basati su immagini o profondità. Vedere system/core/include/system/graphics.h per i dettagli sui formati e i valori dataSpace validi per ciascun formato.

Informazioni sulla versione:

< CAMERA_DEVICE_API_VERSION_3_3:

Non definito e non dovrebbe essere accessibile. dataSpace dovrebbe essere assunto come HAL_DATASPACE_UNKNOWN e lo spazio colore appropriato, ecc., dovrebbe essere determinato dai flag di utilizzo e dal formato.

= CAMERA_DEVICE_API_VERSION_3_3:

Sempre impostato dal servizio di fotocamera. HAL deve utilizzare questo spazio dati per configurare il flusso sullo spazio colore corretto o per selezionare tra output di colore e profondità, se supportato. I valori dello spazio dati sono le definizioni legacy in graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Sempre impostato dal servizio di fotocamera. HAL deve utilizzare questo spazio dati per configurare il flusso sullo spazio colore corretto o per selezionare tra output di colore e profondità, se supportato. I valori dello spazio dati vengono impostati utilizzando le definizioni dello spazio dati V0 in graphics.h

Definizione alla riga 1648 del file camera3.h .

formato int

Il formato pixel per i buffer in questo flusso. Il formato è un valore dall'elenco HAL_PIXEL_FORMAT_* in system/core/include/system/graphics.h o dalle intestazioni specifiche del dispositivo.

Se viene utilizzato HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, il modulo gralloc della piattaforma selezionerà un formato basato sui flag di utilizzo forniti dal dispositivo della fotocamera e dall'altro endpoint del flusso.

<= CAMERA_DEVICE_API_VERSION_3_1:

Il dispositivo HAL della telecamera deve ispezionare i buffer assegnatigli nella successiva chiamata 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, quindi l'HAL dovrebbe configurare l'ISP e la pipeline del sensore in base esclusivamente alle dimensioni, ai flag di utilizzo e ai formati per i flussi configurati.

Definizione alla riga 1565 del file camera3.h .

uint32_t altezza

L'altezza in pixel dei buffer in questo flusso

Definizione alla riga 1542 del file camera3.h .

uint32_t max_buffers

Il numero massimo di buffer che il dispositivo HAL potrebbe dover essere rimosso dalla coda contemporaneamente. Il dispositivo HAL potrebbe non avere più buffer in transito da questo flusso di questo valore.

Definizione alla riga 1608 del file camera3.h .

vuoto* priv

Un handle per le informazioni private HAL per il flusso. Non verrà controllato dal codice del framework.

Definizione alla riga 1614 del file camera3.h .

nullo* riservato[7]

Definizione alla riga 1677 del file camera3.h .

rotazione int

La rotazione di output richiesta del flusso, uno dei valori camera3_stream_rotation_t. Questo deve essere ispezionato da HAL insieme alla larghezza e all'altezza del flusso. Ad esempio, se la rotazione è di 90 gradi e la larghezza e l'altezza del flusso sono rispettivamente 720 e 1280, il servizio telecamera fornirà buffer di dimensioni 720x1280 e HAL dovrebbe acquisire un'immagine 1280x720 e ruotare l'immagine di 90 gradi in senso antiorario. Il campo di rotazione non è operativo quando viene immesso il tipo di flusso. Camera HAL deve ignorare il campo di rotazione per un flusso di input.

<= CAMERA_DEVICE_API_VERSION_3_2:

Non definito e non accessibile. HAL non deve applicare alcuna rotazione alle immagini di output.

>= CAMERA_DEVICE_API_VERSION_3_3:

Sempre impostato dal servizio di fotocamera. HAL deve esaminare questo campo durante la configurazione del flusso e restituisce -EINVAL se HAL non è in grado di eseguire tale rotazione. HAL deve sempre supportare CAMERA3_STREAM_ROTATION_0, quindi una chiamata configure_streams() non deve fallire per rotazione non supportata se il campo di rotazione di tutti i flussi è CAMERA3_STREAM_ROTATION_0.

Definizione alla riga 1674 del file camera3.h .

int stream_type

Il tipo del flusso, uno dei valori camera3_stream_type_t.

Definizione alla riga 1532 del file camera3.h .

uint32_t utilizzo

I flag di utilizzo gralloc per questo flusso, come richiesto dall'HAL. I flag di utilizzo sono definiti in gralloc.h (GRALLOC_USAGE_*) o nelle intestazioni specifiche del dispositivo.

Per i flussi di output, questi sono i flag di utilizzo del produttore dell'HAL. Per i flussi di input, questi sono i flag di utilizzo del consumatore dell'HAL. I flag di utilizzo del produttore e del consumatore verranno combinati insieme e quindi passati al modulo HAL della piattaforma gralloc per l'allocazione dei buffer gralloc per ogni flusso.

Informazioni sulla versione:

== CAMERA_DEVICE_API_VERSION_3_0:

Nessun valore iniziale garantito se passato tramite configure_streams(). HAL non può utilizzare questo campo come input e deve scrivere su questo campo con i suoi flag di utilizzo.

>= CAMERA_DEVICE_API_VERSION_3_1:

Per stream_type OUTPUT e BIDIRECTIONAL, quando passati tramite configure_streams(), il valore iniziale di questo è i flag di utilizzo del consumatore. L'HAL può utilizzare questi flag consumer per decidere la configurazione del flusso. Per stream_type INPUT, se passato tramite configure_streams(), il valore iniziale di questo è 0. Per tutti i flussi passati tramite configure_streams(), l'HAL deve scrivere su questo campo con i suoi flag di utilizzo.

Definizione alla riga 1601 del file camera3.h .

uint32_t larghezza

La larghezza in pixel dei buffer in questo flusso

Definizione alla riga 1537 del file camera3.h .


La documentazione per questa struttura è stata generata dal seguente file:
  • hardware/libhardware/include/hardware/ camera3.h