camera3_capture_request Yapı Referansı
#include <
camera3.h
>
Veri Alanları |
|
uint32_t | frame_number |
const camera_metadata_t * | ayarlar |
camera3_stream_buffer_t * | input_buffer |
uint32_t | num_output_buffers |
const camera3_stream_buffer_t * | output_buffers |
Ayrıntılı Açıklama
camera3_capture_request_t:
process_capture_request() işlevinde çerçeve tarafından Camera HAL cihazına gönderilen tek bir görüntü yakalama/arabellek yeniden işleme isteği.
İstek, bu yakalama için kullanılacak ayarları ve elde edilen resim verilerinin yazılacağı çıkış arabelleklerinin kümesini içerir. İsteğe bağlı olarak bir giriş arabelleği içerebilir. Bu durumda istek, kamera sensörüyle yeni bir görüntü yakalamak yerine bu giriş arabelleğinin yeniden işlenmesi içindir. Kayıt, frame_number ile tanımlanır.
Yanıt olarak kamera HAL cihazı, process_capture_result() geri çağırma işlevini kullanarak camera3_capture_result yapısını çerçeveye asenkron olarak göndermelidir.
Alan Belgeleri
uint32_t frame_number |
Çerçeve numarası, bu yakalamayı benzersiz şekilde tanımlamak için çerçeve tarafından ayarlanan artan bir tam sayıdır. Sonuç çağrısında döndürülmesi gerekir ve camera3_callback_ops_t.notify() adresine gönderilen asenkron bildirimlerde isteği tanımlamak için de kullanılır.
camera3_stream_buffer_t * input_buffer |
Varsa bu istek için kullanılacak giriş akışı arabelleği.
input_buffer NULL ise istek, görüntüleyiciden yeni bir yakalama içindir. input_buffer geçerliyse istek, input_buffer'da bulunan resmin yeniden işlenmesi içindir.
İkinci durumda, HAL, process_capture_request() işlevi dönmeden önce input_buffer'ın release_fence değerini geçerli bir senkronizasyon çitine veya HAL senkronizasyonu desteklemiyorsa -1 değerine ayarlamalıdır.
HAL'in, giriş arabelleğine erişmeden önce giriş arabelleğinin senkronizasyon çitini alması gerekir.
<= CAMERA_DEVICE_API_VERSION_3_1:
Buradaki tüm giriş arabellekleri, bir isteğe dahil edilmeden önce register_stream_buffers() aracılığıyla HAL'e kaydedilir.
>= CAMERA_DEVICE_API_VERSION_3_2:
Arabellekler HAL'e önceden kaydedilmemiş olmalıdır. Sonraki istekler, arabellekleri yeniden kullanabilir veya tamamen yeni arabellekler sağlayabilir.
uint32_t num_output_buffers |
const camera3_stream_buffer_t * output_buffers |
Bu yakalama/yeniden işleme işleminden elde edilen görüntü verileriyle doldurulacak num_output_buffers akış arabelleklerinin bir dizisi. HAL, her bir akış arabelleğine yazmadan önce bu arabelleklerin edinme çitlerini beklemelidir.
HAL, output_buffers içindeki gerçek buffer_handle_t girişlerinin sahipliğini alır; çerçeve, camera3_capture_result_t içinde döndürülene kadar bunlara erişmez.
<= CAMERA_DEVICE_API_VERSION_3_1:
Buradaki tüm arabellekler, bir isteğe dahil edilmeden önce register_stream_buffers() aracılığıyla HAL'e kaydedilir.
>= CAMERA_DEVICE_API_VERSION_3_2:
Buradaki arabelleklerin herhangi biri veya tümü bu istekte yepyeni olabilir (HAL tarafından daha önce hiç görülmemiş).
const camera_metadata_t * settings |
Ayarlar arabelleği, istek için yakalama ve işleme parametrelerini içerir. Özel bir durum olarak, NULL ayarlar arabelleği, ayarların en son gönderilen yakalama isteğiyle aynı olduğunu gösterir. configure_streams() çağrısından sonra gönderilen ilk istek olarak NULL arabelleği kullanılamaz.
Bu yapının dokümanları aşağıdaki dosyadan oluşturulmuştur:
- hardware/libhardware/include/hardware/ camera3.h