msm_vidc_control.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef _MSM_VIDC_CONTROL_H_
  6. #define _MSM_VIDC_CONTROL_H_
  7. #include <media/v4l2_vidc_extensions.h>
  8. #include "msm_vidc_inst.h"
  9. #include "msm_vidc_internal.h"
  10. #define MAX_GOP 0xFFFFFFF
  11. #define MAX_INTRA_REFRESH_MBS ((7680 * 4320) >> 8)
  12. #define MAX_BASE_LAYER_PRIORITY_ID 63
  13. #define MIN_CHROMA_QP_OFFSET -12
  14. #define MAX_CHROMA_QP_OFFSET 12
  15. #define MAX_LTR_FRAME_COUNT 10
  16. #define MAX_BITRATE 220000000
  17. enum msm_vidc_ctrl_list_type {
  18. CHILD_LIST = BIT(0),
  19. FW_LIST = BIT(1),
  20. };
  21. int msm_vidc_ctrl_init(struct msm_vidc_inst *inst);
  22. int msm_vidc_ctrl_deinit(struct msm_vidc_inst *inst);
  23. int msm_v4l2_op_s_ctrl(struct v4l2_ctrl *ctrl);
  24. int msm_vidc_adjust_bitrate(void *instance, struct v4l2_ctrl *ctrl);
  25. int msm_vidc_adjust_entropy_mode(void *instance, struct v4l2_ctrl *ctrl);
  26. int msm_vidc_adjust_profile(void *instance, struct v4l2_ctrl *ctrl);
  27. int msm_vidc_adjust_ltr_count(void *instance, struct v4l2_ctrl *ctrl);
  28. int msm_vidc_adjust_v4l2_properties(struct msm_vidc_inst *inst);
  29. int msm_vidc_set_header_mode(void *instance,
  30. enum msm_vidc_inst_capability_type cap_id);
  31. int msm_vidc_set_bitrate_mode(void *instance,
  32. enum msm_vidc_inst_capability_type cap_id);
  33. int msm_vidc_set_u32(void *instance,
  34. enum msm_vidc_inst_capability_type cap_id);
  35. int msm_vidc_set_u32_enum(void *instance,
  36. enum msm_vidc_inst_capability_type cap_id);
  37. int msm_vidc_set_s32(void *instance,
  38. enum msm_vidc_inst_capability_type cap_id);
  39. int msm_vidc_set_array(void *instance,
  40. enum msm_vidc_inst_capability_type cap_id);
  41. int msm_vidc_set_q16(void *instance,
  42. enum msm_vidc_inst_capability_type cap_id);
  43. int msm_vidc_set_v4l2_properties(struct msm_vidc_inst *inst);
  44. int msm_vidc_v4l2_menu_to_hfi(struct msm_vidc_inst *inst,
  45. enum msm_vidc_inst_capability_type cap_id, u32 *value);
  46. int msm_vidc_v4l2_to_hfi_enum(struct msm_vidc_inst *inst,
  47. enum msm_vidc_inst_capability_type cap_id, u32 *value);
  48. #endif