msm_vidc_control.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020-2021,, 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. enum msm_vidc_ctrl_list_type {
  11. CHILD_LIST = BIT(0),
  12. FW_LIST = BIT(1),
  13. };
  14. int msm_vidc_ctrl_init(struct msm_vidc_inst *inst);
  15. int msm_vidc_ctrl_deinit(struct msm_vidc_inst *inst);
  16. int msm_v4l2_op_s_ctrl(struct v4l2_ctrl *ctrl);
  17. int msm_vidc_adjust_bitrate(void *instance, struct v4l2_ctrl *ctrl);
  18. int msm_vidc_adjust_bitrate_mode(void *instance, struct v4l2_ctrl *ctrl);
  19. int msm_vidc_adjust_entropy_mode(void *instance, struct v4l2_ctrl *ctrl);
  20. int msm_vidc_adjust_profile(void *instance, struct v4l2_ctrl *ctrl);
  21. int msm_vidc_adjust_ltr_count(void *instance, struct v4l2_ctrl *ctrl);
  22. int msm_vidc_adjust_use_ltr(void *instance, struct v4l2_ctrl *ctrl);
  23. int msm_vidc_adjust_mark_ltr(void *instance, struct v4l2_ctrl *ctrl);
  24. int msm_vidc_adjust_ir_random(void *instance, struct v4l2_ctrl *ctrl);
  25. int msm_vidc_adjust_delta_based_rc(void *instance, struct v4l2_ctrl *ctrl);
  26. int msm_vidc_adjust_transform_8x8(void *instance, struct v4l2_ctrl *ctrl);
  27. int msm_vidc_adjust_layer_count(void *instance, struct v4l2_ctrl *ctrl);
  28. int msm_vidc_adjust_gop_size(void *instance, struct v4l2_ctrl *ctrl);
  29. int msm_vidc_adjust_b_frame(void *instance, struct v4l2_ctrl *ctrl);
  30. int msm_vidc_adjust_hevc_min_qp(void *instance, struct v4l2_ctrl *ctrl);
  31. int msm_vidc_adjust_hevc_max_qp(void *instance, struct v4l2_ctrl *ctrl);
  32. int msm_vidc_adjust_hevc_frame_qp(void *instance, struct v4l2_ctrl *ctrl);
  33. int msm_vidc_adjust_v4l2_properties(struct msm_vidc_inst *inst);
  34. int msm_vidc_set_header_mode(void *instance,
  35. enum msm_vidc_inst_capability_type cap_id);
  36. int msm_vidc_set_deblock_mode(void *instance,
  37. enum msm_vidc_inst_capability_type cap_id);
  38. int msm_vidc_set_min_qp(void *instance,
  39. enum msm_vidc_inst_capability_type cap_id);
  40. int msm_vidc_set_max_qp(void *instance,
  41. enum msm_vidc_inst_capability_type cap_id);
  42. int msm_vidc_set_frame_qp(void *instance,
  43. enum msm_vidc_inst_capability_type cap_id);
  44. int msm_vidc_set_req_sync_frame(void *instance,
  45. enum msm_vidc_inst_capability_type cap_id);
  46. int msm_vidc_set_chroma_qp_index_offset(void *instance,
  47. enum msm_vidc_inst_capability_type cap_id);
  48. int msm_vidc_set_slice_count(void* instance,
  49. enum msm_vidc_inst_capability_type cap_id);
  50. int msm_vidc_set_layer_count_and_type(void *instance,
  51. enum msm_vidc_inst_capability_type cap_id);
  52. int msm_vidc_set_gop_size(void *instance,
  53. enum msm_vidc_inst_capability_type cap_id);
  54. int msm_vidc_set_u32(void *instance,
  55. enum msm_vidc_inst_capability_type cap_id);
  56. int msm_vidc_set_u32_enum(void *instance,
  57. enum msm_vidc_inst_capability_type cap_id);
  58. int msm_vidc_set_constant_quality(void *instance,
  59. enum msm_vidc_inst_capability_type cap_id);
  60. int msm_vidc_set_use_and_mark_ltr(void *instance,
  61. enum msm_vidc_inst_capability_type cap_id);
  62. int msm_vidc_set_nal_length(void* instance,
  63. enum msm_vidc_inst_capability_type cap_id);
  64. int msm_vidc_set_s32(void *instance,
  65. enum msm_vidc_inst_capability_type cap_id);
  66. int msm_vidc_set_array(void *instance,
  67. enum msm_vidc_inst_capability_type cap_id);
  68. int msm_vidc_set_q16(void *instance,
  69. enum msm_vidc_inst_capability_type cap_id);
  70. int msm_vidc_set_v4l2_properties(struct msm_vidc_inst *inst);
  71. int msm_vidc_v4l2_menu_to_hfi(struct msm_vidc_inst *inst,
  72. enum msm_vidc_inst_capability_type cap_id, u32 *value);
  73. int msm_vidc_v4l2_to_hfi_enum(struct msm_vidc_inst *inst,
  74. enum msm_vidc_inst_capability_type cap_id, u32 *value);
  75. int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap,
  76. s32 adjusted_val, const char *func);
  77. #endif