bcm27xx: add support for linux v5.15
[openwrt/staging/chunkeey.git] / target / linux / bcm27xx / patches-5.15 / 950-0200-media-uapi-hevc-Add-segment-address-field.patch
1 From 8ed873d6e26bc706b0af3bef29f87e2975046222 Mon Sep 17 00:00:00 2001
2 From: Jernej Skrabec <jernej.skrabec@siol.net>
3 Date: Fri, 13 Dec 2019 17:04:27 +0100
4 Subject: [PATCH] media: uapi: hevc: Add segment address field
5
6 From https://patchwork.linuxtv.org/patch/60725/
7 Changes requested, but mainly docs.
8
9 If HEVC frame consists of multiple slices, segment address has to be
10 known in order to properly decode it.
11
12 Add segment address field to slice parameters.
13
14 Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
15 ---
16 .../userspace-api/media/v4l/ext-ctrls-codec.rst | 3 +++
17 include/media/hevc-ctrls.h | 9 +++++++--
18 2 files changed, 10 insertions(+), 2 deletions(-)
19
20 --- a/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
21 +++ b/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst
22 @@ -2961,6 +2961,9 @@ enum v4l2_mpeg_video_hevc_size_of_length
23 * - __u32
24 - ``data_bit_offset``
25 - Offset (in bits) to the video data in the current slice data.
26 + * - __u32
27 + - ``slice_segment_addr``
28 + -
29 * - __u8
30 - ``nal_unit_type``
31 -
32 --- a/include/media/hevc-ctrls.h
33 +++ b/include/media/hevc-ctrls.h
34 @@ -173,6 +173,10 @@ struct v4l2_ctrl_hevc_slice_params {
35 __u32 bit_size;
36 __u32 data_bit_offset;
37
38 + /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */
39 + __u32 slice_segment_addr;
40 + __u32 num_entry_point_offsets;
41 +
42 /* ISO/IEC 23008-2, ITU-T Rec. H.265: NAL unit header */
43 __u8 nal_unit_type;
44 __u8 nuh_temporal_id_plus1;
45 @@ -198,11 +202,12 @@ struct v4l2_ctrl_hevc_slice_params {
46 __u8 pic_struct;
47
48 /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */
49 - __u32 slice_segment_addr;
50 __u8 ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
51 __u8 ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX];
52
53 - __u8 padding;
54 + __u8 padding[5];
55 +
56 + __u32 entry_point_offset_minus1[256];
57
58 /* ISO/IEC 23008-2, ITU-T Rec. H.265: Weighted prediction parameter */
59 struct v4l2_hevc_pred_weight_table pred_weight_table;