Riferimento alla struttura camera3_stream_buffer

Riferimento alla struttura camera3_stream_buffer

#include < camera3.h >

Campi dati

camera3_stream_t stream
 
buffer_handle_t *  buffer
 
int  status
 
int  acquire_fence
 
int  release_fence
 

Descrizione dettagliata

camera3_stream_buffer_t:

Un singolo buffer da uno stream di una videocamera3. Include un handle per lo stream principale, l'handle per il buffer gralloc stesso e le recinti di sincronizzazione

Il buffer non specifica se deve essere utilizzato per l'input o l'output; questo viene determinato dal tipo di stream principale e dal modo in cui il buffer viene passato al dispositivo HAL.

Definizione nella riga 1755 del file camera3.h .

Documentazione dei campi

int acquire_fence

La recinzione di sincronizzazione di acquisizione per questo buffer. L'HAL deve attendere su questo fd di recinzione prima di tentare di leggere o scrivere in questo buffer.

Il framework può essere impostato su -1 per indicare che non è necessaria alcuna attesa per questo buffer.

Quando l'HAL restituisce un buffer di output al framework con process_capture_result(), acquire_fence deve essere impostato su -1. Se l'HAL non attende mai acquire_fence a causa di un errore nel riempimento di un buffer, quando chiama process_capture_result() l'HAL deve impostare release_fence del buffer su acquire_fence passato dal framework. In questo modo, il framework attenderà in stato di incertezza prima di riutilizzare il buffer.

Per i buffer di input, l'HAL non deve modificare il campo acquire_fence durante la chiamata process_capture_request().

>= CAMERA_DEVICE_API_VERSION_3_2:

Quando l'HAL restituisce un buffer di input al framework con process_capture_result(), acquire_fence deve essere impostato su -1. Se l'HAL non attende mai la recinzione di acquisizione del buffer di input a causa di un errore, le recinzioni di sincronizzazione devono essere gestite in modo simile a come vengono gestite per i buffer di output.

Definizione nella riga 1800 del file camera3.h .

buffer_handle_t* buffer

L'handle nativo del buffer

Definizione nella riga 1764 del file camera3.h .

int release_fence

La recinzione di sincronizzazione della release per questo buffer. L'HAL deve impostare questa barriera quando restituisce i buffer al framework oppure scrivere -1 per indicare che non è richiesta alcuna attesa per questo buffer.

Per gli output buffer, i recinti devono essere impostati nell'array output_buffers passato a process_capture_result().

<= CAMERA_DEVICE_API_VERSION_3_1:

Per il buffer di input, la recinzione di rilascio deve essere impostata dalla chiamata process_capture_request().

>= CAMERA_DEVICE_API_VERSION_3_2:

Per il buffer di input, le recinti devono essere impostati in input_buffer passato a process_capture_result().

Dopo aver segnalato release_fence per questo buffer, l'HAL non deve fare altri tentativi di accedere a questo buffer perché la proprietà è stata completamente trasferita di nuovo al framework.

Se è stato specificato un recinto di -1, la proprietà di questo buffer viene trasferita di nuovo immediatamente alla chiamata di process_capture_result.

Definizione nella riga 1827 del file camera3.h .

int status

Stato corrente del buffer, uno dei valori camera3_buffer_status_t. Il framework non passerà all'HAL i buffer in stato di errore. Se un buffer non può essere riempito dall'HAL, lo stato deve essere impostato su CAMERA3_BUFFER_STATUS_ERROR quando viene restituito al framework con process_capture_result().

Definizione nella riga 1773 del file camera3.h .

L'handle dello stream a cui è associato questo buffer

Definizione nella riga 1759 del file camera3.h .


La documentazione di questa struttura è stata generata dal seguente file: