msm_vidc.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
  4. * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  5. */
  6. #ifndef _MSM_VIDC_H_
  7. #define _MSM_VIDC_H_
  8. #include <linux/videodev2.h>
  9. #include <media/media-device.h>
  10. union msm_v4l2_cmd {
  11. struct v4l2_decoder_cmd dec;
  12. struct v4l2_encoder_cmd enc;
  13. };
  14. void *msm_vidc_open(struct msm_vidc_core *core, u32 session_type);
  15. int msm_vidc_close(struct msm_vidc_inst *inst);
  16. int msm_vidc_querycap(struct msm_vidc_inst *inst, struct v4l2_capability *cap);
  17. int msm_vidc_enum_fmt(struct msm_vidc_inst *inst, struct v4l2_fmtdesc *f);
  18. int msm_vidc_try_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f);
  19. int msm_vidc_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f);
  20. int msm_vidc_g_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f);
  21. int msm_vidc_s_selection(struct msm_vidc_inst *inst, struct v4l2_selection *s);
  22. int msm_vidc_g_selection(struct msm_vidc_inst *inst, struct v4l2_selection *s);
  23. int msm_vidc_s_param(struct msm_vidc_inst *inst, struct v4l2_streamparm *sp);
  24. int msm_vidc_g_param(struct msm_vidc_inst *inst, struct v4l2_streamparm *sp);
  25. int msm_vidc_reqbufs(struct msm_vidc_inst *inst, struct v4l2_requestbuffers *b);
  26. int msm_vidc_querybuf(struct msm_vidc_inst *inst, struct v4l2_buffer *b);
  27. int msm_vidc_create_bufs(struct msm_vidc_inst *inst, struct v4l2_create_buffers *b);
  28. int msm_vidc_prepare_buf(struct msm_vidc_inst *inst, struct media_device *mdev,
  29. struct v4l2_buffer *b);
  30. int msm_vidc_release_buffer(struct msm_vidc_inst *inst, int buffer_type,
  31. unsigned int buffer_index);
  32. int msm_vidc_qbuf(struct msm_vidc_inst *inst, struct media_device *mdev,
  33. struct v4l2_buffer *b);
  34. int msm_vidc_dqbuf(struct msm_vidc_inst *inst, struct v4l2_buffer *b);
  35. int msm_vidc_streamon(struct msm_vidc_inst *inst, enum v4l2_buf_type i);
  36. int msm_vidc_query_ctrl(struct msm_vidc_inst *inst, struct v4l2_queryctrl *ctrl);
  37. int msm_vidc_query_menu(struct msm_vidc_inst *inst, struct v4l2_querymenu *qmenu);
  38. int msm_vidc_streamoff(struct msm_vidc_inst *inst, enum v4l2_buf_type i);
  39. int msm_vidc_try_cmd(struct msm_vidc_inst *inst, union msm_v4l2_cmd *cmd);
  40. int msm_vidc_start_cmd(struct msm_vidc_inst *inst);
  41. int msm_vidc_stop_cmd(struct msm_vidc_inst *inst);
  42. int msm_vidc_poll(struct msm_vidc_inst *inst, struct file *filp,
  43. struct poll_table_struct *pt);
  44. int msm_vidc_subscribe_event(struct msm_vidc_inst *inst,
  45. const struct v4l2_event_subscription *sub);
  46. int msm_vidc_unsubscribe_event(struct msm_vidc_inst *inst,
  47. const struct v4l2_event_subscription *sub);
  48. int msm_vidc_dqevent(struct msm_vidc_inst *inst, struct v4l2_event *event);
  49. int msm_vidc_g_crop(struct msm_vidc_inst *inst, struct v4l2_crop *a);
  50. int msm_vidc_enum_framesizes(struct msm_vidc_inst *inst, struct v4l2_frmsizeenum *fsize);
  51. int msm_vidc_enum_frameintervals(struct msm_vidc_inst *inst, struct v4l2_frmivalenum *fival);
  52. #endif