camera3_stream_buffer Struct Referansı
#include < camera3.h >
Veri alanları | |
camera3_stream_t * | Akış |
buffer_handle_t * | tampon |
int | statü |
int | acquire_fence |
int | release_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.
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.
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.
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_stream_t * akışı |
Bu yapının belgeleri aşağıdaki dosyadan oluşturulmuştur:
- donanım / libhardware / include / hardware / camera3.h