xref: /linux/drivers/media/platform/qcom/iris/iris_vdec.h (revision 22c55fb9eb92395d999b8404d73e58540d11bdd8)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4  */
5 
6 #ifndef __IRIS_VDEC_H__
7 #define __IRIS_VDEC_H__
8 
9 struct iris_inst;
10 
11 enum iris_fmt_type {
12 	IRIS_FMT_H264,
13 	IRIS_FMT_HEVC,
14 	IRIS_FMT_VP9,
15 };
16 
17 struct iris_fmt {
18 	u32 pixfmt;
19 	u32 type;
20 };
21 
22 int iris_vdec_inst_init(struct iris_inst *inst);
23 void iris_vdec_inst_deinit(struct iris_inst *inst);
24 int iris_vdec_enum_fmt(struct iris_inst *inst, struct v4l2_fmtdesc *f);
25 int iris_vdec_try_fmt(struct iris_inst *inst, struct v4l2_format *f);
26 int iris_vdec_s_fmt(struct iris_inst *inst, struct v4l2_format *f);
27 int iris_vdec_subscribe_event(struct iris_inst *inst, const struct v4l2_event_subscription *sub);
28 void iris_vdec_src_change(struct iris_inst *inst);
29 int iris_vdec_streamon_input(struct iris_inst *inst);
30 int iris_vdec_streamon_output(struct iris_inst *inst);
31 int iris_vdec_qbuf(struct iris_inst *inst, struct vb2_v4l2_buffer *vbuf);
32 int iris_vdec_start_cmd(struct iris_inst *inst);
33 int iris_vdec_stop_cmd(struct iris_inst *inst);
34 int iris_vdec_session_streamoff(struct iris_inst *inst, u32 plane);
35 
36 #endif
37