From nobody Thu Apr 2 22:09:03 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5E725286D5E for ; Fri, 13 Feb 2026 06:05:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770962707; cv=none; b=LyzmktpQxC7nvC5cc4PznjIsUy8/6jE2z1QB8KOz0k+cym2j+e2MkP5sInHKfxuZmtJXbJtw1yKIJRjJg1zXzuS+MJ6PcUhjJcckBmNjq7oqxbAi5jTtJieqp0tXYpoL/GMLcIo7jJ3xMOyq6OBxQZLDSH1/YPeHVJ5lUe9g8ws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770962707; c=relaxed/simple; bh=ySNGbTePnk4va2FMeuQoXD6nEAhOChf7Q7nhI0WTzVM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t7XcDyyz1RkXH3niGCWh+qZU3VrTb0EqiNx1frDJUTbwYr72fwH2L6RlZTlnz/eVpVyJGIBxIbGUp/Tt+Mqp3pyXKCu/eHTulsvx604KO4uXgG4wN2VNbAP+K5q71q8ge5EakvDN56YafSE+nhBkUXgyn81ZQQqjan39mf9PBdc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=GIu2/Weh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BIQ/qJxs; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="GIu2/Weh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BIQ/qJxs" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61D2QVo12233285 for ; Fri, 13 Feb 2026 06:05:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 5rVgrXPBo1w7VpG7jZes9WHvYCqoFRDKvkKblghukdk=; b=GIu2/WehLrhgqvmA tuTsnhPGQfZAF4DmiFe5pBhYQ03SzkKcFD08fLILn7IATG4BeQaf4DcATNsk7Zc3 6M8UCGKFaCEuCQhrwtOMofFWYiTXSIZVvmrCWY85Bc+K7JdhXvmbDTzTW3zDD7/K ho7S8wnQh7fH7PCdBuI3YlbT+NYAeJ6A+BGOgPNRpw2UisAs7evwxEJzKZAvE0g8 bZheJYAhpB+kUnO02v++R2vmZJBlgZ5oTTvaXp2MREQCZ09n8eEa0v7bPnqJYjiF tq0x215hJFOH7aPw7cA0EwIXWwKmgA2ChS6jM3qxs8FnAl9Hmi8qblSYYBwRu2A3 EOnaXw== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9gbbk37g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 06:05:05 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8243a06b397so446130b3a.0 for ; Thu, 12 Feb 2026 22:05:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770962705; x=1771567505; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5rVgrXPBo1w7VpG7jZes9WHvYCqoFRDKvkKblghukdk=; b=BIQ/qJxslbpiYprojg/zP49/pS8YbBiQN3eU0UO2GCEFnnFfTWigHAAz3B0icFiOXq j30ocqcYjGD5Y2MrrVGczFfc58HKUbx82Kt8UhL8iPAChGCK0wRpk4Uc6EEy5LfQ7ALv rZwlgikjfULD9MSwwzZZG/O4SESZCK3x2cTkBAALkshKkrLbDoNFxz1eZDn2LV42VOij aaQsMnfIU21stvYB5Wx+J2xp8E97qX5b5StKsfxkndwTCZAwqn7MnPjYuhWMMG+iR+aS BONREoAR4X+PBQsVZAxhUzBWU0mSi6WaWFuULIviwm1Px9A2u5P+VdJSEE/LlAGHxZ5c XKog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770962705; x=1771567505; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5rVgrXPBo1w7VpG7jZes9WHvYCqoFRDKvkKblghukdk=; b=ebfD+Hez1+Ncykfu9sd7uo8yTf093wtlfo++CqaAlBLSl1zYjVTBFgPjMo3hDwUt7D 3fy4ZCklFFVhHqXE+a8vzvIUmaTnV/R2jPBKYdnam+iZwvAE3PQXYMtE4CDJqwuvlrG9 vbrip193LcVFq5RMWaF+5tX5aJJNNWDFNgIhSULgS3DuSZzkkfooBoQnazDrPO28egDr VDvvRwWFkM8kQEHXj+Ds9JHGaPOJ9p/CdZO6tyJ/K4Il8wzObY50JK6hnAlL3qLRrXfa 6xmh5DRIPNc76MKOFNEj1eyyE7xL1cOiNgRY1wkO5BITOuGRv3zAVSUT858hAFWNoELp HbyQ== X-Forwarded-Encrypted: i=1; AJvYcCXvxhJ86ejnV3N+1tRD7vQ5yHM+U3Xuoj37qZWTYAcHprx/JAPb/Rb+AWnJCKk3CvsI9pNHAdRYsjeCS64=@vger.kernel.org X-Gm-Message-State: AOJu0YxvDJPZTG7t+PW1YfIOlNodJNa2KgUfOk+v7guoGVEHrg3BF69C 8oZPAJ7h9qjyLlhTP4mxIqP5dMEqOOhTMAqBM5/bcx/hdlL4k9E6gNPQnoiHfNYIBxrnAhnyL1h ixLTurf+b1sR/olWnbutXcmieMgMyXm4FKWRkkzplYVcvlSJiqUlxFNEfSOlK7pzYZSA= X-Gm-Gg: AZuq6aKliUIXTwbC3QzjTStHoIW24JCLg6TpZXcmo3EhOBJIdQLKZj65GXsSFK0dZb1 vFglshcHHU+MOp2RIDj2w4aUTRCWBKpHuLv++eUAIMRH+UCKMBEGcL50DZpwZ64njY6kXxYPYX1 /sbbznnQjSW6rMUx3Velw/kCCJ/XcjYgRU5V/fGufG9OFh5O4Bq03L6dpZSxNv9zziR+/TDyr3k efuRns96Kj7SB24nGyvSzyD6TuQoQTyl892GnaKFXr/IDqF2HnegJLOjinVc5uPLPUNbZQBe/Sp /JOtPuqgSvf76o7SS4freQTfgAxc+Kpg7ZmJpMof9o3Q3pwBnmZWN8OQFznRcIYc2Dths667KAK +Pu+VV3oV11vNmC4jEzw2Y4SSDt2ByHGxEqHANfF8XifbXsJxKKxn X-Received: by 2002:a05:6a00:139d:b0:824:ae74:571f with SMTP id d2e1a72fcca58-824c963ecb8mr1134493b3a.40.1770962704480; Thu, 12 Feb 2026 22:05:04 -0800 (PST) X-Received: by 2002:a05:6a00:139d:b0:824:ae74:571f with SMTP id d2e1a72fcca58-824c963ecb8mr1134458b3a.40.1770962703915; Thu, 12 Feb 2026 22:05:03 -0800 (PST) Received: from hu-sachinku-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-824c6a2afeesm1342853b3a.2.2026.02.12.22.05.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 22:05:03 -0800 (PST) From: Sachin Kumar Garg Date: Fri, 13 Feb 2026 11:34:46 +0530 Subject: [PATCH 2/2] media: iris: add new rate control type MBR for encoder Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260213-b4-add_sc7280_mbr-v1-2-e8d95b4e4809@oss.qualcomm.com> References: <20260213-b4-add_sc7280_mbr-v1-0-e8d95b4e4809@oss.qualcomm.com> In-Reply-To: <20260213-b4-add_sc7280_mbr-v1-0-e8d95b4e4809@oss.qualcomm.com> To: Mauro Carvalho Chehab , Vikash Garodia , Dikshita Agarwal , Abhinav Kumar , Bryan O'Donoghue Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Sachin Kumar Garg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1770962693; l=10637; i=sachin.garg@oss.qualcomm.com; s=20260211; h=from:subject:message-id; bh=ySNGbTePnk4va2FMeuQoXD6nEAhOChf7Q7nhI0WTzVM=; b=zbu9l1HWv1IqnLW/TmEjtUyR6l+6Yn5vaHjf9fiBcB0dsobjYJ9RNge6Pw8Fhn/NvNVu8IXra 6O1D1NH20ADAH0UpHm+cC0E3RYFSK1i7f56kwM9NUC7gEgxCChx+UXQ X-Developer-Key: i=sachin.garg@oss.qualcomm.com; a=ed25519; pk=KcRhp4CP9cR1V2tg6xSNRnB2STYaU0vVigdUF4Actu0= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDA0MyBTYWx0ZWRfX6llHya9Yuutt 82BzTvwNAKdm/aC49lA8xDDzvab0V5hpxoGza2gKBj493muh9yqoLTF4l1qsYQsIej6/4Pe8JeN BZJ9+8WlIzKO+aa+SeJGsxiO07wD/bA1dlZ0bw4mZEnTU1EhFqpWqeBRcyQwvZ3gnXPjj+Qqtu7 AuQ/HFbMg0j3GeQaW+/ck998iMkwlffSwVYvjrIPHZusRiWbYXpYfKWyfZCnwuU5ICeKboKpCyF tqAY0KIc8yCQZ1YETILf5oTLmZla6pm/ehCmFP3JPTM03NYX1ghA+fkUCTiri/vQfJejJcNO9PN 8LJzgmfOjQbCfInkITqjp0X1rjQbHr6r1RhF5l161nPr59qUaPilXbZgcVSH50r2zCnyxusIyhs C4Pi6qst+0Rl8URgePa80HEM+IM6ggcr5m30x5y5AyuM3INoeoIEIYHR417oUSMOpiwS5HRzQbq rrWQTOMa/QQrkxkLKxQ== X-Authority-Analysis: v=2.4 cv=a849NESF c=1 sm=1 tr=0 ts=698ebf11 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=WvbiMNAvyKgqmwFEuVYA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-GUID: -RuvTl7zZL3pkyfyhNNbF7vcXNFoRqlk X-Proofpoint-ORIG-GUID: -RuvTl7zZL3pkyfyhNNbF7vcXNFoRqlk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-12_05,2026-02-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 malwarescore=0 phishscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 clxscore=1015 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602130043 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 =3D frame_skip ? HFI_RATE_CONTROL_CBR_VFR : HFI_RATE_CONTROL_CBR= _CFR; else if (bitrate_mode =3D=3D V4L2_MPEG_VIDEO_BITRATE_MODE_CQ) rc_mode =3D HFI_RATE_CONTROL_CQ; + else if (bitrate_mode =3D=3D V4L2_MPEG_VIDEO_BITRATE_MODE_MBR) + rc_mode =3D HFI_RATE_CONTROL_MBR; =20 inst->hfi_rc_type =3D rc_mode; =20 diff --git a/drivers/media/platform/qcom/iris/iris_hfi_gen1_defines.h b/dri= vers/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 =20 #define HFI_H264_ENTROPY_CAVLC 0x1 diff --git a/drivers/media/platform/qcom/iris/iris_platform_gen1.c b/driver= s/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 @@ =20 #include "iris_platform_sc7280.h" =20 -#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[] =3D { [IRIS_FMT_H264] =3D { .pixfmt =3D V4L2_PIX_FMT_H264, @@ -419,8 +414,8 @@ const struct iris_platform_data sc7280_data =3D { .inst_caps =3D &platform_inst_cap_sm8250, .inst_fw_caps_dec =3D inst_fw_cap_sm8250_dec, .inst_fw_caps_dec_size =3D ARRAY_SIZE(inst_fw_cap_sm8250_dec), - .inst_fw_caps_enc =3D inst_fw_cap_sm8250_enc, - .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_sm8250_enc), + .inst_fw_caps_enc =3D inst_fw_cap_sc7280_enc, + .inst_fw_caps_enc_size =3D ARRAY_SIZE(inst_fw_cap_sc7280_enc), .tz_cp_config_data =3D tz_cp_config_sm8250, .tz_cp_config_data_size =3D ARRAY_SIZE(tz_cp_config_sm8250), .hw_response_timeout =3D HW_RESPONSE_TIMEOUT_VALUE, diff --git a/drivers/media/platform/qcom/iris/iris_platform_sc7280.h b/driv= ers/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__ =20 +#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[] =3D { { ((3840 * 2160) / 256) * 60, 1896000, }, { ((3840 * 2160) / 256) * 30, 968000, }, @@ -28,4 +35,199 @@ static const char * const sc7280_opp_clk_table[] =3D { NULL, }; =20 +static const struct platform_inst_fw_cap inst_fw_cap_sc7280_enc[] =3D { + { + .cap_id =3D STAGE, + .min =3D STAGE_1, + .max =3D STAGE_2, + .step_or_mask =3D 1, + .value =3D STAGE_2, + .hfi_id =3D HFI_PROPERTY_PARAM_WORK_MODE, + .set =3D iris_set_stage, + }, + { + .cap_id =3D PROFILE_H264, + .min =3D V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE, + .max =3D V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH, + .step_or_mask =3D 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 =3D V4L2_MPEG_VIDEO_H264_PROFILE_HIGH, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D PROFILE_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .max =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10, + .step_or_mask =3D 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 =3D V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_H264, + .min =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .max =3D V4L2_MPEG_VIDEO_H264_LEVEL_5_1, + .step_or_mask =3D 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 =3D V4L2_MPEG_VIDEO_H264_LEVEL_1_0, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D LEVEL_HEVC, + .min =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .max =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2, + .step_or_mask =3D 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 =3D V4L2_MPEG_VIDEO_HEVC_LEVEL_1, + .hfi_id =3D HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_profile_level_gen1, + }, + { + .cap_id =3D HEADER_MODE, + .min =3D V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE, + .max =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE) | + BIT(V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME), + .value =3D V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_SYNC_FRAME_SEQUENCE_HEADER, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_header_mode_gen1, + }, + { + .cap_id =3D BITRATE, + .min =3D BITRATE_MIN, + .max =3D BITRATE_MAX, + .step_or_mask =3D BITRATE_STEP, + .value =3D BITRATE_DEFAULT, + .hfi_id =3D HFI_PROPERTY_CONFIG_VENC_TARGET_BITRATE, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_INPUT_PORT | + CAP_FLAG_DYNAMIC_ALLOWED, + .set =3D iris_set_bitrate, + }, + { + .cap_id =3D BITRATE_MODE, + .min =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .max =3D V4L2_MPEG_VIDEO_BITRATE_MODE_MBR, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_VBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) | + BIT(V4L2_MPEG_VIDEO_BITRATE_MODE_MBR), + .value =3D V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_RATE_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_bitrate_mode_gen1, + }, + { + .cap_id =3D FRAME_SKIP_MODE, + .min =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .max =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED) | + BIT(V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT), + .value =3D V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + }, + { + .cap_id =3D FRAME_RC_ENABLE, + .min =3D 0, + .max =3D 1, + .step_or_mask =3D 1, + .value =3D 1, + }, + { + .cap_id =3D GOP_SIZE, + .min =3D 0, + .max =3D (1 << 16) - 1, + .step_or_mask =3D 1, + .value =3D 30, + .set =3D iris_set_u32 + }, + { + .cap_id =3D ENTROPY_MODE, + .min =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .max =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC, + .step_or_mask =3D BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC) | + BIT(V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC), + .value =3D V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL, + .flags =3D CAP_FLAG_OUTPUT_PORT | CAP_FLAG_MENU, + .set =3D iris_set_entropy_mode_gen1, + }, + { + .cap_id =3D MIN_FRAME_QP_H264, + .min =3D MIN_QP_8BIT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MIN_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MIN_QP_8BIT, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_H264, + .min =3D MIN_QP_8BIT, + .max =3D MAX_QP, + .step_or_mask =3D 1, + .value =3D MAX_QP, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, + { + .cap_id =3D MAX_FRAME_QP_HEVC, + .min =3D MIN_QP_8BIT, + .max =3D MAX_QP_HEVC, + .step_or_mask =3D 1, + .value =3D MAX_QP_HEVC, + .hfi_id =3D HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE_V2, + .flags =3D CAP_FLAG_OUTPUT_PORT, + .set =3D iris_set_qp_range, + }, +}; + #endif --=20 2.34.1