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