Le mercredi 05 mai 2021 à 16:18 +0100, John Cox a écrit : > > The HEVC HANTRO driver needs to know the number of bits to skip at > > the beginning of the slice header. > > That is a hardware specific requirement so create a dedicated control > > for this purpose. > > > > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@xxxxxxxxxxxxx> > > --- > > .../userspace-api/media/drivers/hantro.rst | 19 +++++++++++++++++++ > > .../userspace-api/media/drivers/index.rst | 1 + > > include/media/hevc-ctrls.h | 13 +++++++++++++ > > 3 files changed, 33 insertions(+) > > create mode 100644 Documentation/userspace-api/media/drivers/hantro.rst > > > > diff --git a/Documentation/userspace-api/media/drivers/hantro.rst > > b/Documentation/userspace-api/media/drivers/hantro.rst > > new file mode 100644 > > index 000000000000..cd9754b4e005 > > --- /dev/null > > +++ b/Documentation/userspace-api/media/drivers/hantro.rst > > @@ -0,0 +1,19 @@ > > +.. SPDX-License-Identifier: GPL-2.0 > > + > > +Hantro video decoder driver > > +=========================== > > + > > +The Hantro video decoder driver implements the following driver-specific > > controls: > > + > > +``V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (integer)`` > > + Specifies to Hantro HEVC video decoder driver the number of data (in > > bits) to > > + skip in the slice segment header. > > + If non-IDR, the bits to be skipped go from syntax element > > "pic_output_flag" > > + to before syntax element "slice_temporal_mvp_enabled_flag". > > + If IDR, the skipped bits are just "pic_output_flag" > > + (separate_colour_plane_flag is not supported). > > What happens if it is a dependant_slice_segement or > output_flag_present_flag? Those flags are all dependant on > dependant_slice_segement being false. I'm guessing 0 but it maybe > should be documented. Zero indeed. > Likewise if output_flag_present_flag is false pic_output_flag will not > be coded, so maybe express it as "after slice_type" rather than "before > pic_output_flag"? Should work too. > > Regards > > John Cox > > > +.. note:: > > + > > + This control is not yet part of the public kernel API and > > + it is expected to change. > > diff --git a/Documentation/userspace-api/media/drivers/index.rst > > b/Documentation/userspace-api/media/drivers/index.rst > > index 1a9038f5f9fa..12e3c512d718 100644 > > --- a/Documentation/userspace-api/media/drivers/index.rst > > +++ b/Documentation/userspace-api/media/drivers/index.rst > > @@ -33,6 +33,7 @@ For more details see the file COPYING in the source > > distribution of Linux. > > > > ccs > > cx2341x-uapi > > + hantro > > imx-uapi > > max2175 > > meye-uapi > > diff --git a/include/media/hevc-ctrls.h b/include/media/hevc-ctrls.h > > index 8e0109eea454..b713eeed1915 100644 > > --- a/include/media/hevc-ctrls.h > > +++ b/include/media/hevc-ctrls.h > > @@ -224,4 +224,17 @@ struct v4l2_ctrl_hevc_decode_params { > > __u64 flags; > > }; > > > > +/* MPEG-class control IDs specific to the Hantro driver as defined by V4L2 > > */ > > +#define > > V4L2_CID_CODEC_HANTRO_BASE (V4L2_CTRL_CLASS_CODEC | 0x1200) > > +/* > > + * V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP - > > + * the number of data (in bits) to skip in the > > + * slice segment header. > > + * If non-IDR, the bits to be skipped go from syntax element > > "pic_output_flag" > > + * to before syntax element "slice_temporal_mvp_enabled_flag". > > + * If IDR, the skipped bits are just "pic_output_flag" > > + * (separate_colour_plane_flag is not supported). > > + */ > > +#define V4L2_CID_HANTRO_HEVC_SLICE_HEADER_SKIP (V4L2_CID_CODEC_HANTRO_BASE > > + 0) > > + > > #endif