Android Hardware Abstraction Layer
Data Fields
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 259 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 274 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 266 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 280 of file camera2.h.


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