msm_vidc_control.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. int msm_vidc_ctrl_init(struct msm_vidc_inst *inst);
  11. int msm_vidc_ctrl_deinit(struct msm_vidc_inst *inst);
  12. int msm_v4l2_op_s_ctrl(struct v4l2_ctrl *ctrl);
  13. int msm_v4l2_op_g_volatile_ctrl(struct v4l2_ctrl *ctrl);
  14. int msm_vidc_adjust_bitrate(void *instance, struct v4l2_ctrl *ctrl);
  15. int msm_vidc_adjust_dynamic_layer_bitrate(void *instance, struct v4l2_ctrl *ctrl);
  16. int msm_vidc_adjust_bitrate_mode(void *instance, struct v4l2_ctrl *ctrl);
  17. int msm_vidc_adjust_entropy_mode(void *instance, struct v4l2_ctrl *ctrl);
  18. int msm_vidc_adjust_profile(void *instance, struct v4l2_ctrl *ctrl);
  19. int msm_vidc_adjust_ltr_count(void *instance, struct v4l2_ctrl *ctrl);
  20. int msm_vidc_adjust_use_ltr(void *instance, struct v4l2_ctrl *ctrl);
  21. int msm_vidc_adjust_mark_ltr(void *instance, struct v4l2_ctrl *ctrl);
  22. int msm_vidc_adjust_ir_random(void *instance, struct v4l2_ctrl *ctrl);
  23. int msm_vidc_adjust_delta_based_rc(void *instance, struct v4l2_ctrl *ctrl);
  24. int msm_vidc_adjust_transform_8x8(void *instance, struct v4l2_ctrl *ctrl);
  25. int msm_vidc_adjust_chroma_qp_index_offset(void *instance,
  26. struct v4l2_ctrl *ctrl);
  27. int msm_vidc_adjust_slice_count(void *instance, struct v4l2_ctrl *ctrl);
  28. int msm_vidc_adjust_layer_count(void *instance, struct v4l2_ctrl *ctrl);
  29. int msm_vidc_adjust_gop_size(void *instance, struct v4l2_ctrl *ctrl);
  30. int msm_vidc_adjust_b_frame(void *instance, struct v4l2_ctrl *ctrl);
  31. int msm_vidc_adjust_peak_bitrate(void *instance, struct v4l2_ctrl *ctrl);
  32. int msm_vidc_adjust_hevc_min_qp(void *instance, struct v4l2_ctrl *ctrl);
  33. int msm_vidc_adjust_hevc_max_qp(void *instance, struct v4l2_ctrl *ctrl);
  34. int msm_vidc_adjust_hevc_i_frame_qp(void *instance, struct v4l2_ctrl *ctrl);
  35. int msm_vidc_adjust_hevc_p_frame_qp(void *instance, struct v4l2_ctrl *ctrl);
  36. int msm_vidc_adjust_hevc_b_frame_qp(void *instance, struct v4l2_ctrl *ctrl);
  37. int msm_vidc_adjust_blur_type(void *instance, struct v4l2_ctrl *ctrl);
  38. int msm_vidc_adjust_blur_resolution(void *instance, struct v4l2_ctrl *ctrl);
  39. int msm_vidc_adjust_cac(void *instance, struct v4l2_ctrl *ctrl);
  40. int msm_vidc_adjust_bitrate_boost(void *instance, struct v4l2_ctrl *ctrl);
  41. int msm_vidc_adjust_min_quality(void *instance, struct v4l2_ctrl *ctrl);
  42. int msm_vidc_adjust_lowlatency_mode(void *instance, struct v4l2_ctrl *ctrl);
  43. int msm_vidc_adjust_v4l2_properties(struct msm_vidc_inst *inst);
  44. int msm_vidc_adjust_session_priority(void *instance, struct v4l2_ctrl *ctrl);
  45. int msm_vidc_adjust_roi_info(void *instance, struct v4l2_ctrl *ctrl);
  46. int msm_vidc_adjust_all_intra(void *instance, struct v4l2_ctrl *ctrl);
  47. int msm_vidc_set_header_mode(void *instance,
  48. enum msm_vidc_inst_capability_type cap_id);
  49. int msm_vidc_set_deblock_mode(void *instance,
  50. enum msm_vidc_inst_capability_type cap_id);
  51. int msm_vidc_set_min_qp(void *instance,
  52. enum msm_vidc_inst_capability_type cap_id);
  53. int msm_vidc_set_max_qp(void *instance,
  54. enum msm_vidc_inst_capability_type cap_id);
  55. int msm_vidc_set_frame_qp(void *instance,
  56. enum msm_vidc_inst_capability_type cap_id);
  57. int msm_vidc_set_req_sync_frame(void *instance,
  58. enum msm_vidc_inst_capability_type cap_id);
  59. int msm_vidc_set_chroma_qp_index_offset(void *instance,
  60. enum msm_vidc_inst_capability_type cap_id);
  61. int msm_vidc_set_slice_count(void* instance,
  62. enum msm_vidc_inst_capability_type cap_id);
  63. int msm_vidc_set_layer_count_and_type(void *instance,
  64. enum msm_vidc_inst_capability_type cap_id);
  65. int msm_vidc_set_gop_size(void *instance,
  66. enum msm_vidc_inst_capability_type cap_id);
  67. int msm_vidc_set_bitrate(void *instance,
  68. enum msm_vidc_inst_capability_type cap_id);
  69. int msm_vidc_set_dynamic_layer_bitrate(void *instance,
  70. enum msm_vidc_inst_capability_type cap_id);
  71. int msm_vidc_set_u32(void *instance,
  72. enum msm_vidc_inst_capability_type cap_id);
  73. int msm_vidc_set_u32_enum(void *instance,
  74. enum msm_vidc_inst_capability_type cap_id);
  75. int msm_vidc_set_constant_quality(void *instance,
  76. enum msm_vidc_inst_capability_type cap_id);
  77. int msm_vidc_set_vbr_related_properties(
  78. void *instance, enum msm_vidc_inst_capability_type cap_id);
  79. int msm_vidc_set_cbr_related_properties(void *instance,
  80. enum msm_vidc_inst_capability_type cap_id);
  81. int msm_vidc_set_use_and_mark_ltr(void *instance,
  82. enum msm_vidc_inst_capability_type cap_id);
  83. int msm_vidc_set_nal_length(void* instance,
  84. enum msm_vidc_inst_capability_type cap_id);
  85. int msm_vidc_set_session_priority(void *instance,
  86. enum msm_vidc_inst_capability_type cap_id);
  87. int msm_vidc_set_flip(void *instance,
  88. enum msm_vidc_inst_capability_type cap_id);
  89. int msm_vidc_set_rotation(void *instance,
  90. enum msm_vidc_inst_capability_type cap_id);
  91. int msm_vidc_set_blur_resolution(void *instance,
  92. enum msm_vidc_inst_capability_type cap_id);
  93. int msm_vidc_set_stage(void *instance,
  94. enum msm_vidc_inst_capability_type cap_id);
  95. int msm_vidc_set_pipe(void *instance,
  96. enum msm_vidc_inst_capability_type cap_id);
  97. int msm_vidc_set_csc_custom_matrix(void *instance,
  98. enum msm_vidc_inst_capability_type cap_id);
  99. int msm_vidc_set_session_priority(void* instance,
  100. enum msm_vidc_inst_capability_type cap_id);
  101. int msm_vidc_set_seq_change_at_sync_frame(void *instance);
  102. int msm_vidc_set_level(void *instance,
  103. enum msm_vidc_inst_capability_type cap_id);
  104. int msm_vidc_set_s32(void *instance,
  105. enum msm_vidc_inst_capability_type cap_id);
  106. int msm_vidc_set_q16(void *instance,
  107. enum msm_vidc_inst_capability_type cap_id);
  108. int msm_vidc_set_v4l2_properties(struct msm_vidc_inst *inst);
  109. int msm_vidc_v4l2_menu_to_hfi(struct msm_vidc_inst *inst,
  110. enum msm_vidc_inst_capability_type cap_id, u32 *value);
  111. int msm_vidc_v4l2_to_hfi_enum(struct msm_vidc_inst *inst,
  112. enum msm_vidc_inst_capability_type cap_id, u32 *value);
  113. int msm_vidc_update_cap_value(struct msm_vidc_inst *inst, u32 cap,
  114. s32 adjusted_val, const char *func);
  115. int msm_vidc_get_parent_value(struct msm_vidc_inst* inst, u32 cap, u32 parent,
  116. s32 *value, const char *func);
  117. #endif