riferimento alla struttura camera3_stream

riferimento alla struttura camera3_stream

#include < camera3.h >

Campi dati

int stream_type
uint32_t larghezza
uint32_t altezza
int formato
uint32_t utilizzo
uint32_t max_buffers
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 in base alla risoluzione e al formato del buffer e inoltre dall'HAL con i flag di utilizzo di gralloc e il conteggio massimo del buffer in volo.

Le strutture dei flussi sono di proprietà del framework, ma i puntatori a una camera3_stream passati all'HAL da configure_streams() sono validi fino alla fine della prima successiva chiamata configure_streams() che non include quella 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 viene passato a configure_streams(). L'HAL può modificare solo i parametri controllati dall'HAL durante una chiamata configure_streams(), ad eccezione del contenuto del puntatore privato.

Se una chiamata 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 fotocamera. In DEVICE_API_VERSION_3_1, questo è stato modificato per condividere i flag di utilizzo del consumatore sui flussi in cui la telecamera è un produttore (tipi di flusso OUTPUT e BIDIRECTIONAL). Vedi 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 del 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 sull'immagine o sulla profondità. Vedi system/core/include/system/graphics.h per i dettagli sui formati e sui valori dataSpace validi per ciascun formato.

Informazioni sulla versione:

<DISPOSITIVO_CAMERA_API_VERSION_3_3:

Non definito e non dovrebbe essere accessibile. si dovrebbe presupporre che dataSpace sia HAL_DATASPACE_UNKNOWN e lo spazio colore appropriato, ecc., dovrebbe essere determinato dai flag di utilizzo e dal formato.

= TELECAMERA_DEVICE_API_VERSION_3_3:

Sempre impostato dal servizio fotocamera. L'HAL deve utilizzare questo dataSpace per configurare il flusso nello 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 fotocamera. L'HAL deve utilizzare questo dataSpace per configurare il flusso nello 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 intero

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

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

<= CAMERA_DEVICE_API_VERSION_3_1:

Il dispositivo HAL della fotocamera deve ispezionare i buffer che gli vengono consegnati nella successiva chiamata a 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 di cui potrebbe essere necessario rimuovere la coda contemporaneamente dal dispositivo HAL. Il dispositivo HAL potrebbe non avere più buffer in transito da questo flusso rispetto a questo valore.

Definizione alla riga 1608 del file camera3.h .

vuoto*priv

Un handle per le informazioni private HAL per il flusso. Non sarà controllato dal codice quadro.

Definizione alla riga 1614 del file camera3.h .

vuoto* riservato[7]

Definizione alla riga 1677 del file camera3.h .

rotazione intera

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 fotocamera fornirà buffer di dimensioni 720x1280 e HAL dovrebbe acquisire un'immagine di 1280x720 e ruotare l'immagine di 90 gradi in senso antiorario. Il campo di rotazione non è operativo quando viene immesso il tipo di flusso. L'HAL della telecamera deve ignorare il campo di rotazione per un flusso di input.

<= CAMERA_DEVICE_API_VERSION_3_2:

Non definito e non è possibile accedervi. L'HAL non deve applicare alcuna rotazione alle immagini di output.

>= CAMERA_DEVICE_API_VERSION_3_3:

Sempre impostato dal servizio fotocamera. HAL deve controllare questo campo durante la configurazione del flusso e restituisce -EINVAL se HAL non può eseguire tale rotazione. L'HAL deve sempre supportare CAMERA3_STREAM_ROTATION_0, quindi una chiamata configure_streams() non deve fallire per una 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 tipo_stream

Il tipo di stream, uno dei valori camera3_stream_type_t.

Definizione alla riga 1532 del file camera3.h .

utilizzo uint32_t

I flag di utilizzo di gralloc per questo flusso, come richiesto dall'HAL. I flag di utilizzo sono definiti in gralloc.h (GRALLOC_USAGE_*) o in 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 allocare i buffer gralloc per ciascun flusso.

Informazioni sulla versione:

== CAMERA_DEVICE_API_VERSION_3_0:

Nessun valore iniziale garantito quando passato tramite configure_streams(). L'HAL non può utilizzare questo campo come input e deve sovrascrivere questo campo con i relativi flag di utilizzo.

>= CAMERA_DEVICE_API_VERSION_3_1:

Per stream_type OUTPUT e BIDIRECTIONAL, quando passati tramite configure_streams(), il valore iniziale corrisponde ai flag di utilizzo del consumatore. L'HAL può utilizzare questi flag consumer per decidere la configurazione del flusso. Per stream_type INPUT, quando passato tramite configure_streams(), il valore iniziale è 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