mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
h264: increase dist_scale_factor for up to 32 references
Compute dist_scale_factor_field only for MBAFF since that is the only case in which it is used.
This commit is contained in:
parent
523c7bd23c
commit
73ad2c2fa7
@ -364,7 +364,7 @@ typedef struct H264Context {
|
||||
int direct_spatial_mv_pred;
|
||||
int col_parity;
|
||||
int col_fieldoff;
|
||||
int dist_scale_factor[16];
|
||||
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];
|
||||
|
@ -54,14 +54,17 @@ void ff_h264_direct_dist_scale_factor(H264Context * const h){
|
||||
const int poc = h->s.current_picture_ptr->field_poc[ s->picture_structure == PICT_BOTTOM_FIELD ];
|
||||
const int poc1 = h->ref_list[1][0].poc;
|
||||
int i, field;
|
||||
for(field=0; field<2; field++){
|
||||
const int poc = h->s.current_picture_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] = get_scale_factor(h, poc, poc1, i+16);
|
||||
}
|
||||
|
||||
for(i=0; i<h->ref_count[0]; i++){
|
||||
if (FRAME_MBAFF)
|
||||
for (field = 0; field < 2; field++){
|
||||
const int poc = h->s.current_picture_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] =
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user