camera3_stream_buffer Struct Referansı

camera3_stream_buffer Struct Referansı

#include < camera3.h >

Veri alanları

camera3_stream_t *Akış
buffer_handle_t *tampon
intstatü
intacquire_fence
intrelease_fence

Detaylı Açıklama

camera3_stream_buffer_t:

Bir camera3 akışından tek bir arabellek. Üst akışına bir tutamaç, gralloc arabelleğinin kendisine tutamaç ve senkronizasyon çitleri içerir.

Tampon, girdi veya çıktı için kullanılıp kullanılmayacağını belirtmez; bu, ana akım türüne ve arabelleğin HAL cihazına nasıl aktarıldığına göre belirlenir.

Camera3.h dosyasının 1755 satırındaki tanım .

Saha Belgeleri

int acquire_fence

Bu arabellek için eşzamanlı çit edin. Bu arabellekten okumaya veya bu arabelleğe yazmaya başlamadan önce HAL bu çit fd'de beklemelidir.

Çerçeve, bu tampon için beklemeye gerek olmadığını belirtmek için -1 olarak ayarlanabilir.

HAL, process_capture_result () ile çerçeveye bir çıktı tamponu döndürdüğünde, acquire_fence -1 olarak ayarlanmalıdır. Eğer HAL, bir arabelleği doldururken bir hata nedeniyle accire_fence üzerinde hiç beklemiyorsa, process_capture_result () çağrılırken, HAL, ara belleğin release_fence'ını çerçeve tarafından kendisine iletilen acquire_fence olarak ayarlamalıdır. Bu, çerçevenin arabelleği yeniden kullanmadan önce çitin üzerinde beklemesine izin verecektir.

Giriş arabellekleri için, process_capture_request () çağrısı sırasında HAL, acquire_fence alanını değiştirmemelidir.

> = CAMERA_DEVICE_API_VERSION_3_2:

HAL, process_capture_result () ile çerçeveye bir girdi tamponu döndürdüğünde, acquire_fence -1 olarak ayarlanmalıdır. HAL, bir hata nedeniyle giriş arabelleği alma çitini hiçbir zaman beklemiyorsa, eşitleme çitleri, çıktı arabellekleri için işlendikleri şekilde benzer şekilde ele alınmalıdır.

Camera3.h dosyasının 1800 satırındaki tanım .

buffer_handle_t * arabellek

Arabelleğe yerel tutamaç

Camera3.h dosyasının 1764 satırındaki tanım .

int release_fence

Bu arabellek için yayın senkronizasyon çitidir. HAL, arabellekleri çerçeveye döndürürken bu perdeyi ayarlamalıdır veya bu arabellek için beklemeye gerek olmadığını belirtmek için -1 yazmalıdır.

Çıktı arabellekleri için sınırlar process_capture_result () 'a iletilen output_buffers dizisinde ayarlanmalıdır.

<= CAMERA_DEVICE_API_VERSION_3_1:

Giriş arabelleği için, serbest bırakma çitinin process_capture_request () çağrısı tarafından ayarlanması gerekir.

> = CAMERA_DEVICE_API_VERSION_3_2:

Giriş tamponu için, sınırlar process_capture_result () 'a iletilen input_buffer'da ayarlanmalıdır.

Bu arabellek için release_fence sinyalini verdikten sonra, HAL, sahiplik tamamen çerçeveye geri aktarıldığından, bu arabelleğe erişmek için herhangi bir girişimde bulunmamalıdır.

-1 çit belirtilmişse, bu tamponun mülkiyeti, process_capture_result çağrısı üzerine hemen geri aktarılır.

Camera3.h dosyasının 1827 satırındaki tanım .

int durumu

Tamponun mevcut durumu, camera3_buffer_status_t değerlerinden biri. Çerçeve, hata durumunda olan arabellekleri HAL'ye iletmez. Bir arabelleğin HAL tarafından doldurulamaması durumunda, process_capture_result () ile çerçeveye döndürüldüğünde durumunun CAMERA3_BUFFER_STATUS_ERROR olarak ayarlanmış olması gerekir.

Camera3.h dosyasının 1773 satırındaki tanım .

camera3_stream_t * akışı

Bu arabelleğin ilişkili olduğu akışın tanıtıcısı

Camera3.h dosyasının 1759 satırındaki tanım .


Bu yapının belgeleri aşağıdaki dosyadan oluşturulmuştur:
  • donanım / libhardware / include / hardware / camera3.h