Commit 77477266 authored by Anton Khirnov's avatar Anton Khirnov

h264: move map_col_to_list0[_field] into the per-slice context

parent ee0d774d
...@@ -361,6 +361,8 @@ typedef struct H264SliceContext { ...@@ -361,6 +361,8 @@ typedef struct H264SliceContext {
int dist_scale_factor[32]; int dist_scale_factor[32];
int dist_scale_factor_field[2][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. * non zero coeff count cache.
...@@ -447,9 +449,6 @@ typedef struct H264Context { ...@@ -447,9 +449,6 @@ typedef struct H264Context {
int picture_structure; int picture_structure;
int first_field; 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 * num_ref_idx_l0/1_active_minus1 + 1
*/ */
......
...@@ -145,10 +145,10 @@ void ff_h264_direct_ref_list_init(H264Context *const h, H264SliceContext *sl) ...@@ -145,10 +145,10 @@ void ff_h264_direct_ref_list_init(H264Context *const h, H264SliceContext *sl)
return; return;
for (list = 0; list < 2; list++) { 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)) if (FRAME_MBAFF(h))
for (field = 0; field < 2; field++) 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); field, 1);
} }
} }
...@@ -554,14 +554,14 @@ single_col: ...@@ -554,14 +554,14 @@ single_col:
} }
{ {
const int *map_col_to_list0[2] = { h->map_col_to_list0[0], const int *map_col_to_list0[2] = { sl->map_col_to_list0[0],
h->map_col_to_list0[1] }; sl->map_col_to_list0[1] };
const int *dist_scale_factor = sl->dist_scale_factor; const int *dist_scale_factor = sl->dist_scale_factor;
int ref_offset; int ref_offset;
if (FRAME_MBAFF(h) && IS_INTERLACED(*mb_type)) { 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[0] = sl->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[1] = sl->map_col_to_list0_field[h->mb_y & 1][1];
dist_scale_factor = sl->dist_scale_factor_field[h->mb_y & 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); ref_offset = (h->ref_list[1][0].mbaff << 4) & (mb_type_col[0] >> 3);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment