camera2_request_queue_src_ops Yapı Referansı

camera2_request_queue_src_ops Yapı Referansı

#include < camera2.h >

Veri Alanları

int(*  request_count )(const struct camera2_request_queue_src_ops *q)
 
int(*  dequeue_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)
 
int(*  free_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)
 

Ayrıntılı Açıklama

Giriş sırası protokolü isteğinde bulunun:

Çerçeve, sırayı ve içeriğini tutar. Başlangıçta sıra boştur.

  1. İlk meta veri arabelleği sıraya yerleştirildiğinde çerçeve, notify_request_queue_not_empty() işlevini çağırarak cihaza sinyal gönderir.
  2. notify_request_queue_not_empty aldıktan sonra cihaz, bir sonraki arabelleği işlemeye hazır olduğunda dequeue() işlevini çağırmalıdır.
  3. Cihaz bir arabelleği işledikten ve bir sonraki arabelleğe hazır olduktan sonra bildirim beklemek yerine dequeue() işlevini tekrar çağırmalıdır. Kullanılabilir başka arabelleğe sahip değilseniz dequeue() işlevi NULL değerini döndürür. Bu noktadan sonra, bir arabellek kullanılabilir hale geldiğinde çerçevenin notify_request_queue_not_empty() işlevini tekrar çağırması gerekir. Cihaz, dequeue işlevinden NULL döndürürse kaynaktan notify_request_queue_not_empty() çağrısı alınana kadar kuyruğu tekrar sorgulamasına gerek yoktur.
  4. Cihaz, buffer_count() işlevini çağırır ve 0 değerini alırsa bu, çerçevenin notify_request_queue_not_empty() çağrısı sağlayacağı anlamına gelmez. Çerçeve yalnızca cihaz, sırayı kaldırma işleminden NULL aldıktan sonra veya ilk başlatmada böyle bir bildirim sağlar.
  5. notify_request_queue_not_empty() çağrısına yanıt olarak gelen dequeue() çağrısı, notify_request_queue_not_empty() çağrısıyla aynı ileti dizisinde olabilir ve notify çağrısı içinden gerçekleştirilebilir.
  6. Hata oluştuğunda, cihazın temizlenmesi istendiğinde veya cihaz kapanırken denetleme listesinden çıkarılan tüm istek arabellekleri, free_request çağrısı yapılarak çerçeveye döndürülmelidir.

Tanımı, camera2.h dosyasının 220 satırı

Alan Belgeleri

int(* dequeue_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)

Çerçeveden bir meta veri arabelleği alın. Hata yoksa OK değerini döndürür. Sıra boşsa arabellekte NULL döndürülür. Bu durumda cihaz, sırayı tekrar kaldırmayı denemeden önce notify_request_queue_not_empty() mesajını beklemelidir. Bu şekilde elde edilen arabellekler, free_request() ile çerçeveye döndürülmelidir.

Tanımı, camera2.h dosyasının 237 satırı

int(* free_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)

Meta veri arabelleğini kullanıldıktan sonra veya hata ya da kapatma durumunda çerçeveye döndürme.

Tanımı, camera2.h dosyasının 243 satırndandır.

int(* request_count)(const struct camera2_request_queue_src_ops *q)

Kuyruğa alınan istek arabelleklerinin sayısını alın. Şu anda tekrarlanan bir istek (akış isteği) yapılandırılmışsa CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS değerini döndürebilir. Bu yöntemin çağrılmasının, notify_request_queue_not_empty() yönteminin çerçeve tarafından çağrılıp çağrılmayacağı üzerinde hiçbir etkisi yoktur.

Tanımı, camera2.h dosyasının 228. satırı içindedir.


Bu yapının dokümanları aşağıdaki dosyadan oluşturulmuştur: