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.
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.
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.
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().
camera3_stream_t * stream |
La documentazione di questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ camera3.h