From: Benjamin Gaignard <benjamin.gaignard@collabora.com>
To: mchehab@kernel.org, ezequiel@vanguardiasur.com.ar,
p.zabel@pengutronix.de, gregkh@linuxfoundation.org,
mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org,
jernej.skrabec@gmail.com, jonas@kwiboo.se, nicolas@ndufresne.ca
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-staging@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, kernel@collabora.com,
knaerzche@gmail.com, jc@kynesim.co.uk,
Benjamin Gaignard <benjamin.gaignard@collabora.com>
Subject: [PATCH v3 13/14] media: uapi: HEVC: fix padding in v4l2 control structures
Date: Fri, 25 Feb 2022 17:45:59 +0100 [thread overview]
Message-ID: <20220225164600.1044663-14-benjamin.gaignard@collabora.com> (raw)
In-Reply-To: <20220225164600.1044663-1-benjamin.gaignard@collabora.com>
Fix padding where needed to remove holes and stay align on cache boundaries
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
---
.../userspace-api/media/v4l/ext-ctrls-codec.rst | 6 +++---
drivers/media/v4l2-core/v4l2-ctrls-core.c | 1 -
include/media/hevc-ctrls.h | 15 +++++++++------
3 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
index 71f7dc1c1ccd..00fa815cb5f8 100644
--- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
+++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
@@ -3423,9 +3423,6 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
* - __u8
- ``num_active_dpb_entries``
- The number of entries in ``dpb``.
- * - struct :c:type:`v4l2_hevc_dpb_entry`
- - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
- - The decoded picture buffer, for meta-data about reference frames.
* - __u8
- ``num_poc_st_curr_before``
- The number of reference pictures in the short-term set that come before
@@ -3449,6 +3446,9 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
- ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
- PocLtCurr as described in section 8.3.2 "Decoding process for reference
picture set": provides the index of the long term references in DPB array.
+ * - struct :c:type:`v4l2_hevc_dpb_entry`
+ - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
+ - The decoded picture buffer, for meta-data about reference frames.
* - __u64
- ``flags``
- See :ref:`Decode Parameters Flags <hevc_decode_params_flags>`
diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c b/drivers/media/v4l2-core/v4l2-ctrls-core.c
index 694de414f545..eb1de4f699d0 100644
--- a/drivers/media/v4l2-core/v4l2-ctrls-core.c
+++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c
@@ -819,7 +819,6 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx,
case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS:
p_hevc_slice_params = p;
- zero_padding(p_hevc_slice_params->pred_weight_table);
zero_padding(*p_hevc_slice_params);
break;
diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h
index f29298c8c2f8..6bffcb2c8a1d 100644
--- a/include/media/hevc-ctrls.h
+++ b/include/media/hevc-ctrls.h
@@ -133,7 +133,9 @@ struct v4l2_ctrl_hevc_sps {
__u8 chroma_format_idc;
__u8 sps_max_sub_layers_minus1;
+ __u8 padding[6];
__u64 flags;
+ __u8 reserved[24];
};
#define V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED (1ULL << 0)
@@ -210,9 +212,10 @@ struct v4l2_ctrl_hevc_pps {
__s8 pps_beta_offset_div2;
__s8 pps_tc_offset_div2;
__u8 log2_parallel_merge_level_minus2;
+ __u8 padding[9];
- __u8 padding[4];
__u64 flags;
+ __u8 reserved[56];
};
#define V4L2_HEVC_DPB_ENTRY_LONG_TERM_REFERENCE 0x01
@@ -271,8 +274,6 @@ struct v4l2_hevc_pred_weight_table {
__s8 delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
__s8 chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2];
- __u8 padding[6];
-
__u8 luma_log2_weight_denom;
__s8 delta_chroma_log2_weight_denom;
};
@@ -363,18 +364,20 @@ struct v4l2_ctrl_hevc_slice_params {
/* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture timing SEI message */
__u8 pic_struct;
+ __u8 reserved;
/* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */
__u32 slice_segment_addr;
__u8 ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
__u8 ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
__u16 short_term_ref_pic_set_size;
__u16 long_term_ref_pic_set_size;
- __u8 padding;
/* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */
struct v4l2_hevc_pred_weight_table pred_weight_table;
+ __u16 reserved1;
__u64 flags;
+ __u8 padding[48];
};
#define V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC 0x1
@@ -386,7 +389,6 @@ struct v4l2_ctrl_hevc_slice_params {
*
* @pic_order_cnt_val: picture order count
* @num_active_dpb_entries: the number of entries in dpb
- * @dpb: the decoded picture buffer, for meta-data about reference frames
* @num_poc_st_curr_before: the number of reference pictures in the short-term
* set that come before the current frame
* @num_poc_st_curr_after: the number of reference pictures in the short-term
@@ -397,18 +399,19 @@ struct v4l2_ctrl_hevc_slice_params {
* @poc_st_curr_after: provides the index of the short term after references
* in DPB array
* @poc_lt_curr: provides the index of the long term references in DPB array
+ * @dpb: the decoded picture buffer, for meta-data about reference frames
* @flags: see V4L2_HEVC_DECODE_PARAM_FLAG_{}
*/
struct v4l2_ctrl_hevc_decode_params {
__s32 pic_order_cnt_val;
__u8 num_active_dpb_entries;
- struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
__u8 num_poc_st_curr_before;
__u8 num_poc_st_curr_after;
__u8 num_poc_lt_curr;
__u8 poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
__u8 poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
__u8 poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
+ struct v4l2_hevc_dpb_entry dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
__u64 flags;
};
--
2.32.0
next prev parent reply other threads:[~2022-02-25 16:49 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-25 16:45 [PATCH v3 00/14] Move HEVC stateless controls out of staging Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 01/14] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 02/14] v4l2-ctrls: add support for dynamically allocated arrays Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 03/14] vivid: add dynamic array test control Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 04/14] media: uapi: HEVC: Add missing fields in HEVC controls Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 05/14] media: uapi: HEVC: Rename HEVC stateless controls with STATELESS prefix Benjamin Gaignard
2022-02-25 22:19 ` Jernej Škrabec
2022-02-25 16:45 ` [PATCH v3 06/14] media: uapi: HEVC: Add document uAPI structure Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 07/14] media: uapi: HEVC: Define V4L2_CID_STATELESS_HEVC_SLICE_PARAMS as a dynamic array Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 08/14] media: uapi: Move parsed HEVC pixel format out of staging Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 09/14] media: uapi: Add V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSET control Benjamin Gaignard
2022-02-25 19:30 ` Jernej Škrabec
2022-02-26 17:59 ` Jernej Škrabec
2022-02-26 18:17 ` Jernej Škrabec
2022-02-28 9:47 ` John Cox
2022-02-28 10:24 ` Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 10/14] media: uapi: Move the HEVC stateless control type out of staging Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 11/14] media: controls: Log HEVC stateless control in .std_log Benjamin Gaignard
2022-02-25 16:45 ` [PATCH v3 12/14] media: uapi: Create a dedicated header for Hantro control Benjamin Gaignard
2022-02-25 19:16 ` Jernej Škrabec
2022-02-25 16:45 ` Benjamin Gaignard [this message]
2022-02-25 16:46 ` [PATCH v3 14/14] media: uapi: move HEVC stateless controls out of staging Benjamin Gaignard
2022-02-25 19:33 ` [PATCH v3 00/14] Move " Jernej Škrabec
2022-02-26 22:25 ` Adam Ford
2022-02-28 10:13 ` Benjamin Gaignard
2022-03-03 1:23 ` Adam Ford
2022-03-03 10:13 ` Benjamin Gaignard
2022-03-04 12:59 ` Adam Ford
2022-03-04 13:03 ` Benjamin Gaignard
2022-03-04 22:46 ` Adam Ford
2022-03-07 8:49 ` Benjamin Gaignard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220225164600.1044663-14-benjamin.gaignard@collabora.com \
--to=benjamin.gaignard@collabora.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=gregkh@linuxfoundation.org \
--cc=jc@kynesim.co.uk \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=kernel@collabora.com \
--cc=knaerzche@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux-sunxi@lists.linux.dev \
--cc=mchehab@kernel.org \
--cc=mripard@kernel.org \
--cc=nicolas@ndufresne.ca \
--cc=p.zabel@pengutronix.de \
--cc=paul.kocialkowski@bootlin.com \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).