From nobody Thu Apr 2 20:28:27 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 724A8275870 for ; Fri, 13 Feb 2026 06:05:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770962704; cv=none; b=G1qk349EfxORV7ikx1JYruLfnxuwc/6gc8oRoDFetvD8MvpFVNnigUK3F5aGPFIa7Gylzi8qPg83AtZeggztRv/Xb5Yof4NOdcZCu515/ERL6imA+k3HFduw4rd9ZltqodUYCOGCashOtviWq9dmEXSlkOTL+PSjhc7J5g30y/Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770962704; c=relaxed/simple; bh=/pPAVN19I+kSbAJQbNMJlUn1ZCjEj0PufiLWfMayerY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ify7o9pYfCheOxw/9SZlKhm7roiu1bg5oB01e20mn7kV5bJ7zIOH3Zp4uvGdDzQ/lCSZ3DEg+TowEPOIgSsY9DstZWrvAMqaZSeM7xO2nMkWRArZECwGpGztu9p1N1BURz6ONkRjmTt5Cyiz2CLs77Ap0N/snq4VBdQrQC2x5jM= 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=hRjZwBug; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZCqHyYUt; arc=none smtp.client-ip=205.220.180.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="hRjZwBug"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZCqHyYUt" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61D0Sgr0723667 for ; Fri, 13 Feb 2026 06:05:02 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= 9TgdFreKgmH8AIWaUnTjY7kGZXik7SmdTvwCYOSWci8=; b=hRjZwBugzX1DG/sh g24O40THFNT9qG6fvZ0Rj5gx3YAY+q/ghTnM+oGsgH1Zujl6fhFz3XO6We7Nnmm7 7abs29TIqop8VLnTlYISb/lyRZgyDDXJobIbPN+STjDsNYrksFYv86on+vUCjj5x SU65/2NCDgjuJaAUslW1Iexglx8Qr09HoaOQPAHUsqMT3iRgmK4VtEghqyKylv6R gQqqCHQfjz4SHj8/BTUh427k1/+C0OoNnkiz5cQPjBvqOvau8qe1OPZHh2S+GE4o XM+Iz3XC4dSzK4Lnad414HlPy9OJzXDPZXUEop+ETzQr0FtF8JcqG6VuRAp0jben xE/Z8A== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c9cyabt33-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 13 Feb 2026 06:05:01 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c6de18907a0so398868a12.1 for ; Thu, 12 Feb 2026 22:05:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770962701; x=1771567501; 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=9TgdFreKgmH8AIWaUnTjY7kGZXik7SmdTvwCYOSWci8=; b=ZCqHyYUtweo7j5aclSlNDCohcoEtbdsLc/iysQkJt2elaUCw9FkYndfGvDHVCF3hSt fzcn8lXhlI6ieuCE5TOL4s/lZWwOiSBozQEnn+Hhvl6nehIBGZsa5Ypz1vIfXTuaamcv 24w3sjQnuujhxdhKhaPYTaCN5ypONRqkY1hk94iPbdmErDweAh+27cKv1OwFfAqNa1DD v3kG3q62mmpOWEdLRGwyE7APXi2ovonm/6A4j0jDZnbNQ+iJCU8QU8LVrOkG51um5xpB SyqepaTD31Qcb0yICcydpwmr1RS8bCIBBYZWnsP7Q0mv2MxyBydd5AAB5/dCYHhgO51W 5MQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770962701; x=1771567501; 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=9TgdFreKgmH8AIWaUnTjY7kGZXik7SmdTvwCYOSWci8=; b=IrrrO7GncwLcFBPuXgkAL76AUNkSw6AhIosi2g7RvyM+3gNaAHA60XMEFYtMiEK9ib a6S4S8ZkhjMJksPKO2vMYcp5xijJEcRkjxj19A99nqECfG3IA90OheXTF/ifAROj5n9s j+HEX+AlC6pZNoohD6zagYHgwhzwhppTwHAwAlITAwCxcO1z9x7TFZhkXOLBr2H2Thk4 YruShwpobjzLKyrZYSntxMDpZ0kOgjS6vhUrXP6GPyfMSLvLIKPk6dpW0ixdolddxpY5 ILyoSuv3cwK45fffXdiPmu1ZMvuCxWFvg2+p/K/gUaQjYGoBWoCt0cz+JJdeW68CmB8p mmiQ== X-Forwarded-Encrypted: i=1; AJvYcCUxWiolcV9+Eoo6aOje3byKDo/jeEbd46UYPK8FfUJNOv4TrKH5Cns4k2cHeIeyWQ//fluhmKheI9+hbLU=@vger.kernel.org X-Gm-Message-State: AOJu0YxjssJeMVBQXIeg6kBLaetipORJ4TvNBYjtRw5ZGTgXxkUU2zBp 1dOD7dlv4STk6o9uWDbRC3eCGk9LAPveGbvdkGfN4W4yS5f1hQLr+xqaFehg4H1yd7Rv0xGQwS/ tKtL7awSrNcJCpoTOSq2IGB6bS2Bks6pTerVPiFqJkF0vfTsnlYa4i4CWpD3q/vEgGxI= X-Gm-Gg: AZuq6aJi69mTOtnoFwAdBInbpdY2H/U1+BG9wLSRE6aNgC5Fe/djY469i4+HuOVX2OD y6l2McYbOIfLm8A/wAATDQOH/E+KhMwFjg95bQjfX75B8o7eOph51Uph3jEuh3+RjIUC5kTQEWl 3fMKFEa8pbunGy0l8FBBjfT+KwucbKPWxmJQED0pvr4RNerjBZaEgeJxmr45Yc41Ud6bduZmBUa ZQwQfXHMRnyP0Jys8VR8iLVUrkkyVUPSqMcjhbOlBQ/JGMoaptjFIsRYPwHJPezSuX5892364Gp ANiSo9jUk84I5zWPkcXecbQBnG2cQtdvac0R3k6SKPW1fwOyAJJMIdSj6y2TI18DxeAlq7ixqNC qMjUw0t1p/jitPBlGuJMiajuQBjGdewrYNs17kCdNWHV96LojMOPM X-Received: by 2002:a05:6a00:a218:b0:7b8:8bfa:5e1e with SMTP id d2e1a72fcca58-824c9444786mr1001684b3a.4.1770962700840; Thu, 12 Feb 2026 22:05:00 -0800 (PST) X-Received: by 2002:a05:6a00:a218:b0:7b8:8bfa:5e1e with SMTP id d2e1a72fcca58-824c9444786mr1001656b3a.4.1770962700216; Thu, 12 Feb 2026 22:05:00 -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.04.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Feb 2026 22:04:59 -0800 (PST) From: Sachin Kumar Garg Date: Fri, 13 Feb 2026 11:34:45 +0530 Subject: [PATCH 1/2] media: v4l2-ctrls: add encoder maximum bitrate control 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-1-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=2523; i=sachin.garg@oss.qualcomm.com; s=20260211; h=from:subject:message-id; bh=/pPAVN19I+kSbAJQbNMJlUn1ZCjEj0PufiLWfMayerY=; b=SoS7x5pKokJvfRXHL7J1rfNHwizbox+Xg166iBb/mFKRbjyndi3nkl2WVb4zfkEGu8bpq48UO hQgZa5e7wfUA55xP2+Bbw0QUweJa7BkBZDH/THb9CMDuAlO6Z50Lo7/ X-Developer-Key: i=sachin.garg@oss.qualcomm.com; a=ed25519; pk=KcRhp4CP9cR1V2tg6xSNRnB2STYaU0vVigdUF4Actu0= X-Proofpoint-GUID: 5D4Ropim6CSUCQAE1d4bKD1v0Ot8HHYf X-Authority-Analysis: v=2.4 cv=OrBCCi/t c=1 sm=1 tr=0 ts=698ebf0d cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==: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=EUspDBNiAAAA:8 a=g104nGXWCiFktQmSU6cA:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-ORIG-GUID: 5D4Ropim6CSUCQAE1d4bKD1v0Ot8HHYf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjEzMDA0MyBTYWx0ZWRfX2V6vP+ntB42U I7foRfOUQw7qPNC9FwYQuuZh/nCK0U3j87PpWiqhTTEG0LsnAqwiGLB8XzaLtJSPI1LDC2/K1wE EKOk1eUy0Y9VRi23v71oUMPKiR0z2WWuddNFM7sxsi6EJ0dkC+p7iCzS4G4ZXYRnee1QAJXBOGB 070lAnn2UlITgS0vrrpyCmEv5x13R9GYtrlk1INxYjKPuUUCUxAzph4bdLJ79k7GaJPL9L8Nuen emb+AKfBBNLCGtVHZe/rrT4z3M4l09jnUXTOET8/wrnOYfztqVpppEKjLZlFLiesLArq8ViTmgf Z9YbTlIlyMqzHnDIMmvr7z4C57hRyQlk8jYjZEEVAx5lPBkM0AP0DGBe6ufKI4bmtYwRk48j7kk bnVPi07jk697ksf3g8/O/7FadH57tDszNuaCwO9LYTd+xAnesw4Kxj5TMLqKqNKr5JF6Gdzus30 3qd4zBRDh6muCkQebOw== 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 adultscore=0 bulkscore=0 suspectscore=0 spamscore=0 impostorscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 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 for 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. Signed-off-by: Sachin Kumar Garg --- Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst | 7 +++++++ drivers/media/v4l2-core/v4l2-ctrls-defs.c | 1 + include/uapi/linux/v4l2-controls.h | 1 + 3 files changed, 9 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Do= cumentation/userspace-api/media/v4l/ext-ctrls-codec.rst index c8890cb5e00a..6b2dfabfc4fd 100644 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst @@ -577,6 +577,13 @@ enum v4l2_mpeg_video_bitrate_mode - - Constant bitrate * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ`` - Constant quality + * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_MBR`` + MBR Rate Control is a VBR Rate Control mode optimized for + surveillance video contents which has high temporal correlation + due to static camera positions. This Rate Control smartly identifies + key-frames in the scene, and allocates more bits to them to improve + the coding efficiency by taking advantage of high temporal + correlation in surveillance videos. =20 =20 =20 diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2= -core/v4l2-ctrls-defs.c index 551426c4cd01..b336171539a7 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c @@ -154,6 +154,7 @@ const char * const *v4l2_ctrl_get_menu(u32 id) "Variable Bitrate", "Constant Bitrate", "Constant Quality", + "Maximum Bitrate", NULL }; static const char * const mpeg_stream_type[] =3D { diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-c= ontrols.h index 68dd0c4e47b2..614fc2c4c81d 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h @@ -412,6 +412,7 @@ enum v4l2_mpeg_video_bitrate_mode { V4L2_MPEG_VIDEO_BITRATE_MODE_VBR =3D 0, V4L2_MPEG_VIDEO_BITRATE_MODE_CBR =3D 1, V4L2_MPEG_VIDEO_BITRATE_MODE_CQ =3D 2, + V4L2_MPEG_VIDEO_BITRATE_MODE_MBR =3D 3, }; #define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_CODEC_BASE+207) #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_CODEC_BASE+208) --=20 2.34.1 From nobody Thu Apr 2 20:28:27 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