mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-29 02:42:21 +00:00
h264: move map_col_to_list0[_field] into the per-slice context
This commit is contained in:
parent
ee0d774dfa
commit
7747726667
@ -361,6 +361,8 @@ typedef struct H264SliceContext {
|
||||
|
||||
int dist_scale_factor[32];
|
||||
int dist_scale_factor_field[2][32];
|
||||
int map_col_to_list0[2][16 + 32];
|
||||
int map_col_to_list0_field[2][2][16 + 32];
|
||||
|
||||
/**
|
||||
* non zero coeff count cache.
|
||||
@ -447,9 +449,6 @@ typedef struct H264Context {
|
||||
int picture_structure;
|
||||
int first_field;
|
||||
|
||||
int map_col_to_list0[2][16 + 32];
|
||||
int map_col_to_list0_field[2][2][16 + 32];
|
||||
|
||||
/**
|
||||
* num_ref_idx_l0/1_active_minus1 + 1
|
||||
*/
|
||||
|
@ -145,10 +145,10 @@ void ff_h264_direct_ref_list_init(H264Context *const h, H264SliceContext *sl)
|
||||
return;
|
||||
|
||||
for (list = 0; list < 2; list++) {
|
||||
fill_colmap(h, h->map_col_to_list0, list, sidx, ref1sidx, 0);
|
||||
fill_colmap(h, sl->map_col_to_list0, list, sidx, ref1sidx, 0);
|
||||
if (FRAME_MBAFF(h))
|
||||
for (field = 0; field < 2; field++)
|
||||
fill_colmap(h, h->map_col_to_list0_field[field], list, field,
|
||||
fill_colmap(h, sl->map_col_to_list0_field[field], list, field,
|
||||
field, 1);
|
||||
}
|
||||
}
|
||||
@ -554,14 +554,14 @@ single_col:
|
||||
}
|
||||
|
||||
{
|
||||
const int *map_col_to_list0[2] = { h->map_col_to_list0[0],
|
||||
h->map_col_to_list0[1] };
|
||||
const int *map_col_to_list0[2] = { sl->map_col_to_list0[0],
|
||||
sl->map_col_to_list0[1] };
|
||||
const int *dist_scale_factor = sl->dist_scale_factor;
|
||||
int ref_offset;
|
||||
|
||||
if (FRAME_MBAFF(h) && IS_INTERLACED(*mb_type)) {
|
||||
map_col_to_list0[0] = h->map_col_to_list0_field[h->mb_y & 1][0];
|
||||
map_col_to_list0[1] = h->map_col_to_list0_field[h->mb_y & 1][1];
|
||||
map_col_to_list0[0] = sl->map_col_to_list0_field[h->mb_y & 1][0];
|
||||
map_col_to_list0[1] = sl->map_col_to_list0_field[h->mb_y & 1][1];
|
||||
dist_scale_factor = sl->dist_scale_factor_field[h->mb_y & 1];
|
||||
}
|
||||
ref_offset = (h->ref_list[1][0].mbaff << 4) & (mb_type_col[0] >> 3);
|
||||
|
Loading…
Reference in New Issue
Block a user