From: "Jernej Škrabec" <jernej.skrabec@gmail.com>
To: mchehab@kernel.org, hverkuil@xs4all.nl,
ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de,
gregkh@linuxfoundation.org, mripard@kernel.org,
paul.kocialkowski@bootlin.com, wens@csie.org,
samuel@sholland.org, nicolas.dufresne@collabora.com,
andrzej.p@collabora.com,
Benjamin Gaignard <benjamin.gaignard@collabora.com>
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org,
linux-staging@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, kernel@collabora.com,
Benjamin Gaignard <benjamin.gaignard@collabora.com>
Subject: Re: [PATCH v6 16/17] media: uapi: Change data_bit_offset definition
Date: Sun, 29 May 2022 08:45:57 +0200 [thread overview]
Message-ID: <3175529.44csPzL39Z@kista> (raw)
In-Reply-To: <20220527143134.3360174-17-benjamin.gaignard@collabora.com>
Dne petek, 27. maj 2022 ob 16:31:33 CEST je Benjamin Gaignard napisal(a):
> 'F.7.3.6.1 General slice segment header syntax' section of HEVC
> specification describes that a slice header always end aligned on
> byte boundary, therefore we only need to provide the data offset in bytes.
>
> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> ---
> Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst | 4 ++--
> drivers/staging/media/sunxi/cedrus/cedrus_h265.c | 2 +-
> include/media/hevc-ctrls.h | 4 ++--
> 3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/
Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
> index 48a8825a001b..37079581c661 100644
> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
> @@ -3008,8 +3008,8 @@ enum v4l2_mpeg_video_hevc_size_of_length_field -
> - ``bit_size``
> - Size (in bits) of the current slice data.
> * - __u32
> - - ``data_bit_offset``
> - - Offset (in bits) to the video data in the current slice data.
> + - ``data_byte_offset``
> + - Offset (in bytes) to the video data in the current slice data.
> * - __u32
> - ``num_entry_point_offsets``
> - Specifies the number of entry point offset syntax elements in the
slice header.
> diff --git a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c b/drivers/
staging/media/sunxi/cedrus/cedrus_h265.c
> index 411601975124..835454239f73 100644
> --- a/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
> +++ b/drivers/staging/media/sunxi/cedrus/cedrus_h265.c
> @@ -405,7 +405,7 @@ static void cedrus_h265_setup(struct cedrus_ctx *ctx,
> /* Initialize bitstream access. */
> cedrus_write(dev, VE_DEC_H265_TRIGGER,
VE_DEC_H265_TRIGGER_INIT_SWDEC);
>
> - cedrus_h265_skip_bits(dev, slice_params->data_bit_offset);
> + cedrus_h265_skip_bits(dev, slice_params->data_byte_offset * 8);
While it's true that actual data starts on 8-bit aligned address, Cedrus for
some reason needs offset which points at the end of the header, before
alignment. There is very simple way to determine that, but unfortunately this
means reading source buffer.
In short, above code won't work. I'll provide a fix.
Best regards,
Jernej
>
> /* Bitstream parameters. */
>
> diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h
> index 9abca1a75bd4..936ff693967b 100644
> --- a/include/media/hevc-ctrls.h
> +++ b/include/media/hevc-ctrls.h
> @@ -312,7 +312,7 @@ struct v4l2_hevc_pred_weight_table {
> * V4L2_CTRL_FLAG_DYNAMIC_ARRAY flag must be set when using it.
> *
> * @bit_size: size (in bits) of the current slice data
> - * @data_bit_offset: offset (in bits) to the video data in the current slice
data
> + * @data_byte_offset: offset (in bytes) to the video data in the current
slice data
> * @num_entry_point_offsets: specifies the number of entry point offset syntax
> * elements in the slice header.
> * @nal_unit_type: specifies the coding type of the slice (B, P or I)
> @@ -356,7 +356,7 @@ struct v4l2_hevc_pred_weight_table {
> */
> struct v4l2_ctrl_hevc_slice_params {
> __u32 bit_size;
> - __u32 data_bit_offset;
> + __u32 data_byte_offset;
> __u32 num_entry_point_offsets;
> /* ISO/IEC 23008-2, ITU-T Rec. H.265: NAL unit header */
> __u8 nal_unit_type;
> --
> 2.32.0
>
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-05-29 6:47 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-27 14:31 [PATCH v6 00/17] Move HEVC stateless controls out of staging Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 01/17] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 02/17] v4l2-ctrls: add support for dynamically allocated arrays Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 03/17] vivid: add dynamic array test control Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 04/17] media: uapi: HEVC: Add missing fields in HEVC controls Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 05/17] media: uapi: HEVC: Rename HEVC stateless controls with STATELESS prefix Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 06/17] media: uapi: HEVC: Change pic_order_cnt definition in v4l2_hevc_dpb_entry Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 07/17] media: uapi: HEVC: Add SEI pic struct flags Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 08/17] media: uapi: HEVC: Add documentation to uAPI structure Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 09/17] media: uapi: HEVC: Define V4L2_CID_STATELESS_HEVC_SLICE_PARAMS as a dynamic array Benjamin Gaignard
2022-05-29 9:19 ` Jernej Škrabec
2022-06-01 15:43 ` Jernej Škrabec
2022-06-01 16:02 ` Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 10/17] media: uapi: Move parsed HEVC pixel format out of staging Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 11/17] media: uapi: Add V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSETS control Benjamin Gaignard
2022-05-29 6:40 ` Jernej Škrabec
2022-05-30 9:18 ` Hans Verkuil
2022-05-30 13:49 ` Hans Verkuil
2022-05-30 21:24 ` Jernej Škrabec
2022-05-31 6:58 ` Benjamin Gaignard
2022-05-31 18:20 ` Jernej Škrabec
2022-06-01 16:20 ` Nicolas Dufresne
2022-06-01 16:35 ` Jernej Škrabec
2022-06-01 17:07 ` Nicolas Dufresne
2022-06-10 14:08 ` John Cox
2022-05-27 14:31 ` [PATCH v6 12/17] media: uapi: Move the HEVC stateless control type out of staging Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 13/17] media: controls: Log HEVC stateless control in .std_log Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 14/17] media: hantro: Stop using Hantro dedicated control Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 15/17] media: uapi: HEVC: fix padding in v4l2 control structures Benjamin Gaignard
2022-05-27 14:31 ` [PATCH v6 16/17] media: uapi: Change data_bit_offset definition Benjamin Gaignard
2022-05-29 6:45 ` Jernej Škrabec [this message]
2022-06-01 16:17 ` Jernej Škrabec
2022-06-01 16:33 ` Benjamin Gaignard
2022-06-12 20:40 ` Jernej Škrabec
2022-06-13 18:17 ` Jernej Škrabec
2022-06-10 14:00 ` [PATCH v6 00/17] Move HEVC stateless controls out of staging John Cox
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=3175529.44csPzL39Z@kista \
--to=jernej.skrabec@gmail.com \
--cc=andrzej.p@collabora.com \
--cc=benjamin.gaignard@collabora.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=gregkh@linuxfoundation.org \
--cc=hverkuil@xs4all.nl \
--cc=kernel@collabora.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-staging@lists.linux.dev \
--cc=linux-sunxi@lists.linux.dev \
--cc=mchehab@kernel.org \
--cc=mripard@kernel.org \
--cc=nicolas.dufresne@collabora.com \
--cc=p.zabel@pengutronix.de \
--cc=paul.kocialkowski@bootlin.com \
--cc=samuel@sholland.org \
--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).