| @@ -1858,7 +1858,7 @@ static av_always_inline void fill_filter_caches_inter(const H264Context *h, | |||||
| if (USES_LIST(top_type, list)) { | if (USES_LIST(top_type, list)) { | ||||
| const int b_xy = h->mb2b_xy[top_xy] + 3 * b_stride; | const int b_xy = h->mb2b_xy[top_xy] + 3 * b_stride; | ||||
| const int b8_xy = 4 * top_xy + 2; | const int b8_xy = 4 * top_xy + 2; | ||||
| int *ref2frm = h->ref2frm[h->slice_table[top_xy] & (MAX_SLICES - 1)][list] + (MB_MBAFF(sl) ? 20 : 2); | |||||
| const int *ref2frm = h->ref2frm[h->slice_table[top_xy] & (MAX_SLICES - 1)][list] + (MB_MBAFF(sl) ? 20 : 2); | |||||
| AV_COPY128(mv_dst - 1 * 8, h->cur_pic.motion_val[list][b_xy + 0]); | AV_COPY128(mv_dst - 1 * 8, h->cur_pic.motion_val[list][b_xy + 0]); | ||||
| ref_cache[0 - 1 * 8] = | ref_cache[0 - 1 * 8] = | ||||
| ref_cache[1 - 1 * 8] = ref2frm[h->cur_pic.ref_index[list][b8_xy + 0]]; | ref_cache[1 - 1 * 8] = ref2frm[h->cur_pic.ref_index[list][b8_xy + 0]]; | ||||
| @@ -1873,7 +1873,7 @@ static av_always_inline void fill_filter_caches_inter(const H264Context *h, | |||||
| if (USES_LIST(left_type[LTOP], list)) { | if (USES_LIST(left_type[LTOP], list)) { | ||||
| const int b_xy = h->mb2b_xy[left_xy[LTOP]] + 3; | const int b_xy = h->mb2b_xy[left_xy[LTOP]] + 3; | ||||
| const int b8_xy = 4 * left_xy[LTOP] + 1; | const int b8_xy = 4 * left_xy[LTOP] + 1; | ||||
| int *ref2frm = h->ref2frm[h->slice_table[left_xy[LTOP]] & (MAX_SLICES - 1)][list] + (MB_MBAFF(sl) ? 20 : 2); | |||||
| const int *ref2frm = h->ref2frm[h->slice_table[left_xy[LTOP]] & (MAX_SLICES - 1)][list] + (MB_MBAFF(sl) ? 20 : 2); | |||||
| AV_COPY32(mv_dst - 1 + 0, h->cur_pic.motion_val[list][b_xy + b_stride * 0]); | AV_COPY32(mv_dst - 1 + 0, h->cur_pic.motion_val[list][b_xy + b_stride * 0]); | ||||
| AV_COPY32(mv_dst - 1 + 8, h->cur_pic.motion_val[list][b_xy + b_stride * 1]); | AV_COPY32(mv_dst - 1 + 8, h->cur_pic.motion_val[list][b_xy + b_stride * 1]); | ||||
| AV_COPY32(mv_dst - 1 + 16, h->cur_pic.motion_val[list][b_xy + b_stride * 2]); | AV_COPY32(mv_dst - 1 + 16, h->cur_pic.motion_val[list][b_xy + b_stride * 2]); | ||||
| @@ -1906,7 +1906,7 @@ static av_always_inline void fill_filter_caches_inter(const H264Context *h, | |||||
| { | { | ||||
| int8_t *ref = &h->cur_pic.ref_index[list][4 * mb_xy]; | int8_t *ref = &h->cur_pic.ref_index[list][4 * mb_xy]; | ||||
| int *ref2frm = h->ref2frm[sl->slice_num & (MAX_SLICES - 1)][list] + (MB_MBAFF(sl) ? 20 : 2); | |||||
| const int *ref2frm = h->ref2frm[sl->slice_num & (MAX_SLICES - 1)][list] + (MB_MBAFF(sl) ? 20 : 2); | |||||
| uint32_t ref01 = (pack16to32(ref2frm[ref[0]], ref2frm[ref[1]]) & 0x00FF00FF) * 0x0101; | uint32_t ref01 = (pack16to32(ref2frm[ref[0]], ref2frm[ref[1]]) & 0x00FF00FF) * 0x0101; | ||||
| uint32_t ref23 = (pack16to32(ref2frm[ref[2]], ref2frm[ref[3]]) & 0x00FF00FF) * 0x0101; | uint32_t ref23 = (pack16to32(ref2frm[ref[2]], ref2frm[ref[3]]) & 0x00FF00FF) * 0x0101; | ||||
| AV_WN32A(&ref_cache[0 * 8], ref01); | AV_WN32A(&ref_cache[0 * 8], ref01); | ||||