Camera3_stream_buffer Yapı Referansı
#include < camera3.h >
Veri alanları | |
kamera3_stream_t * | aktarım |
buffer_handle_t * | tampon |
int | durum |
int | edinme_fence |
int | yayın_fence |
Detaylı Açıklama
kamera3_stream_buffer_t:
Camera3 akışından tek bir arabellek. Ana akışına yönelik bir tanıtıcı, gralloc arabelleğinin kendisine yönelik bir tanıtıcı ve senkronizasyon çitleri içerir
Tampon, giriş için mi yoksa çıkış için mi kullanılacağını belirtmez; bu, ana akış türüne ve arabelleğin HAL cihazına nasıl aktarıldığına göre belirlenir.
Saha Dokümantasyonu
int gain_fence |
Bu arabellek için edinme senkronizasyon çiti. HAL, bu ara bellekten okumaya veya ara belleğe yazmaya çalışmadan önce bu çit fd'sinde beklemelidir.
Çerçeve, bu arabellek için beklemenin gerekli olmadığını belirtmek üzere -1'e ayarlanabilir.
HAL, proses_capture_result() ile çerçeveye bir çıktı arabelleği döndürdüğünde, gain_fence -1 olarak ayarlanmalıdır. HAL, arabellek doldurma sırasındaki bir hata nedeniyle edinme_fence'de hiçbir zaman beklemezse, proses_capture_result() çağrılırken HAL'nin, arabelleğin serbest bırakma_fence'ini çerçeve tarafından kendisine iletilen edinme_fence'i olacak şekilde ayarlaması gerekir. Bu, çerçevenin arabelleği yeniden kullanmadan önce çitin üzerinde beklemesine olanak tanır.
Giriş arabellekleri için HAL, proses_capture_request() çağrısı sırasında gain_fence alanını değiştirmemelidir.
>= CAMERA_DEVICE_API_VERSION_3_2:
HAL, proses_capture_result() ile çerçeveye bir giriş arabelleği döndürdüğünde, gain_fence -1 olarak ayarlanmalıdır. HAL, bir hata nedeniyle giriş arabelleği alma çitini hiçbir zaman beklemezse, senkronizasyon çitleri, çıkış arabellekleri için işlenme şekline benzer şekilde ele alınmalıdır.
int yayın_fence |
Bu arabellek için sürüm senkronizasyon çiti. HAL, tamponları çerçeveye döndürürken bu çiti ayarlamalı veya bu arabellek için beklemenin gerekli olmadığını belirtmek için -1 yazmalıdır.
Çıkış arabellekleri için çitlerin, proses_capture_result()'a iletilen çıktı_buffers dizisinde ayarlanması gerekir.
<= CAMERA_DEVICE_API_VERSION_3_1:
Giriş arabelleği için serbest bırakma sınırının proses_capture_request() çağrısı tarafından ayarlanması gerekir.
>= CAMERA_DEVICE_API_VERSION_3_2:
Giriş arabelleği için çitlerin, proses_capture_result()'a iletilen input_buffer'da ayarlanması gerekir.
Bu arabellek için yayın_fence sinyali verildikten sonra, sahiplik tamamen çerçeveye geri aktarıldığı için HAL, bu arabelleğe erişim için herhangi bir girişimde bulunmamalıdır.
-1 sınırı belirtildiyse bu arabelleğin sahipliği, proses_capture_result çağrısı üzerine hemen geri aktarılır.
dahili durum |
Arabelleğin mevcut durumu, Camera3_buffer_status_t değerlerinden biri. Çerçeve, hata durumundaki arabellekleri HAL'ye iletmeyecektir. Bir arabelleğin HAL tarafından doldurulamaması durumunda, proses_capture_result() ile çerçeveye döndürüldüğünde durumunun CAMERA3_BUFFER_STATUS_ERROR olarak ayarlanması gerekir.
kamera3_stream_t * akışı |
Bu yapıya ilişkin belgeler aşağıdaki dosyadan oluşturulmuştur:
- donanım/libdonanım/include/donanım/ kamera3.h