]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: v4l2-ctrls: Fix H264 SEPARATE_COLOUR_PLANE check
authorJames Cowgill <james.cowgill@blaize.com>
Wed, 4 Jun 2025 14:38:48 +0000 (14:38 +0000)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 20 Jun 2025 11:20:17 +0000 (13:20 +0200)
The `separate_colour_plane_flag` element is only present in the SPS if
`chroma_format_idc == 3`, so the corresponding flag should be disabled
whenever that is not the case and not just on profiles where
`chroma_format_idc` is not present.

Fixes: b32e48503df0 ("media: controls: Validate H264 stateless controls")
Signed-off-by: James Cowgill <james.cowgill@blaize.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/v4l2-core/v4l2-ctrls-core.c

index 90d25329661ed7de336ad09fbae828a08f39c802..b45809a82f9a66c5fbcea764e6423e7d68a525de 100644 (file)
@@ -968,12 +968,12 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx,
 
                        p_h264_sps->flags &=
                                ~V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS;
-
-                       if (p_h264_sps->chroma_format_idc < 3)
-                               p_h264_sps->flags &=
-                                       ~V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE;
                }
 
+               if (p_h264_sps->chroma_format_idc < 3)
+                       p_h264_sps->flags &=
+                               ~V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE;
+
                if (p_h264_sps->flags & V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY)
                        p_h264_sps->flags &=
                                ~V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD;