Lines Matching refs:pic

372 static struct ruvd_h264 get_h264_msg(struct ruvd_decoder *dec, struct pipe_h264_picture_desc *pic)
377 switch (pic->base.profile) {
399 result.sps_info_flags |= pic->pps->sps->direct_8x8_inference_flag << 0;
400 result.sps_info_flags |= pic->pps->sps->mb_adaptive_frame_field_flag << 1;
401 result.sps_info_flags |= pic->pps->sps->frame_mbs_only_flag << 2;
402 result.sps_info_flags |= pic->pps->sps->delta_pic_order_always_zero_flag << 3;
404 result.bit_depth_luma_minus8 = pic->pps->sps->bit_depth_luma_minus8;
405 result.bit_depth_chroma_minus8 = pic->pps->sps->bit_depth_chroma_minus8;
406 result.log2_max_frame_num_minus4 = pic->pps->sps->log2_max_frame_num_minus4;
407 result.pic_order_cnt_type = pic->pps->sps->pic_order_cnt_type;
408 result.log2_max_pic_order_cnt_lsb_minus4 = pic->pps->sps->log2_max_pic_order_cnt_lsb_minus4;
429 result.pps_info_flags |= pic->pps->transform_8x8_mode_flag << 0;
430 result.pps_info_flags |= pic->pps->redundant_pic_cnt_present_flag << 1;
431 result.pps_info_flags |= pic->pps->constrained_intra_pred_flag << 2;
432 result.pps_info_flags |= pic->pps->deblocking_filter_control_present_flag << 3;
433 result.pps_info_flags |= pic->pps->weighted_bipred_idc << 4;
434 result.pps_info_flags |= pic->pps->weighted_pred_flag << 6;
435 result.pps_info_flags |= pic->pps->bottom_field_pic_order_in_frame_present_flag << 7;
436 result.pps_info_flags |= pic->pps->entropy_coding_mode_flag << 8;
438 result.num_slice_groups_minus1 = pic->pps->num_slice_groups_minus1;
439 result.slice_group_map_type = pic->pps->slice_group_map_type;
440 result.slice_group_change_rate_minus1 = pic->pps->slice_group_change_rate_minus1;
441 result.pic_init_qp_minus26 = pic->pps->pic_init_qp_minus26;
442 result.chroma_qp_index_offset = pic->pps->chroma_qp_index_offset;
443 result.second_chroma_qp_index_offset = pic->pps->second_chroma_qp_index_offset;
445 memcpy(result.scaling_list_4x4, pic->pps->ScalingList4x4, 6*16);
446 memcpy(result.scaling_list_8x8, pic->pps->ScalingList8x8, 2*64);
453 result.num_ref_frames = pic->num_ref_frames;
455 result.num_ref_idx_l0_active_minus1 = pic->num_ref_idx_l0_active_minus1;
456 result.num_ref_idx_l1_active_minus1 = pic->num_ref_idx_l1_active_minus1;
458 result.frame_num = pic->frame_num;
459 memcpy(result.frame_num_list, pic->frame_num_list, 4*16);
460 result.curr_field_order_cnt_list[0] = pic->field_order_cnt[0];
461 result.curr_field_order_cnt_list[1] = pic->field_order_cnt[1];
462 memcpy(result.field_order_cnt_list, pic->field_order_cnt_list, 4*16*2);
464 result.decoded_pic_idx = pic->frame_num;
470 static struct ruvd_vc1 get_vc1_msg(struct pipe_vc1_picture_desc *pic)
476 switch(pic->base.profile) {
497 result.sps_info_flags |= pic->postprocflag << 7;
498 result.sps_info_flags |= pic->pulldown << 6;
499 result.sps_info_flags |= pic->interlace << 5;
500 result.sps_info_flags |= pic->tfcntrflag << 4;
501 result.sps_info_flags |= pic->finterpflag << 3;
502 result.sps_info_flags |= pic->psf << 1;
504 result.pps_info_flags |= pic->range_mapy_flag << 31;
505 result.pps_info_flags |= pic->range_mapy << 28;
506 result.pps_info_flags |= pic->range_mapuv_flag << 27;
507 result.pps_info_flags |= pic->range_mapuv << 24;
508 result.pps_info_flags |= pic->multires << 21;
509 result.pps_info_flags |= pic->maxbframes << 16;
510 result.pps_info_flags |= pic->overlap << 11;
511 result.pps_info_flags |= pic->quantizer << 9;
512 result.pps_info_flags |= pic->panscan_flag << 7;
513 result.pps_info_flags |= pic->refdist_flag << 6;
514 result.pps_info_flags |= pic->vstransform << 0;
517 if (pic->base.profile != PIPE_VIDEO_PROFILE_VC1_SIMPLE) {
518 result.pps_info_flags |= pic->syncmarker << 20;
519 result.pps_info_flags |= pic->rangered << 19;
520 result.pps_info_flags |= pic->loopfilter << 5;
521 result.pps_info_flags |= pic->fastuvmc << 4;
522 result.pps_info_flags |= pic->extended_mv << 3;
523 result.pps_info_flags |= pic->extended_dmv << 8;
524 result.pps_info_flags |= pic->dquant << 1;
561 struct pipe_mpeg12_picture_desc *pic)
563 const int *zscan = pic->alternate_scan ? vl_zscan_alternate : vl_zscan_normal;
570 result.ref_pic_idx[i] = get_ref_pic_idx(dec, pic->ref[i]);
576 result.intra_quantiser_matrix[i] = pic->intra_matrix[zscan[i]];
577 result.nonintra_quantiser_matrix[i] = pic->non_intra_matrix[zscan[i]];
583 result.picture_coding_type = pic->picture_coding_type;
584 result.f_code[0][0] = pic->f_code[0][0] + 1;
585 result.f_code[0][1] = pic->f_code[0][1] + 1;
586 result.f_code[1][0] = pic->f_code[1][0] + 1;
587 result.f_code[1][1] = pic->f_code[1][1] + 1;
588 result.intra_dc_precision = pic->intra_dc_precision;
589 result.pic_structure = pic->picture_structure;
590 result.top_field_first = pic->top_field_first;
591 result.frame_pred_frame_dct = pic->frame_pred_frame_dct;
592 result.concealment_motion_vectors = pic->concealment_motion_vectors;
593 result.q_scale_type = pic->q_scale_type;
594 result.intra_vlc_format = pic->intra_vlc_format;
595 result.alternate_scan = pic->alternate_scan;
602 struct pipe_mpeg4_picture_desc *pic)
610 result.ref_pic_idx[i] = get_ref_pic_idx(dec, pic->ref[i]);
621 result.vop_time_increment_resolution = pic->vop_time_increment_resolution;
623 result.flags |= pic->short_video_header << 0;
625 result.flags |= pic->interlaced << 2;
628 result.flags |= pic->quarter_sample << 5;
630 result.flags |= pic->resync_marker_disable << 7;
640 result.quant_type = pic->quant_type;
643 result.intra_quant_mat[i] = pic->intra_matrix[vl_zscan_normal[i]];
644 result.nonintra_quant_mat[i] = pic->non_intra_matrix[vl_zscan_normal[i]];
661 static void get_mjpeg_slice_header(struct ruvd_decoder *dec, struct pipe_mjpeg_picture_desc *pic)
679 if (pic->quantization_table.load_quantiser_table[i] == 0)
683 memcpy((buf + size), &pic->quantization_table.quantiser_table[i], 64);
700 if (pic->huffman_table.load_huffman_table[i] == 0)
704 memcpy((buf + size), &pic->huffman_table.table[i].num_dc_codes, 16);
706 memcpy((buf + size), &pic->huffman_table.table[i].dc_values, 12);
711 if (pic->huffman_table.load_huffman_table[i] == 0)
715 memcpy((buf + size), &pic->huffman_table.table[i].num_ac_codes, 16);
717 memcpy((buf + size), &pic->huffman_table.table[i].ac_values, 162);
727 if (pic->slice_parameter.restart_interval) {
733 *bs = util_bswap16(pic->slice_parameter.restart_interval);
747 *bs = util_bswap16(pic->picture_parameter.picture_height);
751 *bs = util_bswap16(pic->picture_parameter.picture_width);
754 buf[size++] = pic->picture_parameter.num_components;
756 for (i = 0; i < pic->picture_parameter.num_components; ++i) {
757 buf[size++] = pic->picture_parameter.components[i].component_id;
758 buf[size++] = pic->picture_parameter.components[i].h_sampling_factor << 4 |
759 pic->picture_parameter.components[i].v_sampling_factor;
760 buf[size++] = pic->picture_parameter.components[i].quantiser_table_selector;
775 buf[size++] = pic->slice_parameter.num_components;
777 for (i = 0; i < pic->slice_parameter.num_components; ++i) {
778 buf[size++] = pic->slice_parameter.components[i].component_selector;
779 buf[size++] = pic->slice_parameter.components[i].dc_table_selector << 4 |
780 pic->slice_parameter.components[i].ac_table_selector;