camera3_stream_buffer Yapı Referansı
#include <
camera3.h
>
Veri Alanları |
|
camera3_stream_t * | stream |
buffer_handle_t * | arabelleğe alma |
int | durum |
int | acquire_fence |
int | release_fence |
Ayrıntılı Açıklama
camera3_stream_buffer_t:
camera3 akışından tek bir arabellek. Üst akışının bir tutamacını, gralloc arabelleğinin kendisinin tutamacını ve senkronizasyon çitlerini içerir.
Tamponun giriş veya çıkış için kullanılıp kullanılmayacağı belirtilmez. Bu, üst yayın türüne ve tamponun HAL cihazına nasıl aktarıldığına göre belirlenir.
Alan Belgeleri
int acquire_fence |
Bu arabellek için senkronizasyon çiti edinme. HAL, bu arabellekten okumaya veya bu arabelleğe yazmaya başlamadan önce bu çit fd'sini beklemelidir.
Çerçeve, bu tampon için bekleme gerekmediğini belirtmek üzere -1 olarak ayarlanabilir.
HAL, process_capture_result() ile çerçeveye bir çıkış arabelleği döndürdüğünde acquire_fence -1 olarak ayarlanmalıdır. HAL, bir arabelleği doldurmayla ilgili bir hata nedeniyle acquire_fence'te hiç beklemezse process_capture_result() çağrılırken HAL, arabelleğin release_fence değerini çerçeve tarafından kendisine iletilen acquire_fence olarak ayarlamalıdır. Bu sayede çerçeve, arabelleği yeniden kullanmadan önce bekleyebilir.
Giriş arabelleklerinde HAL, process_capture_request() çağrısı sırasında acquire_fence alanını değiştirmemelidir.
>= CAMERA_DEVICE_API_VERSION_3_2:
HAL, process_capture_result() ile çerçeveye bir giriş arabelleği döndürdüğünde acquire_fence -1 olarak ayarlanmalıdır. HAL, bir hata nedeniyle giriş arabelleğinin edinme çitinin önünde hiç beklemezse senkronizasyon çitleri, çıkış arabelleklerinde işlendikleri şekilde işlenmelidir.
int release_fence |
Bu arabelleğin sürüm senkronizasyon çiti. HAL, çerçeveye arabellekler döndürürken bu çiti ayarlamalı veya bu arabellek için bekleme gerekmediğini belirtmek üzere -1 yazmalıdır.
Çıkış tamponları için çitler, process_capture_result() işlevine iletilen output_buffers dizisinde ayarlanmalıdır.
<= CAMERA_DEVICE_API_VERSION_3_1:
Giriş arabelleği için serbest bırakma çiti, process_capture_request() çağrısı tarafından ayarlanmalıdır.
>= CAMERA_DEVICE_API_VERSION_3_2:
Giriş arabelleği için çitler, process_capture_result() işlevine iletilen input_buffer içinde ayarlanmalıdır.
Mülkiyet tamamen çerçeveye geri aktarıldığı için HAL, bu arabellek için release_fence sinyalini gönderdikten sonra bu arabelleğe erişmek için başka bir girişimde bulunmamalıdır.
-1 değerinde bir çit belirtilmişse bu arabelleğin sahipliği, process_capture_result çağrısı yapıldıktan hemen sonra geri aktarılır.
int durum |
Arabelleğin mevcut durumu (camera3_buffer_status_t değerlerinden biri). Çerçeve, hata durumundaki arabellekleri HAL'e iletmez. Bir arabellek HAL tarafından doldurulamazsa process_capture_result() ile çerçeveye döndürüldüğünde durumu CAMERA3_BUFFER_STATUS_ERROR olarak ayarlanmalıdır.
camera3_stream_t * stream |
Bu yapının dokümanları aşağıdaki dosyadan oluşturulmuştur:
- hardware/libhardware/include/hardware/ camera3.h