Introduce V4L2_MPEG_VIDEO_BITRATE_MODE_MBR rate control to Encoder.
Encoder will choose appropriate quantization parameter and
do the smart bit allocation to set the frame maximum bitrate
level as per the Bitrate value configured.
---
drivers/media/platform/qcom/iris/iris_ctrls.c | 2 +
.../platform/qcom/iris/iris_hfi_gen1_defines.h | 1 +
.../media/platform/qcom/iris/iris_platform_gen1.c | 9 +-
.../platform/qcom/iris/iris_platform_sc7280.h | 202 +++++++++++++++++++++
4 files changed, 207 insertions(+), 7 deletions(-)
diff --git a/drivers/media/platform/qcom/iris/iris_ctrls.c b/drivers/media/platform/qcom/iris/iris_ctrls.c
index 3cec957580f5..dba3a4ba5d26 100644
--- a/drivers/media/platform/qcom/iris/iris_ctrls.c
+++ b/drivers/media/platform/qcom/iris/iris_ctrls.c
@@ -628,6 +628,8 @@ int iris_set_bitrate_mode_gen1(struct iris_inst *inst, enum platform_inst_fw_cap
rc_mode = frame_skip ? HFI_RATE_CONTROL_CBR_VFR : HFI_RATE_CONTROL_CBR_CFR;
else if (bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_CQ)
rc_mode = HFI_RATE_CONTROL_CQ;
+ else if (bitrate_mode == V4L2_MPEG_VIDEO_BITRATE_MODE_MBR)
+ rc_mode = HFI_RATE_CONTROL_MBR;
inst->hfi_rc_type = rc_mode;
diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h b/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h
index 42226ccee3d9..6f3688bfbf58 100644
--- a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h
+++ b/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h
@@ -130,6 +130,7 @@
#define HFI_RATE_CONTROL_VBR_CFR 0x1000003
#define HFI_RATE_CONTROL_CBR_VFR 0x1000004
#define HFI_RATE_CONTROL_CBR_CFR 0x1000005
+#define HFI_RATE_CONTROL_MBR 0x1000006
#define HFI_RATE_CONTROL_CQ 0x1000008
#define HFI_H264_ENTROPY_CAVLC 0x1
diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
index df8e6bf9430e..286f623e60d3 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_gen1.c
+++ b/drivers/media/platform/qcom/iris/iris_platform_gen1.c
@@ -15,11 +15,6 @@
#include "iris_platform_sc7280.h"
-#define BITRATE_MIN 32000
-#define BITRATE_MAX 160000000
-#define BITRATE_PEAK_DEFAULT (BITRATE_DEFAULT * 2)
-#define BITRATE_STEP 100
-
static struct iris_fmt platform_fmts_sm8250_dec[] = {
[IRIS_FMT_H264] = {
.pixfmt = V4L2_PIX_FMT_H264,
@@ -419,8 +414,8 @@ const struct iris_platform_data sc7280_data = {
.inst_caps = &platform_inst_cap_sm8250,
.inst_fw_caps_dec = inst_fw_cap_sm8250_dec,
.inst_fw_caps_dec_size = ARRAY_SIZE(inst_fw_cap_sm8250_dec),
- .inst_fw_caps_enc = inst_fw_cap_sm8250_enc,
- .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sm8250_enc),
+ .inst_fw_caps_enc = inst_fw_cap_sc7280_enc,
+ .inst_fw_caps_enc_size = ARRAY_SIZE(inst_fw_cap_sc7280_enc),
.tz_cp_config_data = tz_cp_config_sm8250,
.tz_cp_config_data_size = ARRAY_SIZE(tz_cp_config_sm8250),
.hw_response_timeout = HW_RESPONSE_TIMEOUT_VALUE,
diff --git a/drivers/media/platform/qcom/iris/iris_platform_sc7280.h b/drivers/media/platform/qcom/iris/iris_platform_sc7280.h
index 0ec8f334df67..3f220c4c9cc0 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_sc7280.h
+++ b/drivers/media/platform/qcom/iris/iris_platform_sc7280.h
@@ -6,6 +6,13 @@
#ifndef __IRIS_PLATFORM_SC7280_H__
#define __IRIS_PLATFORM_SC7280_H__
+#include "iris_platform_common.h"
+
+#define BITRATE_MIN 32000
+#define BITRATE_MAX 160000000
+#define BITRATE_PEAK_DEFAULT (BITRATE_DEFAULT * 2)
+#define BITRATE_STEP 100
+
static const struct bw_info sc7280_bw_table_dec[] = {
{ ((3840 * 2160) / 256) * 60, 1896000, },
{ ((3840 * 2160) / 256) * 30, 968000, },
@@ -28,4 +35,199 @@ static const char * const sc7280_opp_clk_table[] = {
NULL,
};
+static const struct platform_inst_fw_cap inst_fw_cap_sc7280_enc[] = {
+ {
+ .cap_id = STAGE,
+ .min = STAGE_1,
+ .max = STAGE_2,
+ .step_or_mask = 1,
+ .value = STAGE_2,
+ .hfi_id = HFI_PROPERTY_PARAM_WORK_MODE,
+ .set = iris_set_stage,
+ },
+ {
+ .cap_id = PROFILE_H264,
+ .min = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE,
+ .max = V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_HIGH) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH) |
+ BIT(V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH),
+ .value = V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
+ .hfi_id = HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_profile_level_gen1,
+ },
+ {
+ .cap_id = PROFILE_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
+ .max = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10),
+ .value = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
+ .hfi_id = HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_profile_level_gen1,
+ },
+ {
+ .cap_id = LEVEL_H264,
+ .min = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
+ .max = V4L2_MPEG_VIDEO_H264_LEVEL_5_1,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1B) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_1_3) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_2_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_3_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_4_2) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_0) |
+ BIT(V4L2_MPEG_VIDEO_H264_LEVEL_5_1),
+ .value = V4L2_MPEG_VIDEO_H264_LEVEL_1_0,
+ .hfi_id = HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_profile_level_gen1,
+ },
+ {
+ .cap_id = LEVEL_HEVC,
+ .min = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
+ .max = V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1) |
+ BIT(V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2),
+ .value = V4L2_MPEG_VIDEO_HEVC_LEVEL_1,
+ .hfi_id = HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_profile_level_gen1,
+ },
+ {
+ .cap_id = HEADER_MODE,
+ .min = V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE,
+ .max = V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) |
+ BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME),
+ .value = V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME,
+ .hfi_id = HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_header_mode_gen1,
+ },
+ {
+ .cap_id = BITRATE,
+ .min = BITRATE_MIN,
+ .max = BITRATE_MAX,
+ .step_or_mask = BITRATE_STEP,
+ .value = BITRATE_DEFAULT,
+ .hfi_id = HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT |
+ CAP_FLAG_DYNAMIC_ALLOWED,
+ .set = iris_set_bitrate,
+ },
+ {
+ .cap_id = BITRATE_MODE,
+ .min = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
+ .max = V4L2_MPEG_VIDEO_BITRATE_MODE_MBR,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) |
+ BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
+ BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_MBR),
+ .value = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
+ .hfi_id = HFI_PROPERTY_PARAM_VENC_RATE_CONTROL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_bitrate_mode_gen1,
+ },
+ {
+ .cap_id = FRAME_SKIP_MODE,
+ .min = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
+ .max = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) |
+ BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT),
+ .value = V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ },
+ {
+ .cap_id = FRAME_RC_ENABLE,
+ .min = 0,
+ .max = 1,
+ .step_or_mask = 1,
+ .value = 1,
+ },
+ {
+ .cap_id = GOP_SIZE,
+ .min = 0,
+ .max = (1 << 16) - 1,
+ .step_or_mask = 1,
+ .value = 30,
+ .set = iris_set_u32
+ },
+ {
+ .cap_id = ENTROPY_MODE,
+ .min = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
+ .max = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC,
+ .step_or_mask = BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) |
+ BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC),
+ .value = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
+ .hfi_id = HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL,
+ .flags = CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU,
+ .set = iris_set_entropy_mode_gen1,
+ },
+ {
+ .cap_id = MIN_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ .hfi_id = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_qp_range,
+ },
+ {
+ .cap_id = MIN_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP_HEVC,
+ .step_or_mask = 1,
+ .value = MIN_QP_8BIT,
+ .hfi_id = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_qp_range,
+ },
+ {
+ .cap_id = MAX_FRAME_QP_H264,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP,
+ .step_or_mask = 1,
+ .value = MAX_QP,
+ .hfi_id = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_qp_range,
+ },
+ {
+ .cap_id = MAX_FRAME_QP_HEVC,
+ .min = MIN_QP_8BIT,
+ .max = MAX_QP_HEVC,
+ .step_or_mask = 1,
+ .value = MAX_QP_HEVC,
+ .hfi_id = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2,
+ .flags = CAP_FLAG_OUTPUT_PORT,
+ .set = iris_set_qp_range,
+ },
+};
+
#endif
--
2.34.1
On 2/13/26 7:04 AM, Sachin Kumar Garg wrote: > Introduce V4L2_MPEG_VIDEO_BITRATE_MODE_MBR rate control to Encoder. > Encoder will choose appropriate quantization parameter and > do the smart bit allocation to set the frame maximum bitrate > level as per the Bitrate value configured. > --- > drivers/media/platform/qcom/iris/iris_ctrls.c | 2 + > .../platform/qcom/iris/iris_hfi_gen1_defines.h | 1 + > .../media/platform/qcom/iris/iris_platform_gen1.c | 9 +- > .../platform/qcom/iris/iris_platform_sc7280.h | 202 +++++++++++++++++++++ Is this really only available on 7280? Konrad
On 2/13/2026 3:24 PM, Konrad Dybcio wrote: > On 2/13/26 7:04 AM, Sachin Kumar Garg wrote: >> Introduce V4L2_MPEG_VIDEO_BITRATE_MODE_MBR rate control to Encoder. >> Encoder will choose appropriate quantization parameter and >> do the smart bit allocation to set the frame maximum bitrate >> level as per the Bitrate value configured. >> --- >> drivers/media/platform/qcom/iris/iris_ctrls.c | 2 + >> .../platform/qcom/iris/iris_hfi_gen1_defines.h | 1 + >> .../media/platform/qcom/iris/iris_platform_gen1.c | 9 +- >> .../platform/qcom/iris/iris_platform_sc7280.h | 202 +++++++++++++++++++++ > > Is this really only available on 7280? > > Konrad Yes Konrad, in this series we enable V4L2_MPEG_VIDEO_BITRATE_MODE_MBR only for SC7280 because currently, we have added the support only for low tier chipset. MBR rate control aims to improve the compression efficiency of encoder for static and low motion scenes for extremely low bitrate use-case. Thanks, Sachin
Le lundi 16 mars 2026 à 11:52 +0530, Sachin Kumar Garg a écrit : > > > On 2/13/2026 3:24 PM, Konrad Dybcio wrote: > > On 2/13/26 7:04 AM, Sachin Kumar Garg wrote: > > > Introduce V4L2_MPEG_VIDEO_BITRATE_MODE_MBR rate control to Encoder. > > > Encoder will choose appropriate quantization parameter and > > > do the smart bit allocation to set the frame maximum bitrate > > > level as per the Bitrate value configured. > > > --- > > > drivers/media/platform/qcom/iris/iris_ctrls.c | 2 + > > > .../platform/qcom/iris/iris_hfi_gen1_defines.h | 1 + > > > .../media/platform/qcom/iris/iris_platform_gen1.c | 9 +- > > > .../platform/qcom/iris/iris_platform_sc7280.h | 202 > > > +++++++++++++++++++++ > > > > Is this really only available on 7280? > > > > Konrad > > Yes Konrad, in this series we enable V4L2_MPEG_VIDEO_BITRATE_MODE_MBR > only for SC7280 because currently, we have added the support only for > low tier chipset. MBR rate control aims to improve the compression > efficiency of encoder for static and low motion scenes for extremely low > bitrate use-case. Without a spec definition, which constrained the implementations toward interoperability, this needs to be made vendor specific. That being said, even as vendor specific control, I think it deserves more documentation for your users. Nicolas
On Mon, Mar 16, 2026 at 01:37:21PM -0400, Nicolas Dufresne wrote: > Le lundi 16 mars 2026 à 11:52 +0530, Sachin Kumar Garg a écrit : > > > > > > On 2/13/2026 3:24 PM, Konrad Dybcio wrote: > > > On 2/13/26 7:04 AM, Sachin Kumar Garg wrote: > > > > Introduce V4L2_MPEG_VIDEO_BITRATE_MODE_MBR rate control to Encoder. > > > > Encoder will choose appropriate quantization parameter and > > > > do the smart bit allocation to set the frame maximum bitrate > > > > level as per the Bitrate value configured. > > > > --- > > > > drivers/media/platform/qcom/iris/iris_ctrls.c | 2 + > > > > .../platform/qcom/iris/iris_hfi_gen1_defines.h | 1 + > > > > .../media/platform/qcom/iris/iris_platform_gen1.c | 9 +- > > > > .../platform/qcom/iris/iris_platform_sc7280.h | 202 > > > > +++++++++++++++++++++ > > > > > > Is this really only available on 7280? > > > > > > Konrad > > > > Yes Konrad, in this series we enable V4L2_MPEG_VIDEO_BITRATE_MODE_MBR > > only for SC7280 because currently, we have added the support only for > > low tier chipset. MBR rate control aims to improve the compression > > efficiency of encoder for static and low motion scenes for extremely low > > bitrate use-case. > > Without a spec definition, which constrained the implementations toward > interoperability, this needs to be made vendor specific. That being said, even > as vendor specific control, I think it deserves more documentation for your > users. What kind of documentation would be a better fit for keeping this in the generic namespace? Frankly speaking, I think that the current documentation is too vendor-specific, it describe the particular algorithm, while the control seems to be more generic. However, I also feel that defining it as "Maximum Bitrate" might not be specific enough (nor would it show a difference from the CBR mode). -- With best wishes Dmitry
On 3/17/2026 12:17 AM, Dmitry Baryshkov wrote: > On Mon, Mar 16, 2026 at 01:37:21PM -0400, Nicolas Dufresne wrote: >> Le lundi 16 mars 2026 à 11:52 +0530, Sachin Kumar Garg a écrit : >>> >>> >>> On 2/13/2026 3:24 PM, Konrad Dybcio wrote: >>>> On 2/13/26 7:04 AM, Sachin Kumar Garg wrote: >>>>> Introduce V4L2_MPEG_VIDEO_BITRATE_MODE_MBR rate control to Encoder. >>>>> Encoder will choose appropriate quantization parameter and >>>>> do the smart bit allocation to set the frame maximum bitrate >>>>> level as per the Bitrate value configured. >>>>> --- >>>>> drivers/media/platform/qcom/iris/iris_ctrls.c | 2 + >>>>> .../platform/qcom/iris/iris_hfi_gen1_defines.h | 1 + >>>>> .../media/platform/qcom/iris/iris_platform_gen1.c | 9 +- >>>>> .../platform/qcom/iris/iris_platform_sc7280.h | 202 >>>>> +++++++++++++++++++++ >>>> >>>> Is this really only available on 7280? >>>> >>>> Konrad >>> >>> Yes Konrad, in this series we enable V4L2_MPEG_VIDEO_BITRATE_MODE_MBR >>> only for SC7280 because currently, we have added the support only for >>> low tier chipset. MBR rate control aims to improve the compression >>> efficiency of encoder for static and low motion scenes for extremely low >>> bitrate use-case. >> >> Without a spec definition, which constrained the implementations toward >> interoperability, this needs to be made vendor specific. That being said, even >> as vendor specific control, I think it deserves more documentation for your >> users. > > What kind of documentation would be a better fit for keeping this in the > generic namespace? Frankly speaking, I think that the current > documentation is too vendor-specific, it describe the particular > algorithm, while the control seems to be more generic. However, I also > feel that defining it as "Maximum Bitrate" might not be specific enough > (nor would it show a difference from the CBR mode). > > Thanks for the suggestion. I understand that this functionality is vendor-specific and should not be exposed via a generic control. Would it be acceptable to convert this into a vendor-specific control (for example, V4L2_MPEG_VIDEO_BITRATE_MODE_QCOM_MBR) and update the documentation accordingly? Please let me know if this aligns with upstream expectations, or can you please suggest if there is any other preferred approach for adding vendor-specific controls in this case. Thanks, Sachin
© 2016 - 2026 Red Hat, Inc.