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