From ee0d774dfa94655e44707ff3e02f4a4d282c1963 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 17 Jan 2015 22:28:46 +0100 Subject: h264: move dist_scale_factor[_field] into the per-slice context --- libavcodec/h264_direct.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'libavcodec/h264_direct.c') diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c index 989c64a6b7..13f710b74c 100644 --- a/libavcodec/h264_direct.c +++ b/libavcodec/h264_direct.c @@ -47,7 +47,8 @@ static int get_scale_factor(H264Context *const h, int poc, int poc1, int i) } } -void ff_h264_direct_dist_scale_factor(H264Context *const h) +void ff_h264_direct_dist_scale_factor(H264Context *const h, + H264SliceContext *sl) { const int poc = FIELD_PICTURE(h) ? h->cur_pic_ptr->field_poc[h->picture_structure == PICT_BOTTOM_FIELD] : h->cur_pic_ptr->poc; @@ -59,12 +60,12 @@ void ff_h264_direct_dist_scale_factor(H264Context *const h) const int poc = h->cur_pic_ptr->field_poc[field]; const int poc1 = h->ref_list[1][0].field_poc[field]; for (i = 0; i < 2 * h->ref_count[0]; i++) - h->dist_scale_factor_field[field][i ^ field] = + sl->dist_scale_factor_field[field][i ^ field] = get_scale_factor(h, poc, poc1, i + 16); } for (i = 0; i < h->ref_count[0]; i++) - h->dist_scale_factor[i] = get_scale_factor(h, poc, poc1, i); + sl->dist_scale_factor[i] = get_scale_factor(h, poc, poc1, i); } static void fill_colmap(H264Context *h, int map[2][16 + 32], int list, @@ -555,13 +556,13 @@ single_col: { const int *map_col_to_list0[2] = { h->map_col_to_list0[0], h->map_col_to_list0[1] }; - const int *dist_scale_factor = h->dist_scale_factor; + 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]; - dist_scale_factor = h->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); -- cgit v1.2.3