You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

538 lines
18KB

  1. /*
  2. * This file is part of Libav.
  3. *
  4. * Libav is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * Libav is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with Libav; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  17. */
  18. #ifndef AVCODEC_CBS_H265_H
  19. #define AVCODEC_CBS_H265_H
  20. #include <stddef.h>
  21. #include <stdint.h>
  22. #include "cbs_h2645.h"
  23. #include "hevc.h"
  24. typedef struct H265RawNALUnitHeader {
  25. uint8_t forbidden_zero_bit;
  26. uint8_t nal_unit_type;
  27. uint8_t nuh_layer_id;
  28. uint8_t nuh_temporal_id_plus1;
  29. } H265RawNALUnitHeader;
  30. typedef struct H265RawProfileTierLevel {
  31. uint8_t general_profile_space;
  32. uint8_t general_tier_flag;
  33. uint8_t general_profile_idc;
  34. uint8_t general_profile_compatibility_flag[32];
  35. uint8_t general_progressive_source_flag;
  36. uint8_t general_interlaced_source_flag;
  37. uint8_t general_non_packed_constraint_flag;
  38. uint8_t general_frame_only_constraint_flag;
  39. uint8_t general_max_12bit_constraint_flag;
  40. uint8_t general_max_10bit_constraint_flag;
  41. uint8_t general_max_8bit_constraint_flag;
  42. uint8_t general_max_422chroma_constraint_flag;
  43. uint8_t general_max_420chroma_constraint_flag;
  44. uint8_t general_max_monochrome_constraint_flag;
  45. uint8_t general_intra_constraint_flag;
  46. uint8_t general_one_picture_only_constraint_flag;
  47. uint8_t general_lower_bit_rate_constraint_flag;
  48. uint8_t general_max_14bit_constraint_flag;
  49. uint8_t general_inbld_flag;
  50. uint8_t general_level_idc;
  51. uint8_t sub_layer_profile_present_flag[HEVC_MAX_SUB_LAYERS];
  52. uint8_t sub_layer_level_present_flag[HEVC_MAX_SUB_LAYERS];
  53. // TODO: much of that again for each sub-layer.
  54. } H265RawProfileTierLevel;
  55. typedef struct H265RawSubLayerHRDParameters {
  56. uint32_t bit_rate_value_minus1[HEVC_MAX_CPB_CNT];
  57. uint32_t cpb_size_value_minus1[HEVC_MAX_CPB_CNT];
  58. uint32_t cpb_size_du_value_minus1[HEVC_MAX_CPB_CNT];
  59. uint32_t bit_rate_du_value_minus1[HEVC_MAX_CPB_CNT];
  60. uint8_t cbr_flag[HEVC_MAX_CPB_CNT];
  61. } H265RawSubLayerHRDParameters;
  62. typedef struct H265RawHRDParameters {
  63. uint8_t nal_hrd_parameters_present_flag;
  64. uint8_t vcl_hrd_parameters_present_flag;
  65. uint8_t sub_pic_hrd_params_present_flag;
  66. uint8_t tick_divisor_minus2;
  67. uint8_t du_cpb_removal_delay_increment_length_minus1;
  68. uint8_t sub_pic_cpb_params_in_pic_timing_sei_flag;
  69. uint8_t dpb_output_delay_du_length_minus1;
  70. uint8_t bit_rate_scale;
  71. uint8_t cpb_size_scale;
  72. uint8_t cpb_size_du_scale;
  73. uint8_t initial_cpb_removal_delay_length_minus1;
  74. uint8_t au_cpb_removal_delay_length_minus1;
  75. uint8_t dpb_output_delay_length_minus1;
  76. uint8_t fixed_pic_rate_general_flag[HEVC_MAX_SUB_LAYERS];
  77. uint8_t fixed_pic_rate_within_cvs_flag[HEVC_MAX_SUB_LAYERS];
  78. uint16_t elemental_duration_in_tc_minus1[HEVC_MAX_SUB_LAYERS];
  79. uint8_t low_delay_hrd_flag[HEVC_MAX_SUB_LAYERS];
  80. uint8_t cpb_cnt_minus1[HEVC_MAX_SUB_LAYERS];
  81. H265RawSubLayerHRDParameters nal_sub_layer_hrd_parameters[HEVC_MAX_SUB_LAYERS];
  82. H265RawSubLayerHRDParameters vcl_sub_layer_hrd_parameters[HEVC_MAX_SUB_LAYERS];
  83. } H265RawHRDParameters;
  84. typedef struct H265RawVUI {
  85. uint8_t aspect_ratio_info_present_flag;
  86. uint8_t aspect_ratio_idc;
  87. uint16_t sar_width;
  88. uint16_t sar_height;
  89. uint8_t overscan_info_present_flag;
  90. uint8_t overscan_appropriate_flag;
  91. uint8_t video_signal_type_present_flag;
  92. uint8_t video_format;
  93. uint8_t video_full_range_flag;
  94. uint8_t colour_description_present_flag;
  95. uint8_t colour_primaries;
  96. uint8_t transfer_characteristics;
  97. uint8_t matrix_coefficients;
  98. uint8_t chroma_loc_info_present_flag;
  99. uint8_t chroma_sample_loc_type_top_field;
  100. uint8_t chroma_sample_loc_type_bottom_field;
  101. uint8_t neutral_chroma_indication_flag;
  102. uint8_t field_seq_flag;
  103. uint8_t frame_field_info_present_flag;
  104. uint8_t default_display_window_flag;
  105. uint16_t def_disp_win_left_offset;
  106. uint16_t def_disp_win_right_offset;
  107. uint16_t def_disp_win_top_offset;
  108. uint16_t def_disp_win_bottom_offset;
  109. uint8_t vui_timing_info_present_flag;
  110. uint32_t vui_num_units_in_tick;
  111. uint32_t vui_time_scale;
  112. uint8_t vui_poc_proportional_to_timing_flag;
  113. uint32_t vui_num_ticks_poc_diff_one_minus1;
  114. uint8_t vui_hrd_parameters_present_flag;
  115. H265RawHRDParameters hrd_parameters;
  116. uint8_t bitstream_restriction_flag;
  117. uint8_t tiles_fixed_structure_flag;
  118. uint8_t motion_vectors_over_pic_boundaries_flag;
  119. uint8_t restricted_ref_pic_lists_flag;
  120. uint16_t min_spatial_segmentation_idc;
  121. uint8_t max_bytes_per_pic_denom;
  122. uint8_t max_bits_per_min_cu_denom;
  123. uint8_t log2_max_mv_length_horizontal;
  124. uint8_t log2_max_mv_length_vertical;
  125. } H265RawVUI;
  126. typedef struct H265RawPSExtensionData {
  127. uint8_t *data;
  128. size_t bit_length;
  129. } H265RawPSExtensionData;
  130. typedef struct H265RawVPS {
  131. H265RawNALUnitHeader nal_unit_header;
  132. uint8_t vps_video_parameter_set_id;
  133. uint8_t vps_base_layer_internal_flag;
  134. uint8_t vps_base_layer_available_flag;
  135. uint8_t vps_max_layers_minus1;
  136. uint8_t vps_max_sub_layers_minus1;
  137. uint8_t vps_temporal_id_nesting_flag;
  138. H265RawProfileTierLevel profile_tier_level;
  139. uint8_t vps_sub_layer_ordering_info_present_flag;
  140. uint8_t vps_max_dec_pic_buffering_minus1[HEVC_MAX_SUB_LAYERS];
  141. uint8_t vps_max_num_reorder_pics[HEVC_MAX_SUB_LAYERS];
  142. uint32_t vps_max_latency_increase_plus1[HEVC_MAX_SUB_LAYERS];
  143. uint8_t vps_max_layer_id;
  144. uint16_t vps_num_layer_sets_minus1;
  145. uint8_t layer_id_included_flag[HEVC_MAX_LAYER_SETS][HEVC_MAX_LAYERS];
  146. uint8_t vps_timing_info_present_flag;
  147. uint32_t vps_num_units_in_tick;
  148. uint32_t vps_time_scale;
  149. uint8_t vps_poc_proportional_to_timing_flag;
  150. uint32_t vps_num_ticks_poc_diff_one_minus1;
  151. uint16_t vps_num_hrd_parameters;
  152. uint16_t hrd_layer_set_idx[HEVC_MAX_LAYER_SETS];
  153. uint8_t cprms_present_flag[HEVC_MAX_LAYER_SETS];
  154. H265RawHRDParameters hrd_parameters[HEVC_MAX_LAYER_SETS];
  155. uint8_t vps_extension_flag;
  156. H265RawPSExtensionData extension_data;
  157. } H265RawVPS;
  158. typedef struct H265RawSTRefPicSet {
  159. uint8_t inter_ref_pic_set_prediction_flag;
  160. uint8_t delta_idx_minus1;
  161. uint8_t delta_rps_sign;
  162. uint16_t abs_delta_rps_minus1;
  163. uint8_t used_by_curr_pic_flag[HEVC_MAX_REFS];
  164. uint8_t use_delta_flag[HEVC_MAX_REFS];
  165. uint8_t num_negative_pics;
  166. uint8_t num_positive_pics;
  167. uint16_t delta_poc_s0_minus1[HEVC_MAX_REFS];
  168. uint8_t used_by_curr_pic_s0_flag[HEVC_MAX_REFS];
  169. uint16_t delta_poc_s1_minus1[HEVC_MAX_REFS];
  170. uint8_t used_by_curr_pic_s1_flag[HEVC_MAX_REFS];
  171. } H265RawSTRefPicSet;
  172. typedef struct H265RawScalingList {
  173. uint8_t scaling_list_pred_mode_flag[4][6];
  174. uint8_t scaling_list_pred_matrix_id_delta[4][6];
  175. int16_t scaling_list_dc_coef_minus8[4][6];
  176. int8_t scaling_list_delta_coeff[4][6][64];
  177. } H265RawScalingList;
  178. typedef struct H265RawSPS {
  179. H265RawNALUnitHeader nal_unit_header;
  180. uint8_t sps_video_parameter_set_id;
  181. uint8_t sps_max_sub_layers_minus1;
  182. uint8_t sps_temporal_id_nesting_flag;
  183. H265RawProfileTierLevel profile_tier_level;
  184. uint8_t sps_seq_parameter_set_id;
  185. uint8_t chroma_format_idc;
  186. uint8_t separate_colour_plane_flag;
  187. uint16_t pic_width_in_luma_samples;
  188. uint16_t pic_height_in_luma_samples;
  189. uint8_t conformance_window_flag;
  190. uint16_t conf_win_left_offset;
  191. uint16_t conf_win_right_offset;
  192. uint16_t conf_win_top_offset;
  193. uint16_t conf_win_bottom_offset;
  194. uint8_t bit_depth_luma_minus8;
  195. uint8_t bit_depth_chroma_minus8;
  196. uint8_t log2_max_pic_order_cnt_lsb_minus4;
  197. uint8_t sps_sub_layer_ordering_info_present_flag;
  198. uint8_t sps_max_dec_pic_buffering_minus1[HEVC_MAX_SUB_LAYERS];
  199. uint8_t sps_max_num_reorder_pics[HEVC_MAX_SUB_LAYERS];
  200. uint32_t sps_max_latency_increase_plus1[HEVC_MAX_SUB_LAYERS];
  201. uint8_t log2_min_luma_coding_block_size_minus3;
  202. uint8_t log2_diff_max_min_luma_coding_block_size;
  203. uint8_t log2_min_luma_transform_block_size_minus2;
  204. uint8_t log2_diff_max_min_luma_transform_block_size;
  205. uint8_t max_transform_hierarchy_depth_inter;
  206. uint8_t max_transform_hierarchy_depth_intra;
  207. uint8_t scaling_list_enabled_flag;
  208. uint8_t sps_scaling_list_data_present_flag;
  209. H265RawScalingList scaling_list;
  210. uint8_t amp_enabled_flag;
  211. uint8_t sample_adaptive_offset_enabled_flag;
  212. uint8_t pcm_enabled_flag;
  213. uint8_t pcm_sample_bit_depth_luma_minus1;
  214. uint8_t pcm_sample_bit_depth_chroma_minus1;
  215. uint8_t log2_min_pcm_luma_coding_block_size_minus3;
  216. uint8_t log2_diff_max_min_pcm_luma_coding_block_size;
  217. uint8_t pcm_loop_filter_disabled_flag;
  218. uint8_t num_short_term_ref_pic_sets;
  219. H265RawSTRefPicSet st_ref_pic_set[HEVC_MAX_SHORT_TERM_REF_PIC_SETS];
  220. uint8_t long_term_ref_pics_present_flag;
  221. uint8_t num_long_term_ref_pics_sps;
  222. uint16_t lt_ref_pic_poc_lsb_sps[HEVC_MAX_LONG_TERM_REF_PICS];
  223. uint8_t used_by_curr_pic_lt_sps_flag[HEVC_MAX_LONG_TERM_REF_PICS];
  224. uint8_t sps_temporal_mvp_enabled_flag;
  225. uint8_t strong_intra_smoothing_enabled_flag;
  226. uint8_t vui_parameters_present_flag;
  227. H265RawVUI vui;
  228. uint8_t sps_extension_present_flag;
  229. uint8_t sps_range_extension_flag;
  230. uint8_t sps_multilayer_extension_flag;
  231. uint8_t sps_3d_extension_flag;
  232. uint8_t sps_scc_extension_flag;
  233. uint8_t sps_extension_4bits;
  234. H265RawPSExtensionData extension_data;
  235. // Range extension.
  236. uint8_t transform_skip_rotation_enabled_flag;
  237. uint8_t transform_skip_context_enabled_flag;
  238. uint8_t implicit_rdpcm_enabled_flag;
  239. uint8_t explicit_rdpcm_enabled_flag;
  240. uint8_t extended_precision_processing_flag;
  241. uint8_t intra_smoothing_disabled_flag;
  242. uint8_t high_precision_offsets_enabled_flag;
  243. uint8_t persistent_rice_adaptation_enabled_flag;
  244. uint8_t cabac_bypass_alignment_enabled_flag;
  245. // Screen content coding extension.
  246. uint8_t sps_curr_pic_ref_enabled_flag;
  247. uint8_t palette_mode_enabled_flag;
  248. uint8_t palette_max_size;
  249. uint8_t delta_palette_max_predictor_size;
  250. uint8_t sps_palette_predictor_initializer_present_flag;
  251. uint8_t sps_num_palette_predictor_initializer_minus1;
  252. uint16_t sps_palette_predictor_initializers[3][128];
  253. uint8_t motion_vector_resolution_control_idc;
  254. uint8_t intra_boundary_filtering_disable_flag;
  255. } H265RawSPS;
  256. typedef struct H265RawPPS {
  257. H265RawNALUnitHeader nal_unit_header;
  258. uint8_t pps_pic_parameter_set_id;
  259. uint8_t pps_seq_parameter_set_id;
  260. uint8_t dependent_slice_segments_enabled_flag;
  261. uint8_t output_flag_present_flag;
  262. uint8_t num_extra_slice_header_bits;
  263. uint8_t sign_data_hiding_enabled_flag;
  264. uint8_t cabac_init_present_flag;
  265. uint8_t num_ref_idx_l0_default_active_minus1;
  266. uint8_t num_ref_idx_l1_default_active_minus1;
  267. int8_t init_qp_minus26;
  268. uint8_t constrained_intra_pred_flag;
  269. uint8_t transform_skip_enabled_flag;
  270. uint8_t cu_qp_delta_enabled_flag;
  271. uint8_t diff_cu_qp_delta_depth;
  272. int8_t pps_cb_qp_offset;
  273. int8_t pps_cr_qp_offset;
  274. uint8_t pps_slice_chroma_qp_offsets_present_flag;
  275. uint8_t weighted_pred_flag;
  276. uint8_t weighted_bipred_flag;
  277. uint8_t transquant_bypass_enabled_flag;
  278. uint8_t tiles_enabled_flag;
  279. uint8_t entropy_coding_sync_enabled_flag;
  280. uint8_t num_tile_columns_minus1;
  281. uint8_t num_tile_rows_minus1;
  282. uint8_t uniform_spacing_flag;
  283. uint16_t column_width_minus1[HEVC_MAX_TILE_COLUMNS];
  284. uint16_t row_height_minus1[HEVC_MAX_TILE_ROWS];
  285. uint8_t loop_filter_across_tiles_enabled_flag;
  286. uint8_t pps_loop_filter_across_slices_enabled_flag;
  287. uint8_t deblocking_filter_control_present_flag;
  288. uint8_t deblocking_filter_override_enabled_flag;
  289. uint8_t pps_deblocking_filter_disabled_flag;
  290. int8_t pps_beta_offset_div2;
  291. int8_t pps_tc_offset_div2;
  292. uint8_t pps_scaling_list_data_present_flag;
  293. H265RawScalingList scaling_list;
  294. uint8_t lists_modification_present_flag;
  295. uint8_t log2_parallel_merge_level_minus2;
  296. uint8_t slice_segment_header_extension_present_flag;
  297. uint8_t pps_extension_present_flag;
  298. uint8_t pps_range_extension_flag;
  299. uint8_t pps_multilayer_extension_flag;
  300. uint8_t pps_3d_extension_flag;
  301. uint8_t pps_scc_extension_flag;
  302. uint8_t pps_extension_4bits;
  303. H265RawPSExtensionData extension_data;
  304. // Range extension.
  305. uint8_t log2_max_transform_skip_block_size_minus2;
  306. uint8_t cross_component_prediction_enabled_flag;
  307. uint8_t chroma_qp_offset_list_enabled_flag;
  308. uint8_t diff_cu_chroma_qp_offset_depth;
  309. uint8_t chroma_qp_offset_list_len_minus1;
  310. int8_t cb_qp_offset_list[6];
  311. int8_t cr_qp_offset_list[6];
  312. uint8_t log2_sao_offset_scale_luma;
  313. uint8_t log2_sao_offset_scale_chroma;
  314. // Screen content coding extension.
  315. uint8_t pps_curr_pic_ref_enabled_flag;
  316. uint8_t residual_adaptive_colour_transform_enabled_flag;
  317. uint8_t pps_slice_act_qp_offsets_present_flag;
  318. int8_t pps_act_y_qp_offset_plus5;
  319. int8_t pps_act_cb_qp_offset_plus5;
  320. int8_t pps_act_cr_qp_offset_plus3;
  321. uint8_t pps_palette_predictor_initializer_present_flag;
  322. uint8_t pps_num_palette_predictor_initializer;
  323. uint8_t monochrome_palette_flag;
  324. uint8_t luma_bit_depth_entry_minus8;
  325. uint8_t chroma_bit_depth_entry_minus8;
  326. uint16_t pps_palette_predictor_initializers[3][128];
  327. } H265RawPPS;
  328. typedef struct H265RawAUD {
  329. H265RawNALUnitHeader nal_unit_header;
  330. uint8_t pic_type;
  331. } H265RawAUD;
  332. typedef struct H265RawSliceHeader {
  333. H265RawNALUnitHeader nal_unit_header;
  334. uint8_t first_slice_segment_in_pic_flag;
  335. uint8_t no_output_of_prior_pics_flag;
  336. uint8_t slice_pic_parameter_set_id;
  337. uint8_t dependent_slice_segment_flag;
  338. uint16_t slice_segment_address;
  339. uint8_t slice_reserved_flag[8];
  340. uint8_t slice_type;
  341. uint8_t pic_output_flag;
  342. uint8_t colour_plane_id;
  343. uint16_t slice_pic_order_cnt_lsb;
  344. uint8_t short_term_ref_pic_set_sps_flag;
  345. H265RawSTRefPicSet short_term_ref_pic_set;
  346. uint8_t short_term_ref_pic_set_idx;
  347. uint8_t num_long_term_sps;
  348. uint8_t num_long_term_pics;
  349. uint8_t lt_idx_sps[HEVC_MAX_REFS];
  350. uint8_t poc_lsb_lt[HEVC_MAX_REFS];
  351. uint8_t used_by_curr_pic_lt_flag[HEVC_MAX_REFS];
  352. uint8_t delta_poc_msb_present_flag[HEVC_MAX_REFS];
  353. uint32_t delta_poc_msb_cycle_lt[HEVC_MAX_REFS];
  354. uint8_t slice_temporal_mvp_enabled_flag;
  355. uint8_t slice_sao_luma_flag;
  356. uint8_t slice_sao_chroma_flag;
  357. uint8_t num_ref_idx_active_override_flag;
  358. uint8_t num_ref_idx_l0_active_minus1;
  359. uint8_t num_ref_idx_l1_active_minus1;
  360. uint8_t ref_pic_list_modification_flag_l0;
  361. uint8_t list_entry_l0[HEVC_MAX_REFS];
  362. uint8_t ref_pic_list_modification_flag_l1;
  363. uint8_t list_entry_l1[HEVC_MAX_REFS];
  364. uint8_t mvd_l1_zero_flag;
  365. uint8_t cabac_init_flag;
  366. uint8_t collocated_from_l0_flag;
  367. uint8_t collocated_ref_idx;
  368. uint8_t luma_log2_weight_denom;
  369. int8_t delta_chroma_log2_weight_denom;
  370. uint8_t luma_weight_l0_flag[HEVC_MAX_REFS];
  371. uint8_t chroma_weight_l0_flag[HEVC_MAX_REFS];
  372. int8_t delta_luma_weight_l0[HEVC_MAX_REFS];
  373. int16_t luma_offset_l0[HEVC_MAX_REFS];
  374. int8_t delta_chroma_weight_l0[HEVC_MAX_REFS][2];
  375. int16_t chroma_offset_l0[HEVC_MAX_REFS][2];
  376. uint8_t luma_weight_l1_flag[HEVC_MAX_REFS];
  377. uint8_t chroma_weight_l1_flag[HEVC_MAX_REFS];
  378. int8_t delta_luma_weight_l1[HEVC_MAX_REFS];
  379. int16_t luma_offset_l1[HEVC_MAX_REFS];
  380. int8_t delta_chroma_weight_l1[HEVC_MAX_REFS][2];
  381. int16_t chroma_offset_l1[HEVC_MAX_REFS][2];
  382. uint8_t five_minus_max_num_merge_cand;
  383. uint8_t use_integer_mv_flag;
  384. int8_t slice_qp_delta;
  385. int8_t slice_cb_qp_offset;
  386. int8_t slice_cr_qp_offset;
  387. int8_t slice_act_y_qp_offset;
  388. int8_t slice_act_cb_qp_offset;
  389. int8_t slice_act_cr_qp_offset;
  390. uint8_t cu_chroma_qp_offset_enabled_flag;
  391. uint8_t deblocking_filter_override_flag;
  392. uint8_t slice_deblocking_filter_disabled_flag;
  393. int8_t slice_beta_offset_div2;
  394. int8_t slice_tc_offset_div2;
  395. uint8_t slice_loop_filter_across_slices_enabled_flag;
  396. uint16_t num_entry_point_offsets;
  397. uint8_t offset_len_minus1;
  398. uint32_t entry_point_offset_minus1[HEVC_MAX_ENTRY_POINT_OFFSETS];
  399. uint16_t slice_segment_header_extension_length;
  400. uint8_t slice_segment_header_extension_data_byte[256];
  401. } H265RawSliceHeader;
  402. typedef struct H265RawSlice {
  403. H265RawSliceHeader header;
  404. uint8_t *data;
  405. size_t data_size;
  406. int data_bit_start;
  407. } H265RawSlice;
  408. typedef struct CodedBitstreamH265Context {
  409. // Reader/writer context in common with the H.264 implementation.
  410. CodedBitstreamH2645Context common;
  411. // All currently available parameter sets. These are updated when
  412. // any parameter set NAL unit is read/written with this context.
  413. H265RawVPS *vps[HEVC_MAX_VPS_COUNT];
  414. H265RawSPS *sps[HEVC_MAX_SPS_COUNT];
  415. H265RawPPS *pps[HEVC_MAX_PPS_COUNT];
  416. // The currently active parameter sets. These are updated when any
  417. // NAL unit refers to the relevant parameter set. These pointers
  418. // must also be present in the arrays above.
  419. const H265RawVPS *active_vps;
  420. const H265RawSPS *active_sps;
  421. const H265RawPPS *active_pps;
  422. } CodedBitstreamH265Context;
  423. #endif /* AVCODEC_CBS_H265_H */