From: Benjamin Gaignard <benjamin.gaignard@collabora.com> To: Hans Verkuil <hverkuil-cisco@xs4all.nl>, 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 Subject: Re: [RFC v2 5/8] media: uapi: Add fields needed for RKVDEC driver Date: Fri, 18 Feb 2022 13:19:34 +0100 [thread overview] Message-ID: <3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com> (raw) In-Reply-To: <b41ea0ec-b5c0-4ea5-9866-35a952c6a8b9@xs4all.nl> Le 18/02/2022 à 12:32, Hans Verkuil a écrit : > On 15/02/2022 12:01, Benjamin Gaignard wrote: >> RKVDEC driver requires additional fields to perform HEVC decoding. >> Even if the driver isn't mainlined yet WIP patches could be find here: >> https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/patches/linux/default/linux-2000-v4l2-wip-rkvdec-hevc.patch >> >> This patch only include the change in HEVC uAPI. >> >> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> >> --- >> .../userspace-api/media/v4l/ext-ctrls-codec.rst | 16 ++++++++++++++++ >> include/uapi/linux/v4l2-controls.h | 5 +++++ >> 2 files changed, 21 insertions(+) >> >> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> index 4f3b3ba8319f..3296ac3b9fca 100644 >> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> @@ -2661,6 +2661,13 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> :stub-columns: 0 >> :widths: 1 1 2 >> >> + * - __u8 >> + - ``video_parameter_set_id`` >> + - Identifies the VPS for reference by other syntax elements. >> + * - __u8 >> + - ``seq_parameter_set_id`` >> + - Provides an identifier for the SPS for reference by other syntax >> + elements. >> * - __u16 >> - ``pic_width_in_luma_samples`` >> - >> @@ -2800,6 +2807,9 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> :stub-columns: 0 >> :widths: 1 1 2 >> >> + * - __u8 >> + - ``pic_parameter_set_id`` >> + - Identifies the PPS for reference by other syntax elements. >> * - __u8 >> - ``num_extra_slice_header_bits`` >> - >> @@ -3026,6 +3036,12 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> * - __u8 >> - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` >> - The list of L1 reference elements as indices in the DPB. >> + * - __u16 >> + - ``short_term_ref_pic_set_size`` >> + - >> + * - __u16 >> + - ``long_term_ref_pic_set_size`` >> + - >> * - __u8 >> - ``padding`` >> - Applications and drivers must set this to zero. > Just to confirm: these additional fields are all from the H.265 spec, right? > They are not rkvdec specific. They are in H.265 spec section "7.4.3.2.2 Sequence parameter set range extension semantics": - num_short_term_ref_pic_sets specifies the number of st_ref_pic_set( ) syntax structures included in the SPS. The value of num_short_term_ref_pic_sets shall be in the range of 0 to 64, inclusive. - num_long_term_ref_pics_sps specifies the number of candidate long-term reference pictures that are specified in the SPS. The value of num_long_term_ref_pics_sps shall be in the range of 0 to 32, inclusive. I mention rkvdec because that it is the only driver to use they (as far I knows) Regards, Benjamin > > Regards, > > Hans > >> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h >> index 0e0ec2c61b80..b1a3dc05f02f 100644 >> --- a/include/uapi/linux/v4l2-controls.h >> +++ b/include/uapi/linux/v4l2-controls.h >> @@ -2341,6 +2341,8 @@ enum v4l2_stateless_hevc_start_code { >> >> struct v4l2_ctrl_hevc_sps { >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Sequence parameter set */ >> + __u8 video_parameter_set_id; >> + __u8 seq_parameter_set_id; >> __u16 pic_width_in_luma_samples; >> __u16 pic_height_in_luma_samples; >> __u8 bit_depth_luma_minus8; >> @@ -2393,6 +2395,7 @@ struct v4l2_ctrl_hevc_sps { >> >> struct v4l2_ctrl_hevc_pps { >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture parameter set */ >> + __u8 pic_parameter_set_id; >> __u8 num_extra_slice_header_bits; >> __u8 num_ref_idx_l0_default_active_minus1; >> __u8 num_ref_idx_l1_default_active_minus1; >> @@ -2487,6 +2490,8 @@ struct v4l2_ctrl_hevc_slice_params { >> __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; >> >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */ >> struct v4l2_hevc_pred_weight_table pred_weight_table;
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Gaignard <benjamin.gaignard@collabora.com> To: Hans Verkuil <hverkuil-cisco@xs4all.nl>, 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 Subject: Re: [RFC v2 5/8] media: uapi: Add fields needed for RKVDEC driver Date: Fri, 18 Feb 2022 13:19:34 +0100 [thread overview] Message-ID: <3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com> (raw) In-Reply-To: <b41ea0ec-b5c0-4ea5-9866-35a952c6a8b9@xs4all.nl> Le 18/02/2022 à 12:32, Hans Verkuil a écrit : > On 15/02/2022 12:01, Benjamin Gaignard wrote: >> RKVDEC driver requires additional fields to perform HEVC decoding. >> Even if the driver isn't mainlined yet WIP patches could be find here: >> https://github.com/LibreELEC/LibreELEC.tv/blob/master/projects/Rockchip/patches/linux/default/linux-2000-v4l2-wip-rkvdec-hevc.patch >> >> This patch only include the change in HEVC uAPI. >> >> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> >> --- >> .../userspace-api/media/v4l/ext-ctrls-codec.rst | 16 ++++++++++++++++ >> include/uapi/linux/v4l2-controls.h | 5 +++++ >> 2 files changed, 21 insertions(+) >> >> diff --git a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> index 4f3b3ba8319f..3296ac3b9fca 100644 >> --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst >> @@ -2661,6 +2661,13 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> :stub-columns: 0 >> :widths: 1 1 2 >> >> + * - __u8 >> + - ``video_parameter_set_id`` >> + - Identifies the VPS for reference by other syntax elements. >> + * - __u8 >> + - ``seq_parameter_set_id`` >> + - Provides an identifier for the SPS for reference by other syntax >> + elements. >> * - __u16 >> - ``pic_width_in_luma_samples`` >> - >> @@ -2800,6 +2807,9 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> :stub-columns: 0 >> :widths: 1 1 2 >> >> + * - __u8 >> + - ``pic_parameter_set_id`` >> + - Identifies the PPS for reference by other syntax elements. >> * - __u8 >> - ``num_extra_slice_header_bits`` >> - >> @@ -3026,6 +3036,12 @@ enum v4l2_mpeg_video_hevc_size_of_length_field - >> * - __u8 >> - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` >> - The list of L1 reference elements as indices in the DPB. >> + * - __u16 >> + - ``short_term_ref_pic_set_size`` >> + - >> + * - __u16 >> + - ``long_term_ref_pic_set_size`` >> + - >> * - __u8 >> - ``padding`` >> - Applications and drivers must set this to zero. > Just to confirm: these additional fields are all from the H.265 spec, right? > They are not rkvdec specific. They are in H.265 spec section "7.4.3.2.2 Sequence parameter set range extension semantics": - num_short_term_ref_pic_sets specifies the number of st_ref_pic_set( ) syntax structures included in the SPS. The value of num_short_term_ref_pic_sets shall be in the range of 0 to 64, inclusive. - num_long_term_ref_pics_sps specifies the number of candidate long-term reference pictures that are specified in the SPS. The value of num_long_term_ref_pics_sps shall be in the range of 0 to 32, inclusive. I mention rkvdec because that it is the only driver to use they (as far I knows) Regards, Benjamin > > Regards, > > Hans > >> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h >> index 0e0ec2c61b80..b1a3dc05f02f 100644 >> --- a/include/uapi/linux/v4l2-controls.h >> +++ b/include/uapi/linux/v4l2-controls.h >> @@ -2341,6 +2341,8 @@ enum v4l2_stateless_hevc_start_code { >> >> struct v4l2_ctrl_hevc_sps { >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Sequence parameter set */ >> + __u8 video_parameter_set_id; >> + __u8 seq_parameter_set_id; >> __u16 pic_width_in_luma_samples; >> __u16 pic_height_in_luma_samples; >> __u8 bit_depth_luma_minus8; >> @@ -2393,6 +2395,7 @@ struct v4l2_ctrl_hevc_sps { >> >> struct v4l2_ctrl_hevc_pps { >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Picture parameter set */ >> + __u8 pic_parameter_set_id; >> __u8 num_extra_slice_header_bits; >> __u8 num_ref_idx_l0_default_active_minus1; >> __u8 num_ref_idx_l1_default_active_minus1; >> @@ -2487,6 +2490,8 @@ struct v4l2_ctrl_hevc_slice_params { >> __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; >> >> /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */ >> struct v4l2_hevc_pred_weight_table pred_weight_table; _______________________________________________ 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-02-18 12:19 UTC|newest] Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-15 11:00 [RFC v2 0/8] Move HEVC stateless controls out of staging Benjamin Gaignard 2022-02-15 11:00 ` Benjamin Gaignard 2022-02-15 11:00 ` [RFC v2 1/8] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY Benjamin Gaignard 2022-02-15 11:00 ` Benjamin Gaignard 2022-02-15 11:00 ` [RFC v2 2/8] v4l2-ctrls: add support for dynamically allocated arrays Benjamin Gaignard 2022-02-15 11:00 ` Benjamin Gaignard 2022-02-15 11:00 ` [RFC v2 3/8] vivid: add dynamic array test control Benjamin Gaignard 2022-02-15 11:00 ` Benjamin Gaignard 2022-02-15 11:00 ` [RFC v2 4/8] media: uapi: Move HEVC stateless controls out of staging Benjamin Gaignard 2022-02-15 11:00 ` Benjamin Gaignard 2022-02-15 18:02 ` Sebastian Fricke 2022-02-15 18:02 ` Sebastian Fricke 2022-02-18 11:50 ` Hans Verkuil 2022-02-18 11:50 ` Hans Verkuil 2022-02-15 11:01 ` [RFC v2 5/8] media: uapi: Add fields needed for RKVDEC driver Benjamin Gaignard 2022-02-15 11:01 ` Benjamin Gaignard 2022-02-18 11:32 ` Hans Verkuil 2022-02-18 11:32 ` Hans Verkuil 2022-02-18 12:19 ` Benjamin Gaignard [this message] 2022-02-18 12:19 ` Benjamin Gaignard 2022-02-18 12:22 ` Hans Verkuil 2022-02-18 12:22 ` Hans Verkuil 2022-02-18 12:30 ` Benjamin Gaignard 2022-02-18 12:30 ` Benjamin Gaignard 2022-02-18 12:32 ` Hans Verkuil 2022-02-18 12:32 ` Hans Verkuil 2022-02-15 11:01 ` [RFC v2 6/8] media: uapi: Remove bit_size field from v4l2_ctrl_hevc_slice_params Benjamin Gaignard 2022-02-15 11:01 ` Benjamin Gaignard 2022-02-15 14:17 ` John Cox 2022-02-15 14:17 ` John Cox 2022-02-15 14:35 ` Benjamin Gaignard 2022-02-15 14:35 ` Benjamin Gaignard 2022-02-15 14:50 ` John Cox 2022-02-15 14:50 ` John Cox 2022-02-15 14:57 ` Benjamin Gaignard 2022-02-15 14:57 ` Benjamin Gaignard 2022-02-15 15:28 ` Nicolas Dufresne 2022-02-15 15:28 ` Nicolas Dufresne 2022-02-15 16:00 ` John Cox 2022-02-15 16:00 ` John Cox 2022-02-15 16:11 ` Jernej Škrabec 2022-02-15 16:11 ` Jernej Škrabec 2022-02-15 16:31 ` John Cox 2022-02-15 16:31 ` John Cox 2022-02-15 20:27 ` Jernej Škrabec 2022-02-15 20:27 ` Jernej Škrabec 2022-02-16 10:38 ` John Cox 2022-02-16 10:38 ` John Cox 2022-02-15 11:01 ` [RFC v2 7/8] media: uapi: Add V4L2_CID_STATELESS_HEVC_ENTRY_POINT_OFFSET control Benjamin Gaignard 2022-02-15 11:01 ` Benjamin Gaignard 2022-02-16 10:54 ` John Cox 2022-02-16 10:54 ` John Cox 2022-02-16 17:19 ` Benjamin Gaignard 2022-02-16 17:19 ` Benjamin Gaignard 2022-02-16 17:35 ` John Cox 2022-02-16 17:35 ` John Cox 2022-02-15 11:01 ` [RFC v2 8/8] media: uapi: Change data_bit_offset definition Benjamin Gaignard 2022-02-15 11:01 ` Benjamin Gaignard 2022-02-15 13:01 ` [RFC v2 0/8] Move HEVC stateless controls out of staging Sebastian Fricke 2022-02-15 13:01 ` Sebastian Fricke 2022-02-15 13:24 ` Benjamin Gaignard 2022-02-15 13:24 ` Benjamin Gaignard 2022-02-15 16:14 ` Jernej Škrabec 2022-02-15 16:14 ` Jernej Škrabec 2022-02-18 9:59 ` Hans Verkuil 2022-02-18 9:59 ` Hans Verkuil 2022-02-18 10:54 ` Benjamin Gaignard 2022-02-18 10:54 ` Benjamin Gaignard 2022-02-18 11:05 ` Hans Verkuil 2022-02-18 11:05 ` Hans Verkuil
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=3973e1f8-665a-c2d1-d493-19f66d307b88@collabora.com \ --to=benjamin.gaignard@collabora.com \ --cc=ezequiel@vanguardiasur.com.ar \ --cc=gregkh@linuxfoundation.org \ --cc=hverkuil-cisco@xs4all.nl \ --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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.