lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250325213303.826925-3-detlev.casanova@collabora.com>
Date: Tue, 25 Mar 2025 17:22:18 -0400
From: Detlev Casanova <detlev.casanova@...labora.com>
To: linux-kernel@...r.kernel.org
Cc: Ezequiel Garcia <ezequiel@...guardiasur.com.ar>,
	Mauro Carvalho Chehab <mchehab@...nel.org>,
	Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk+dt@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>,
	Heiko Stuebner <heiko@...ech.de>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Hans Verkuil <hverkuil@...all.nl>,
	Nicolas Dufresne <nicolas.dufresne@...labora.com>,
	Andrzej Pietrasiewicz <andrzej.p@...labora.com>,
	Jonas Karlman <jonas@...boo.se>,
	Sebastian Reichel <sebastian.reichel@...labora.com>,
	Niklas Cassel <cassel@...nel.org>,
	Alexey Charkov <alchark@...il.com>,
	Dragan Simic <dsimic@...jaro.org>,
	Jianfeng Liu <liujianfeng1994@...il.com>,
	Detlev Casanova <detlev.casanova@...labora.com>,
	Jacopo Mondi <jacopo.mondi@...asonboard.com>,
	Sakari Ailus <sakari.ailus@...ux.intel.com>,
	Kieran Bingham <kieran.bingham@...asonboard.com>,
	Laurent Pinchart <laurent.pinchart@...asonboard.com>,
	Umang Jain <umang.jain@...asonboard.com>,
	Naushir Patuck <naush@...pberrypi.com>,
	Jean-Michel Hautbois <jeanmichel.hautbois@...asonboard.com>,
	Dmitry Perchanov <dmitry.perchanov@...el.com>,
	Tomi Valkeinen <tomi.valkeinen@...asonboard.com>,
	linux-media@...r.kernel.org,
	linux-rockchip@...ts.infradead.org,
	devicetree@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org,
	linux-staging@...ts.linux.dev,
	kernel@...labora.com
Subject: [PATCH v4 2/6] media: v4l2-ctrls-core: Set frame_mbs_only_flag by default in h264 SPS

This flag is needed for drivers that have a minimum height lower
than 32 pixels.

This is because when the flag is not set, the height is halved, which
would make it lower than 16 pixels if min height is 16.

Setting this flag will keep the height at its value and have a valid
SPS.

Signed-off-by: Detlev Casanova <detlev.casanova@...labora.com>
---
 drivers/media/v4l2-core/v4l2-ctrls-core.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c
index eeab6a5eb7bac..b2343f051e5b9 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls-core.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c
@@ -111,6 +111,7 @@ static void std_init_compound(const struct v4l2_ctrl *ctrl, u32 idx,
 	struct v4l2_ctrl_vp9_frame *p_vp9_frame;
 	struct v4l2_ctrl_fwht_params *p_fwht_params;
 	struct v4l2_ctrl_h264_scaling_matrix *p_h264_scaling_matrix;
+	struct v4l2_ctrl_h264_sps *p_h264_sps;
 	struct v4l2_ctrl_av1_sequence *p_av1_sequence;
 	void *p = ptr.p + idx * ctrl->elem_size;
 
@@ -179,6 +180,18 @@ static void std_init_compound(const struct v4l2_ctrl *ctrl, u32 idx,
 		 */
 		memset(p_h264_scaling_matrix, 16, sizeof(*p_h264_scaling_matrix));
 		break;
+	case V4L2_CTRL_TYPE_H264_SPS:
+		p_h264_sps = p;
+		/*
+		 * Without V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY,
+		 * frame_mbs_only_flag set to 0 will translate to a minimum
+		 * height of 32 (see H.264 specification 7-8). Some driver may
+		 * have a minimum size lower than 32, which would fail
+		 * validation with the SPS value. Set this flag, so that there
+		 * is now doubling in the height, allowing a valid default.
+		 */
+		p_h264_sps->flags = V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY;
+		break;
 	}
 }
 
-- 
2.49.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ