camera2_request_queue_src_ops 구조체 참조

camera2_request_queue_src_ops 구조체 참조

#include < camera2.h >

데이터 필드

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)
 

상세 설명

입력 대기열 프로토콜 요청:

프레임워크는 대기열과 그 콘텐츠를 보유합니다. 시작 시 대기열은 비어 있습니다.

  1. 첫 번째 메타데이터 버퍼가 대기열에 배치되면 프레임워크는 notify_request_queue_not_empty()를 호출하여 기기에 신호를 보냅니다.
  2. notify_request_queue_not_empty를 수신한 후 기기는 다음 버퍼를 처리할 준비가 되면 dequeue()를 호출해야 합니다.
  3. 기기가 버퍼를 처리하고 다음 버퍼를 받을 준비가 되면 알림을 기다리는 대신 dequeue()를 다시 호출해야 합니다. 사용할 수 있는 버퍼가 더 이상 없으면 dequeue()가 NULL을 반환합니다. 이 시점 이후 버퍼를 사용할 수 있게 되면 프레임워크는 notify_request_queue_not_empty()를 다시 호출해야 합니다. 기기가 dequeue에서 NULL 반환을 수신하면 소스에서 notify_request_queue_not_empty() 호출을 수신할 때까지 대기열을 다시 쿼리할 필요가 없습니다.
  4. 기기가 buffer_count()를 호출하고 0을 수신한다고 해서 프레임워크가 notify_request_queue_not_empty() 호출을 제공하는 것은 아닙니다. 프레임워크는 기기가 큐에서 NULL을 수신한 후에만 또는 초기 시작 시 이러한 알림을 제공합니다.
  5. notify_request_queue_not_empty()에 대한 응답으로 호출되는 dequeue()는 notify_request_queue_not_empty() 호출과 동일한 스레드에 있을 수 있으며 notify 호출 내에서 실행될 수 있습니다.
  6. 오류가 발생하거나 기기 플러시가 요청되거나 기기가 종료되는 경우를 포함하여 모든 큐에서 제거된 요청 버퍼는 free_request를 호출하여 프레임워크로 반환해야 합니다.

camera2.h 파일의 220 번 행에 정의되어 있습니다.

필드 문서

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

프레임워크에서 메타데이터 버퍼를 가져옵니다. 오류가 없으면 OK를 반환합니다. 대기열이 비어 있으면 버퍼에 NULL을 반환합니다. 이 경우 기기는 notify_request_queue_not_empty() 메시지를 기다린 후에야 다시 큐를 삭제할 수 있습니다. 이 방법으로 가져온 버퍼는 free_request() 를 사용하여 프레임워크에 반환해야 합니다.

camera2.h FILE의 237 행에 정의되어 있습니다.

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

메타데이터 버퍼가 사용된 후 또는 오류나 종료가 발생하면 프레임워크에 메타데이터 버퍼를 반환합니다.

camera2.h FILE의 243 행에 정의되어 있습니다.

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

대기열에 대기 중인 요청 버퍼 수를 가져옵니다. 반복 요청 (스트림 요청)이 현재 구성된 경우 CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS를 반환할 수 있습니다. 이 메서드를 호출해도 프레임워크에서 notify_request_queue_not_empty() 메서드를 호출할지 여부에 영향을 미치지 않습니다.

camera2.h 파일의 228 번 행에 정의되어 있습니다.


이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.