diff options
author | Anton Khirnov <anton@khirnov.net> | 2015-01-17 22:28:46 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2015-03-21 11:27:13 +0100 |
commit | 7747726667c86877feed30c9e18460cb8e63f551 (patch) | |
tree | 5d7dcb4681722c8a3a34a20ccd18d3d7a175ec32 | |
parent | ee0d774dfa94655e44707ff3e02f4a4d282c1963 (diff) | |
download | ffmpeg-7747726667c86877feed30c9e18460cb8e63f551.tar.gz |
h264: move map_col_to_list0[_field] into the per-slice context
-rw-r--r-- | libavcodec/h264.h | 5 | ||||
-rw-r--r-- | libavcodec/h264_direct.c | 12 |
2 files changed, 8 insertions, 9 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 71f531ec84..5221e2d64c 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -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 */ diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c index 13f710b74c..08aacd3bb9 100644 --- a/libavcodec/h264_direct.c +++ b/libavcodec/h264_direct.c @@ -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); |