Camera3_stream_buffer Riferimento alla struttura
#include < camera3.h >
Campi dati | |
camera3_stream_t * | flusso |
buffer_handle_t * | respingente |
int | stato |
int | acquisire_recinto |
int | release_fence |
Descrizione dettagliata
camera3_stream_buffer_t:
Un singolo buffer da un flusso camera3. Include un handle per il suo flusso genitore, l'handle per il buffer gralloc stesso e le barriere di sincronizzazione
Il buffer non specifica se deve essere utilizzato per l'input o l'output; che è determinato dal tipo di flusso principale e dal modo in cui il buffer viene passato al dispositivo HAL.
Documentazione sul campo
int acquisisci_recinto |
Il recinto di sincronizzazione di acquisizione per questo buffer. L'HAL deve attendere su questo recinto fd prima di tentare di leggere o scrivere su questo buffer.
Il quadro 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 si chiama process_capture_result() l'HAL deve impostare release_fence del buffer in modo che sia l'acquisition_fence passatogli dal framework. Ciò consentirà al framework di attendere nel recinto 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 che il buffer di input acquisisca il recinto a causa di un errore, i recinti di sincronizzazione dovrebbero essere gestiti in modo simile al modo in cui vengono gestiti per i buffer di output.
int release_fence |
Il limite di sincronizzazione del rilascio per questo buffer. L'HAL deve impostare questa recinzione quando restituisce i buffer al framework o scrivere -1 per indicare che non è richiesta alcuna attesa per questo buffer.
Per i buffer di output, 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, il limite di rilascio deve essere impostato dalla chiamata process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Per il buffer di input, i recinti devono essere impostati in input_buffer passato a process_capture_result().
Dopo aver segnalato release_fence per questo buffer, l'HAL non dovrebbe effettuare ulteriori tentativi di accesso a questo buffer poiché la proprietà è stata completamente trasferita nuovamente al framework.
Se è stata specificata una recinzione pari a -1, la proprietà di questo buffer viene ritrasferita immediatamente alla chiamata di process_capture_result.
stato intero |
Stato corrente del buffer, uno dei valori camera3_buffer_status_t. Il framework non passerà i buffer all'HAL che si trovano in uno stato di errore. Nel caso in cui un buffer non possa essere riempito dall'HAL, il suo stato deve essere impostato su CAMERA3_BUFFER_STATUS_ERROR quando restituito al framework con process_capture_result().
camera3_stream_t *flusso |
La documentazione per questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ camera3.h