2025-02-07 13:24:49 +05:30
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
/*
|
|
|
|
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __IRIS_VDEC_H__
|
|
|
|
#define __IRIS_VDEC_H__
|
|
|
|
|
|
|
|
struct iris_inst;
|
|
|
|
|
2025-05-09 14:09:08 +05:30
|
|
|
enum iris_fmt_type {
|
|
|
|
IRIS_FMT_H264,
|
|
|
|
IRIS_FMT_HEVC,
|
|
|
|
IRIS_FMT_VP9,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct iris_fmt {
|
|
|
|
u32 pixfmt;
|
|
|
|
u32 type;
|
|
|
|
};
|
|
|
|
|
2025-02-07 13:24:54 +05:30
|
|
|
int iris_vdec_inst_init(struct iris_inst *inst);
|
2025-02-07 13:24:49 +05:30
|
|
|
void iris_vdec_inst_deinit(struct iris_inst *inst);
|
2025-02-07 13:24:52 +05:30
|
|
|
int iris_vdec_enum_fmt(struct iris_inst *inst, struct v4l2_fmtdesc *f);
|
2025-02-07 13:24:50 +05:30
|
|
|
int iris_vdec_try_fmt(struct iris_inst *inst, struct v4l2_format *f);
|
|
|
|
int iris_vdec_s_fmt(struct iris_inst *inst, struct v4l2_format *f);
|
2025-02-07 13:24:53 +05:30
|
|
|
int iris_vdec_subscribe_event(struct iris_inst *inst, const struct v4l2_event_subscription *sub);
|
2025-02-07 13:25:01 +05:30
|
|
|
void iris_vdec_src_change(struct iris_inst *inst);
|
2025-02-07 13:24:56 +05:30
|
|
|
int iris_vdec_streamon_input(struct iris_inst *inst);
|
|
|
|
int iris_vdec_streamon_output(struct iris_inst *inst);
|
2025-02-07 13:25:00 +05:30
|
|
|
int iris_vdec_qbuf(struct iris_inst *inst, struct vb2_v4l2_buffer *vbuf);
|
2025-02-07 13:25:03 +05:30
|
|
|
int iris_vdec_start_cmd(struct iris_inst *inst);
|
|
|
|
int iris_vdec_stop_cmd(struct iris_inst *inst);
|
2025-02-07 13:25:00 +05:30
|
|
|
int iris_vdec_session_streamoff(struct iris_inst *inst, u32 plane);
|
2025-02-07 13:24:49 +05:30
|
|
|
|
|
|
|
#endif
|