Lines Matching full:frame
52 * @dpb: number of frames needed to decode a single frame
54 * @crop: cropping window inside decoded frame (1920x1080@0,0
55 * inside 1920x1088 frame for ex.)
92 * @list: V4L2 m2m list that the frame belongs to
112 * struct delta_frameinfo - information about decoded frame
116 * @width: width of frame
117 * @height: height of frame
118 * @aligned_width: width of frame (with encoder or decoder alignment
120 * @aligned_height: height of frame (with encoder or decoder alignment
123 * @crop: cropping window inside frame (1920x1080@0,0
124 * inside 1920x1088 frame for ex.)
153 * struct delta_frame - frame structure.
156 * @list: V4L2 m2m list that the frame belongs to
157 * @info: frame information (width, height, format, alignment...)
159 * @index: frame index, aligned on V4L2 wow
162 * @state: frame state for frame lifecycle tracking
164 * @flags: frame type (V4L2_BUF_FLAG_KEYFRAME/PFRAME/BFRAME)
165 * @dts: decoding timestamp of this frame
166 * @field: field order for interlaced frame
183 /* frame state for frame lifecycle tracking */
185 #define DELTA_FRAME_REF 0x01 /* is a reference frame */
231 * @pixelformat: pixel format of decoded frame that this decoder support
239 * @setup_frame: setup frame to be used by decoder, see below
241 * @get_frameinfo: get decoded frame related infos, see below
242 * @set_frameinfo: (optional) set decoded frame related infos, see below
243 * @setup_frame: setup frame to be used by decoder, see below
245 * @get_frame: get the next decoded frame available, see below
246 * @recycle: recycle the given frame, see below
265 * setup_frame() - setup frame to be used by decoder
267 * @frame: (in) frame to use
268 * @frame.index (in) identifier of frame
269 * @frame.vaddr (in) virtual address (kernel can read/write)
270 * @frame.paddr (in) physical address (for hardware)
272 * Frame is to be allocated by caller, then given
275 * each frame is identified using its index.
277 int (*setup_frame)(struct delta_ctx *ctx, struct delta_frame *frame);
296 * get_frameinfo() - get decoded frame related infos
306 * set_frameinfo() - set decoded frame related infos
312 * frame if decoder can do post-processing.
336 * get_frame() - get the next decoded frame available
338 * @frame: (out) frame with decoded data:
339 * @frame.index (out) identifier of frame
340 * @frame.field (out) field order for interlaced frame
341 * @frame.state (out) frame state for frame lifecycle tracking
342 * @frame.flags (out) frame type (V4L2_BUF_FLAG_KEYFRAME/
345 * Get the next available decoded frame.
346 * If no frame is available, -ENODATA is returned.
347 * If a frame is available, frame structure is filled with
348 * relevant data, frame.index identifying this exact frame.
349 * When this frame is no more needed by upper layers,
350 * recycle() must be called giving this frame identifier.
352 int (*get_frame)(struct delta_ctx *ctx, struct delta_frame **frame);
355 * recycle() - recycle the given frame
357 * @frame: (in) frame to recycle:
358 * @frame.index (in) identifier of frame
360 * recycle() is to be called by user when the decoded frame
362 * This frame will then be reused by decoder to proceed
363 * with next frame decoding.
368 * decoder is called only if at least one frame is available.
370 int (*recycle)(struct delta_ctx *ctx, struct delta_frame *frame);
408 * @frame_num: frame number
412 * @frameinfo: frame information (width, height, format, alignment...)
414 * @frames: array of decoding frames to keep track of frame
415 * state and manage frame recycling
419 * or frame decoded but not output)
558 struct delta_frame *frame);