They are no longer necessary there and have nothing to do with parameter
sets, so do not belong in hevc_ps.h.
This effectively reverts 4aaace8b25.
... | ... |
@@ -39,90 +39,6 @@ typedef struct ShortTermRPS { |
39 | 39 |
uint8_t used[32]; |
40 | 40 |
} ShortTermRPS; |
41 | 41 |
|
42 |
-typedef struct LongTermRPS { |
|
43 |
- int poc[32]; |
|
44 |
- uint8_t poc_msb_present[32]; |
|
45 |
- uint8_t used[32]; |
|
46 |
- uint8_t nb_refs; |
|
47 |
-} LongTermRPS; |
|
48 |
- |
|
49 |
-typedef struct SliceHeader { |
|
50 |
- unsigned int pps_id; |
|
51 |
- |
|
52 |
- ///< address (in raster order) of the first block in the current slice segment |
|
53 |
- unsigned int slice_segment_addr; |
|
54 |
- ///< address (in raster order) of the first block in the current slice |
|
55 |
- unsigned int slice_addr; |
|
56 |
- |
|
57 |
- enum HEVCSliceType slice_type; |
|
58 |
- |
|
59 |
- int pic_order_cnt_lsb; |
|
60 |
- |
|
61 |
- uint8_t first_slice_in_pic_flag; |
|
62 |
- uint8_t dependent_slice_segment_flag; |
|
63 |
- uint8_t pic_output_flag; |
|
64 |
- uint8_t colour_plane_id; |
|
65 |
- |
|
66 |
- ///< RPS coded in the slice header itself is stored here |
|
67 |
- int short_term_ref_pic_set_sps_flag; |
|
68 |
- int short_term_ref_pic_set_size; |
|
69 |
- ShortTermRPS slice_rps; |
|
70 |
- const ShortTermRPS *short_term_rps; |
|
71 |
- int long_term_ref_pic_set_size; |
|
72 |
- LongTermRPS long_term_rps; |
|
73 |
- unsigned int list_entry_lx[2][32]; |
|
74 |
- |
|
75 |
- uint8_t rpl_modification_flag[2]; |
|
76 |
- uint8_t no_output_of_prior_pics_flag; |
|
77 |
- uint8_t slice_temporal_mvp_enabled_flag; |
|
78 |
- |
|
79 |
- unsigned int nb_refs[2]; |
|
80 |
- |
|
81 |
- uint8_t slice_sample_adaptive_offset_flag[3]; |
|
82 |
- uint8_t mvd_l1_zero_flag; |
|
83 |
- |
|
84 |
- uint8_t cabac_init_flag; |
|
85 |
- uint8_t disable_deblocking_filter_flag; ///< slice_header_disable_deblocking_filter_flag |
|
86 |
- uint8_t slice_loop_filter_across_slices_enabled_flag; |
|
87 |
- uint8_t collocated_list; |
|
88 |
- |
|
89 |
- unsigned int collocated_ref_idx; |
|
90 |
- |
|
91 |
- int slice_qp_delta; |
|
92 |
- int slice_cb_qp_offset; |
|
93 |
- int slice_cr_qp_offset; |
|
94 |
- |
|
95 |
- uint8_t cu_chroma_qp_offset_enabled_flag; |
|
96 |
- |
|
97 |
- int beta_offset; ///< beta_offset_div2 * 2 |
|
98 |
- int tc_offset; ///< tc_offset_div2 * 2 |
|
99 |
- |
|
100 |
- unsigned int max_num_merge_cand; ///< 5 - 5_minus_max_num_merge_cand |
|
101 |
- |
|
102 |
- unsigned *entry_point_offset; |
|
103 |
- int * offset; |
|
104 |
- int * size; |
|
105 |
- int num_entry_point_offsets; |
|
106 |
- |
|
107 |
- int8_t slice_qp; |
|
108 |
- |
|
109 |
- uint8_t luma_log2_weight_denom; |
|
110 |
- int16_t chroma_log2_weight_denom; |
|
111 |
- |
|
112 |
- int16_t luma_weight_l0[16]; |
|
113 |
- int16_t chroma_weight_l0[16][2]; |
|
114 |
- int16_t chroma_weight_l1[16][2]; |
|
115 |
- int16_t luma_weight_l1[16]; |
|
116 |
- |
|
117 |
- int16_t luma_offset_l0[16]; |
|
118 |
- int16_t chroma_offset_l0[16][2]; |
|
119 |
- |
|
120 |
- int16_t luma_offset_l1[16]; |
|
121 |
- int16_t chroma_offset_l1[16][2]; |
|
122 |
- |
|
123 |
- int slice_ctb_addr_rs; |
|
124 |
-} SliceHeader; |
|
125 |
- |
|
126 | 42 |
typedef struct HEVCWindow { |
127 | 43 |
unsigned int left_offset; |
128 | 44 |
unsigned int right_offset; |
... | ... |
@@ -228,6 +228,13 @@ enum ScanType { |
228 | 228 |
SCAN_VERT, |
229 | 229 |
}; |
230 | 230 |
|
231 |
+typedef struct LongTermRPS { |
|
232 |
+ int poc[32]; |
|
233 |
+ uint8_t poc_msb_present[32]; |
|
234 |
+ uint8_t used[32]; |
|
235 |
+ uint8_t nb_refs; |
|
236 |
+} LongTermRPS; |
|
237 |
+ |
|
231 | 238 |
typedef struct RefPicList { |
232 | 239 |
struct HEVCFrame *ref[HEVC_MAX_REFS]; |
233 | 240 |
int list[HEVC_MAX_REFS]; |
... | ... |
@@ -239,6 +246,83 @@ typedef struct RefPicListTab { |
239 | 239 |
RefPicList refPicList[2]; |
240 | 240 |
} RefPicListTab; |
241 | 241 |
|
242 |
+typedef struct SliceHeader { |
|
243 |
+ unsigned int pps_id; |
|
244 |
+ |
|
245 |
+ ///< address (in raster order) of the first block in the current slice segment |
|
246 |
+ unsigned int slice_segment_addr; |
|
247 |
+ ///< address (in raster order) of the first block in the current slice |
|
248 |
+ unsigned int slice_addr; |
|
249 |
+ |
|
250 |
+ enum HEVCSliceType slice_type; |
|
251 |
+ |
|
252 |
+ int pic_order_cnt_lsb; |
|
253 |
+ |
|
254 |
+ uint8_t first_slice_in_pic_flag; |
|
255 |
+ uint8_t dependent_slice_segment_flag; |
|
256 |
+ uint8_t pic_output_flag; |
|
257 |
+ uint8_t colour_plane_id; |
|
258 |
+ |
|
259 |
+ ///< RPS coded in the slice header itself is stored here |
|
260 |
+ int short_term_ref_pic_set_sps_flag; |
|
261 |
+ int short_term_ref_pic_set_size; |
|
262 |
+ ShortTermRPS slice_rps; |
|
263 |
+ const ShortTermRPS *short_term_rps; |
|
264 |
+ int long_term_ref_pic_set_size; |
|
265 |
+ LongTermRPS long_term_rps; |
|
266 |
+ unsigned int list_entry_lx[2][32]; |
|
267 |
+ |
|
268 |
+ uint8_t rpl_modification_flag[2]; |
|
269 |
+ uint8_t no_output_of_prior_pics_flag; |
|
270 |
+ uint8_t slice_temporal_mvp_enabled_flag; |
|
271 |
+ |
|
272 |
+ unsigned int nb_refs[2]; |
|
273 |
+ |
|
274 |
+ uint8_t slice_sample_adaptive_offset_flag[3]; |
|
275 |
+ uint8_t mvd_l1_zero_flag; |
|
276 |
+ |
|
277 |
+ uint8_t cabac_init_flag; |
|
278 |
+ uint8_t disable_deblocking_filter_flag; ///< slice_header_disable_deblocking_filter_flag |
|
279 |
+ uint8_t slice_loop_filter_across_slices_enabled_flag; |
|
280 |
+ uint8_t collocated_list; |
|
281 |
+ |
|
282 |
+ unsigned int collocated_ref_idx; |
|
283 |
+ |
|
284 |
+ int slice_qp_delta; |
|
285 |
+ int slice_cb_qp_offset; |
|
286 |
+ int slice_cr_qp_offset; |
|
287 |
+ |
|
288 |
+ uint8_t cu_chroma_qp_offset_enabled_flag; |
|
289 |
+ |
|
290 |
+ int beta_offset; ///< beta_offset_div2 * 2 |
|
291 |
+ int tc_offset; ///< tc_offset_div2 * 2 |
|
292 |
+ |
|
293 |
+ unsigned int max_num_merge_cand; ///< 5 - 5_minus_max_num_merge_cand |
|
294 |
+ |
|
295 |
+ unsigned *entry_point_offset; |
|
296 |
+ int * offset; |
|
297 |
+ int * size; |
|
298 |
+ int num_entry_point_offsets; |
|
299 |
+ |
|
300 |
+ int8_t slice_qp; |
|
301 |
+ |
|
302 |
+ uint8_t luma_log2_weight_denom; |
|
303 |
+ int16_t chroma_log2_weight_denom; |
|
304 |
+ |
|
305 |
+ int16_t luma_weight_l0[16]; |
|
306 |
+ int16_t chroma_weight_l0[16][2]; |
|
307 |
+ int16_t chroma_weight_l1[16][2]; |
|
308 |
+ int16_t luma_weight_l1[16]; |
|
309 |
+ |
|
310 |
+ int16_t luma_offset_l0[16]; |
|
311 |
+ int16_t chroma_offset_l0[16][2]; |
|
312 |
+ |
|
313 |
+ int16_t luma_offset_l1[16]; |
|
314 |
+ int16_t chroma_offset_l1[16][2]; |
|
315 |
+ |
|
316 |
+ int slice_ctb_addr_rs; |
|
317 |
+} SliceHeader; |
|
318 |
+ |
|
242 | 319 |
typedef struct CodingUnit { |
243 | 320 |
int x; |
244 | 321 |
int y; |