Riferimento alla struttura camera2_device_ops

Riferimento alla struttura camera2_device_ops

#include < camera2.h >

Campi dati

int(*  set_request_queue_src_ops )(const struct camera2_device *, const camera2_request_queue_src_ops_t *request_src_ops)
 
int(*  notify_request_queue_not_empty )(const struct camera2_device *)
 
int(*  set_frame_queue_dst_ops )(const struct camera2_device *, const camera2_frame_queue_dst_ops_t *frame_dst_ops)
 
int(*  get_in_progress_count )(const struct camera2_device *)
 
int(*  flush_captures_in_progress )(const struct camera2_device *)
 
int(*  construct_default_request )(const struct camera2_device *, int request_template, camera_metadata_t **request)
 
int(*  allocate_stream )(const struct camera2_device *, uint32_t width, uint32_t height, int format, const camera2_stream_ops_t *stream_ops, uint32_t *stream_id, uint32_t *format_actual, uint32_t *usage, uint32_t *max_buffers)
 
int(*  register_stream_buffers )(const struct camera2_device *, uint32_t stream_id, int num_buffers, buffer_handle_t *buffers)
 
int(*  release_stream )(const struct camera2_device *, uint32_t stream_id)
 
int(*  allocate_reprocess_stream )(const struct camera2_device *, uint32_t width, uint32_t height, uint32_t format, const camera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers)
 
int(*  allocate_reprocess_stream_from_stream )(const struct camera2_device *, uint32_t output_stream_id, const camera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id)
 
int(*  release_reprocess_stream )(const struct camera2_device *, uint32_t stream_id)
 
int(*  trigger_action )(const struct camera2_device *, uint32_t trigger_id, int32_t ext1, int32_t ext2)
 
int(*  set_notify_callback )(const struct camera2_device *, camera2_notify_callback notify_cb, void *user)
 
int(*  get_metadata_vendor_tag_ops )(const struct camera2_device *, vendor_tag_query_ops_t **ops)
 
int(*  dump )(const struct camera2_device *, int fd)
 
int(*  get_instance_metadata )(const struct camera2_device *, camera_metadata **instance_metadata)
 

Descrizione dettagliata

Definizione alla riga 527 del file camera2.h .

Documentazione dei campi

int(* allocate_reprocess_stream)(const struct camera2_device *, uint32_t width, uint32_t height, uint32_t format, const camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers)

allocate_reprocess_stream:

Alloca un nuovo stream di input da utilizzare, definito dalla larghezza, dall'altezza e dal formato dei pixel del buffer di output. In caso di esito positivo, restituisce l'ID del nuovo stream, i flag di utilizzo di gralloc e il numero di buffer acquisibili contemporaneamente richiesto. Condizioni di errore:

  • Richiesta di una combinazione di larghezza/altezza/formato non indicata come supportata dalle caratteristiche statiche del sensore
  • È stato richiesto di configurare troppi stream di elaborazione secondaria contemporaneamente.

Parametri di input:

  • width, height, format: specifica per i buffer da inviare tramite questo stream. Il formato deve essere un valore dell'elenco HAL_PIXEL_FORMAT_*.
  • reprocess_stream_ops: una struttura di puntatori di funzioni per l'acquisizione e il rilascio dei buffer per questo stream. Lo stream sottostante verrà configurato in base alle uscite usage e max_buffers.

Parametri di output:

  • stream_id: un numero intero non firmato che identifica questo stream. Questo valore viene utilizzato nelle richieste in entrata per identificare lo stream e per rilasciarlo. Questi ID sono numerati separatamente dagli ID stream di input.
  • consumer_usage: la maschera di utilizzo gralloc necessaria al dispositivo HAL per utilizzare il tipo di dati richiesto. Viene utilizzato per allocare nuovi buffer gralloc per la coda del buffer dello stream.
  • max_buffers: il numero massimo di buffer che il dispositivo HAL potrebbe dover acquisire contemporaneamente. Il dispositivo non può avere più buffer acquisiti contemporaneamente rispetto a questo valore.

Definizione nella riga 708 del file camera2.h .

int(* allocate_reprocess_stream_from_stream)(const struct camera2_device *, uint32_t output_stream_id, const camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id)

allocate_reprocess_stream_from_stream:

Alloca un nuovo stream di input da utilizzare, che utilizzerà i buffer allocati per uno stream di output esistente. In altre parole, dopo che l'HAL ha inserito un buffer nello stream di output, potrebbe vedere lo stesso buffer che gli viene consegnato da questo stream di elaborazione di nuovo input. Dopo che l'HAL restituisce il buffer allo stream di elaborazione, questo viene restituito alla coda di output per il riutilizzo.

Condizioni di errore:

  • Utilizzo di uno stream di output di dimensioni/formato non idonei per la base dello stream di elaborazione.
  • Tentativo di allocare troppi stream di elaborazione ripetuta contemporaneamente.

Parametri di input:

  • output_stream_id: l'ID di uno stream di output esistente con dimensioni e formato adatti per il ricalcolo.
  • reprocess_stream_ops: una struttura di puntatori di funzioni per l'acquisizione e il rilascio dei buffer per questo stream. Lo stream sottostante utilizzerà gli stessi handle dei buffer grafici dello stream di output.

Parametri di output:

  • stream_id: un numero intero non firmato che identifica questo stream. Questo valore viene utilizzato nelle richieste in entrata per identificare lo stream e per rilasciarlo. Questi ID sono numerati separatamente dagli ID stream di input.

Il client HAL deve sempre rilasciare lo stream di elaborazione prima di rilasciare lo stream di output su cui si basa.

Definizione nella riga 754 del file camera2.h .

int(* allocate_stream)(const struct camera2_device *,uint32_t width, uint32_t height, int format, const camera2_stream_ops_t *stream_ops,uint32_t *stream_id, uint32_t *format_actual,uint32_t *usage, uint32_t *max_buffers)

allocate_stream:

Alloca un nuovo stream di output da utilizzare, definito dalla larghezza, dall'altezza, dalla destinazione e, eventualmente, dal formato dei pixel del buffer di output. In caso di esito positivo, restituisce l'ID del nuovo stream, i flag di utilizzo di gralloc, il numero minimo di buffer della coda e, eventualmente, il formato dei pixel. Condizioni di errore:

  • Richiesta di una combinazione di larghezza/altezza/formato non indicata come supportata dalle caratteristiche statiche del sensore
  • Richiesta di troppi stream di un determinato tipo di formato (ad esempio 2 stream RAW Bayer).

Parametri di input:

  • width, height, format: specifica per i buffer da inviare tramite questo stream. Il formato è un valore dell'elenco HAL_PIXEL_FORMAT_*. Se viene utilizzato HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, il modulo gralloc della piattaforma seleziona un formato in base ai flag di utilizzo forniti dall'HAL della fotocamera e dal consumatore dello stream. L'HAL della videocamera deve ispezionare i buffer che gli vengono passati nella chiamata register_stream_buffers per ottenere il formato specifico dell'implementazione, se necessario.
  • stream_ops: una struttura di puntatori di funzioni per ottenere e mettere in coda i buffer per questo stream. Lo stream sottostante verrà configurato in base alle uscite usage e max_buffers. I metodi in questa struttura non possono essere chiamati fino al ritorno di allocate_stream.

Parametri di output:

  • stream_id: un numero intero non firmato che identifica questo stream. Questo valore viene utilizzato nelle richieste in entrata per identificare lo stream e per rilasciarlo.
  • usage: la maschera di utilizzo gralloc necessaria al dispositivo HAL per produrre il tipo di dati richiesto. Viene utilizzato per allocare nuovi buffer gralloc per la coda del buffer dello stream.
  • max_buffers: il numero massimo di buffer che il dispositivo HAL potrebbe dover dequeue contemporaneamente. Il dispositivo potrebbe non rimuovere contemporaneamente più buffer di questo valore.

Definizione alla riga 632 del file camera2.h .

int(* construct_default_request)(const struct camera2_device *, int request_template, camera_metadata_t **request)

Crea una richiesta predefinita compilata per i casi d'uso standard della videocamera.

Il dispositivo deve restituire una richiesta completa configurata per soddisfare il caso d'uso richiesto, che deve essere uno degli enum CAMERA2_TEMPLATE_* Tutti i campi di controllo delle richieste devono essere inclusi, ad eccezione di android.request.outputStreams.

Il buffer dei metadati restituito deve essere allocato con allocate_camera_metadata. Il framework acquisisce la proprietà del buffer.

Definizione nella riga 580 del file camera2.h .

int(* dump)(const struct camera2_device *, int fd)

Dump dello stato dell'hardware della videocamera

Definizione nella riga 801 del file camera2.h .

int(* flush_captures_in_progress)(const struct camera2_device *)

Svuotare tutte le acquisizioni in corso. Sono incluse tutte le richieste rimosse dalla coda (regolari o di elaborazione di nuovo) che non hanno ancora inserito output in uno stream o nella coda di frame. Le acquisizioni parzialmente completate devono essere completate normalmente. Non è possibile rimuovere nuove richieste dalla coda delle richieste fino al completamento dello svuotamento.

Definizione nella riga 567 del file camera2.h .

int(* get_in_progress_count)(const struct camera2_device *)

Numero di richieste della fotocamera in fase di elaborazione dal dispositivo al momento (acquisizione/rielaborazioni di cui è stata annullata la richiesta, ma che non sono ancora state inserite nelle pipeline di output). Nessun stream può essere rilasciato dal framework finché il conteggio in corso non è pari a 0.

Definizione nella riga 558 del file camera2.h .

int(* get_instance_metadata)(const struct camera2_device *, camera_metadata **instance_metadata)

Recupera i metadati specifici dell'istanza del dispositivo. Questi metadati devono essere costanti per una singola istanza del dispositivo della videocamera, ma possono essere diversi tra le chiamate open(). Il puntatore camera_metadata restituito deve essere valido fino a quando non viene chiamato il metodo close() del dispositivo.

Informazioni sulla versione:

CAMERA_DEVICE_API_VERSION_2_0:

Non disponibile. Il framework potrebbe non accedere a questo puntatore di funzione.

CAMERA_DEVICE_API_VERSION_2_1:

Valida. Può essere chiamato dal framework.

Definizione nella riga 820 del file camera2.h .

int(* get_metadata_vendor_tag_ops)(const struct camera2_device *, vendor_tag_query_ops_t **ops)

Metodi Get per eseguire query sulle informazioni dei tag dei metadati delle estensioni del fornitore. Può impostare ops su NULL se non sono definiti tag di estensioni del fornitore.

Definizione nella riga 795 del file camera2.h .

int(* notify_request_queue_not_empty)(const struct camera2_device *)

Comunica al dispositivo che la coda delle richieste non è più vuota. Deve essere chiamato solo quando al primo buffer viene aggiunta una nuova coda o dopo che l'origine ha restituito NULL in risposta a una chiamata dequeue.

Definizione nella riga 544 del file camera2.h .

int(* register_stream_buffers)(const struct camera2_device *, uint32_t stream_id, int num_buffers, buffer_handle_t *buffers)

Registra i buffer per un determinato stream. Viene chiamato dopo una chiamata allocate_stream andata a buon fine e prima che la prima richiesta che fa riferimento allo stream venga messa in coda. Lo scopo di questo metodo è consentire al dispositivo HAL di mappare o preparare in altro modo i buffer per un uso successivo. È garantito che num_buffers sia almeno pari a max_buffers (da allocate_stream), ma può essere maggiore. I buffer saranno già bloccati per l'utilizzo. Al termine della chiamata, tutti i buffer devono essere pronti per essere restituiti alla coda. Se il formato dello stream è impostato su HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, l'HAL della fotocamera deve ispezionare i buffer passati per determinare eventuali informazioni sul formato dei pixel private della piattaforma.

Definizione nella riga 657 del file camera2.h .

int(* release_reprocess_stream)(const struct camera2_device *, uint32_t stream_id)

Rilasciare uno stream di elaborazione. Restituisce un errore se viene chiamato quando get_in_progress_count è diverso da zero o se l'ID stream non è valido.

Definizione alla riga 765 del file camera2.h .

int(* release_stream)(const struct camera2_device *, uint32_t stream_id)

Pubblicare uno stream. Restituisce un errore se viene chiamato quando get_in_progress_count è diverso da zero o se l'ID stream non è valido.

Definizione nella riga 667 del file camera2.h .

int(* set_frame_queue_dst_ops)(const struct camera2_device *, const camera2_frame_queue_dst_ops_t *frame_dst_ops)

Passa i metodi dell'interfaccia della coda di fotogrammi di output

Definizione nella riga 549 del file camera2.h .

int(* set_notify_callback)(const struct camera2_device *, camera2_notify_callback notify_cb, void *user)

Configurazione del callback di notifica

Definizione nella riga 787 del file camera2.h .

int(* set_request_queue_src_ops)(const struct camera2_device *, const camera2_request_queue_src_ops_t *request_src_ops)

Passa i metodi dell'interfaccia della coda di richieste di input.

Definizione nella riga 536 del file camera2.h .

int(* trigger_action)(const struct camera2_device *, uint32_t trigger_id, int32_t ext1, int32_t ext2)

Attivare l'attività asincrona. Viene utilizzato per attivare comportamenti speciali delle routine 3A della videocamera quando sono in uso. Consulta la documentazione di CAMERA2_TRIGGER_* sopra per i dettagli degli ID attivatore e dei relativi argomenti.

Definizione nella riga 779 del file camera2.h .


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