camera2_frame_queue_dst_ops Struct Reference

camera2_frame_queue_dst_ops Struct Reference

#include < camera2.h >

Data Fields

int(*  dequeue_frame )(const struct camera2_frame_queue_dst_ops *q, size_t entries, size_t data_bytes, camera_metadata_t **buffer)
int(*  cancel_frame )(const struct camera2_frame_queue_dst_ops *q, camera_metadata_t *buffer)
int(*  enqueue_frame )(const struct camera2_frame_queue_dst_ops *q, camera_metadata_t *buffer)

Detailed Description

Frame output queue protocol:

The framework holds the queue and its contents. At start, the queue is empty.

  1. When the device is ready to fill an output metadata frame, it must dequeue a metadata buffer of the required size.
  2. It should then fill the metadata buffer, and place it on the frame queue using enqueue_frame. The framework takes ownership of the frame.
  3. In case of an error, a request to flush the pipeline, or shutdown, the device must return any affected dequeued frames to the framework by calling cancel_frame.

Definition at line 263 of file camera2.h .

Field Documentation

int(* cancel_frame)(const struct camera2_frame_queue_dst_ops *q, camera_metadata_t *buffer)

Return a dequeued metadata buffer to the framework for reuse; do not mark it as filled. Use when encountering errors, or flushing the internal request queue.

Definition at line 278 of file camera2.h .

int(* dequeue_frame)(const struct camera2_frame_queue_dst_ops *q, size_t entries, size_t data_bytes, camera_metadata_t **buffer)

Get an empty metadata buffer to fill from the framework. The new metadata buffer will have room for entries number of metadata entries, plus data_bytes worth of extra storage. Frames dequeued here must be returned to the framework with either cancel_frame or enqueue_frame.

Definition at line 270 of file camera2.h .

int(* enqueue_frame)(const struct camera2_frame_queue_dst_ops *q, camera_metadata_t *buffer)

Place a completed metadata frame on the frame output queue.

Definition at line 284 of file camera2.h .

The documentation for this struct was generated from the following file: