void wpxReorderLists( ImageParameters *img, Slice *currSlice ) { int i, num_ref; wpxModifyRefPicList( img ); alloc_ref_pic_list_reordering_buffer(currSlice); for (i = 0; i < img->num_ref_idx_l0_active + 1; i++) { currSlice->reordering_of_pic_nums_idc_l0[i] = 3; currSlice->abs_diff_pic_num_minus1_l0[i] = 0; currSlice->long_term_pic_idx_l0[i] = 0; } if (img->type == B_SLICE) // type should be part of currSlice not img { for (i = 0; i < img->num_ref_idx_l1_active + 1; i++) { currSlice->reordering_of_pic_nums_idc_l1[i] = 3; currSlice->abs_diff_pic_num_minus1_l1[i] = 0; currSlice->long_term_pic_idx_l1[i] = 0; } } // LIST_0 num_ref = img->num_ref_idx_l0_active; poc_ref_pic_reorder_frame(listX[LIST_0], num_ref, currSlice->reordering_of_pic_nums_idc_l0, currSlice->abs_diff_pic_num_minus1_l0, currSlice->long_term_pic_idx_l0, LIST_0); // reference picture reordering reorder_ref_pic_list(listX[LIST_0], &listXsize[LIST_0], img->num_ref_idx_l0_active - 1, currSlice->reordering_of_pic_nums_idc_l0, currSlice->abs_diff_pic_num_minus1_l0, currSlice->long_term_pic_idx_l0); if ( img->type == B_SLICE ) { // LIST_1 num_ref = img->num_ref_idx_l1_active; poc_ref_pic_reorder_frame(listX[LIST_1], num_ref, currSlice->reordering_of_pic_nums_idc_l1, currSlice->abs_diff_pic_num_minus1_l1, currSlice->long_term_pic_idx_l1, LIST_1); // reference picture reordering reorder_ref_pic_list(listX[LIST_1], &listXsize[LIST_1], img->num_ref_idx_l1_active - 1, currSlice->reordering_of_pic_nums_idc_l1, currSlice->abs_diff_pic_num_minus1_l1, currSlice->long_term_pic_idx_l1); } }
void wp_mcprec_reorder_lists( Slice *currSlice ) { int i, num_ref; wpxModifyRefPicList( currSlice ); alloc_ref_pic_list_reordering_buffer(currSlice); for (i = 0; i < currSlice->num_ref_idx_active[LIST_0] + 1; i++) { currSlice->reordering_of_pic_nums_idc[LIST_0][i] = 3; currSlice->abs_diff_pic_num_minus1[LIST_0][i] = 0; currSlice->long_term_pic_idx[LIST_0][i] = 0; } if (currSlice->slice_type == B_SLICE) // type should be part of currSlice not p_Vid { for (i = 0; i < currSlice->num_ref_idx_active[LIST_1] + 1; i++) { currSlice->reordering_of_pic_nums_idc[LIST_1][i] = 3; currSlice->abs_diff_pic_num_minus1[LIST_1][i] = 0; currSlice->long_term_pic_idx[LIST_1][i] = 0; } } // LIST_0 num_ref = currSlice->num_ref_idx_active[LIST_0]; currSlice->poc_ref_pic_reorder_frame(currSlice, currSlice->listX[LIST_0], num_ref, currSlice->reordering_of_pic_nums_idc[LIST_0], currSlice->abs_diff_pic_num_minus1[LIST_0], currSlice->long_term_pic_idx[LIST_0], LIST_0); // reference picture reordering reorder_ref_pic_list ( currSlice, LIST_0); if ( currSlice->slice_type == B_SLICE ) { // LIST_1 num_ref = currSlice->num_ref_idx_active[LIST_1]; currSlice->poc_ref_pic_reorder_frame(currSlice, currSlice->listX[LIST_1], num_ref, currSlice->reordering_of_pic_nums_idc[LIST_1], currSlice->abs_diff_pic_num_minus1[LIST_1], currSlice->long_term_pic_idx[LIST_1], LIST_1); // reference picture reordering reorder_ref_pic_list ( currSlice, LIST_1); } }