Lines Matching refs:cur_sps
32 static void reset_cur_sps_data(H264_SPS_t *cur_sps) in reset_cur_sps_data() argument
34 memset(cur_sps, 0, sizeof(H264_SPS_t)); in reset_cur_sps_data()
35 cur_sps->seq_parameter_set_id = 0; // reset in reset_cur_sps_data()
173 static MPP_RET parser_sps(BitReadCtx_t *p_bitctx, H264_SPS_t *cur_sps, H264_DecCtx_t *p_Dec) in parser_sps() argument
178 cur_sps->chroma_format_idc = 1; in parser_sps()
179 cur_sps->bit_depth_luma_minus8 = 0; in parser_sps()
180 cur_sps->bit_depth_chroma_minus8 = 0; in parser_sps()
181 cur_sps->qpprime_y_zero_transform_bypass_flag = 0; in parser_sps()
182 cur_sps->separate_colour_plane_flag = 0; in parser_sps()
183 cur_sps->log2_max_pic_order_cnt_lsb_minus4 = 0; in parser_sps()
184 cur_sps->delta_pic_order_always_zero_flag = 0; in parser_sps()
187 READ_BITS(p_bitctx, 8, &cur_sps->profile_idc); in parser_sps()
188 VAL_CHECK (ret, (cur_sps->profile_idc == H264_PROFILE_BASELINE) in parser_sps()
189 || (cur_sps->profile_idc == H264_PROFILE_MAIN) in parser_sps()
190 || (cur_sps->profile_idc == H264_PROFILE_EXTENDED) in parser_sps()
191 || (cur_sps->profile_idc == H264_PROFILE_HIGH) in parser_sps()
192 || (cur_sps->profile_idc == H264_PROFILE_HIGH10) in parser_sps()
193 || (cur_sps->profile_idc == H264_PROFILE_HIGH422) in parser_sps()
194 || (cur_sps->profile_idc == H264_PROFILE_HIGH444) in parser_sps()
195 || (cur_sps->profile_idc == H264_PROFILE_FREXT_CAVLC444) in parser_sps()
196 || (cur_sps->profile_idc == H264_PROFILE_MVC_HIGH) in parser_sps()
197 || (cur_sps->profile_idc == H264_PROFILE_STEREO_HIGH) in parser_sps()
199 READ_ONEBIT(p_bitctx, &cur_sps->constrained_set0_flag); in parser_sps()
200 READ_ONEBIT(p_bitctx, &cur_sps->constrained_set1_flag); in parser_sps()
201 READ_ONEBIT(p_bitctx, &cur_sps->constrained_set2_flag); in parser_sps()
202 READ_ONEBIT(p_bitctx, &cur_sps->constrained_set3_flag); in parser_sps()
203 READ_ONEBIT(p_bitctx, &cur_sps->constrained_set4_flag); in parser_sps()
204 READ_ONEBIT(p_bitctx, &cur_sps->constrained_set5_flag); in parser_sps()
207 READ_BITS(p_bitctx, 8, &cur_sps->level_idc); in parser_sps()
208 READ_UE(p_bitctx, &cur_sps->seq_parameter_set_id); in parser_sps()
209 if (cur_sps->seq_parameter_set_id >= MAXSPS) { in parser_sps()
210 cur_sps->seq_parameter_set_id = 0; in parser_sps()
212 if (cur_sps->profile_idc == 100 || cur_sps->profile_idc == 110 in parser_sps()
213 || cur_sps->profile_idc == 122 || cur_sps->profile_idc == 244 in parser_sps()
214 || cur_sps->profile_idc == 44 || cur_sps->profile_idc == 83 in parser_sps()
215 || cur_sps->profile_idc == 86 || cur_sps->profile_idc == 118 in parser_sps()
216 || cur_sps->profile_idc == 128 || cur_sps->profile_idc == 138) { in parser_sps()
217 READ_UE(p_bitctx, &cur_sps->chroma_format_idc); in parser_sps()
219 VAL_CHECK (ret, (cur_sps->chroma_format_idc <= H264_CHROMA_444)); in parser_sps()
221 if (cur_sps->chroma_format_idc > H264_CHROMA_422) { in parser_sps()
222 H264D_ERR("ERROR: Not support chroma_format_idc %d", cur_sps->chroma_format_idc); in parser_sps()
226 READ_UE(p_bitctx, &cur_sps->bit_depth_luma_minus8); in parser_sps()
227 ASSERT(cur_sps->bit_depth_luma_minus8 < 7); in parser_sps()
228 READ_UE(p_bitctx, &cur_sps->bit_depth_chroma_minus8); in parser_sps()
229 ASSERT(cur_sps->bit_depth_chroma_minus8 < 7); in parser_sps()
230 READ_ONEBIT(p_bitctx, &cur_sps->qpprime_y_zero_transform_bypass_flag); in parser_sps()
231 if (cur_sps->qpprime_y_zero_transform_bypass_flag == 1) { in parser_sps()
236 READ_ONEBIT(p_bitctx, &cur_sps->seq_scaling_matrix_present_flag); in parser_sps()
237 if (cur_sps->seq_scaling_matrix_present_flag) { in parser_sps()
239 if (parse_sps_scalinglists(p_bitctx, cur_sps)) { in parser_sps()
244 READ_UE(p_bitctx, &cur_sps->log2_max_frame_num_minus4); in parser_sps()
245 ASSERT(cur_sps->log2_max_frame_num_minus4 < 13); in parser_sps()
246 READ_UE(p_bitctx, &cur_sps->pic_order_cnt_type); in parser_sps()
247 ASSERT(cur_sps->pic_order_cnt_type < 3); in parser_sps()
249 cur_sps->log2_max_pic_order_cnt_lsb_minus4 = 0; in parser_sps()
250 cur_sps->delta_pic_order_always_zero_flag = 0; in parser_sps()
251 if (0 == cur_sps->pic_order_cnt_type) { in parser_sps()
252 READ_UE(p_bitctx, &cur_sps->log2_max_pic_order_cnt_lsb_minus4); in parser_sps()
253 ASSERT(cur_sps->log2_max_pic_order_cnt_lsb_minus4 < 13); in parser_sps()
254 } else if (1 == cur_sps->pic_order_cnt_type) { in parser_sps()
255 READ_ONEBIT(p_bitctx, &cur_sps->delta_pic_order_always_zero_flag); in parser_sps()
256 READ_SE(p_bitctx, &cur_sps->offset_for_non_ref_pic); in parser_sps()
257 READ_SE(p_bitctx, &cur_sps->offset_for_top_to_bottom_field); in parser_sps()
258 READ_UE(p_bitctx, &cur_sps->num_ref_frames_in_pic_order_cnt_cycle); in parser_sps()
259 VAL_CHECK(ret, cur_sps->num_ref_frames_in_pic_order_cnt_cycle < 256); in parser_sps()
260 for (i = 0; i < cur_sps->num_ref_frames_in_pic_order_cnt_cycle; ++i) { in parser_sps()
261 READ_SE(p_bitctx, &cur_sps->offset_for_ref_frame[i]); in parser_sps()
262 cur_sps->expected_delta_per_pic_order_cnt_cycle += cur_sps->offset_for_ref_frame[i]; in parser_sps()
265 READ_UE(p_bitctx, &cur_sps->max_num_ref_frames); in parser_sps()
266 READ_ONEBIT(p_bitctx, &cur_sps->gaps_in_frame_num_value_allowed_flag); in parser_sps()
267 READ_UE(p_bitctx, &cur_sps->pic_width_in_mbs_minus1); in parser_sps()
268 READ_UE(p_bitctx, &cur_sps->pic_height_in_map_units_minus1); in parser_sps()
269 READ_ONEBIT(p_bitctx, &cur_sps->frame_mbs_only_flag); in parser_sps()
270 if (!cur_sps->frame_mbs_only_flag) { in parser_sps()
271 READ_ONEBIT(p_bitctx, &cur_sps->mb_adaptive_frame_field_flag); in parser_sps()
273 READ_ONEBIT(p_bitctx, &cur_sps->direct_8x8_inference_flag); in parser_sps()
275 READ_ONEBIT(p_bitctx, &cur_sps->frame_cropping_flag); in parser_sps()
276 if (cur_sps->frame_cropping_flag) { in parser_sps()
277 READ_UE(p_bitctx, &cur_sps->frame_crop_left_offset); in parser_sps()
278 READ_UE(p_bitctx, &cur_sps->frame_crop_right_offset); in parser_sps()
279 READ_UE(p_bitctx, &cur_sps->frame_crop_top_offset); in parser_sps()
280 READ_UE(p_bitctx, &cur_sps->frame_crop_bottom_offset); in parser_sps()
282 READ_ONEBIT(p_bitctx, &cur_sps->vui_parameters_present_flag); in parser_sps()
284 if (cur_sps->vui_parameters_present_flag) { in parser_sps()
285 init_VUI(&cur_sps->vui_seq_parameters); in parser_sps()
286 ret = read_VUI(p_bitctx, &cur_sps->vui_seq_parameters); in parser_sps()
288 cur_sps->Valid = 1; in parser_sps()
464 H264_SPS_t *cur_sps = &p_Cur->sps; in process_sps() local
466 reset_cur_sps_data(cur_sps); // reset in process_sps()
468 FUN_CHECK(ret = parser_sps(p_bitctx, cur_sps, currSlice->p_Dec)); in process_sps()
470 FUN_CHECK(ret = get_max_dec_frame_buf_size(cur_sps)); in process_sps()
472 if (cur_sps->Valid) { in process_sps()
473 if (!currSlice->p_Vid->spsSet[cur_sps->seq_parameter_set_id]) { in process_sps()
474 currSlice->p_Vid->spsSet[cur_sps->seq_parameter_set_id] = mpp_calloc(H264_SPS_t, 1); in process_sps()
476 memcpy(currSlice->p_Vid->spsSet[cur_sps->seq_parameter_set_id], in process_sps()
477 cur_sps, sizeof(H264_SPS_t)); in process_sps()