Use ref_poc and ref_count from the correct field.
Fixes at least MR8_BT_B.h264 Originally committed as revision 14537 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
4c0d57bdef
commit
45260d4faa
@ -901,6 +901,7 @@ static inline void direct_ref_list_init(H264Context * const h){
|
||||
Picture * const cur = s->current_picture_ptr;
|
||||
int list, i, j;
|
||||
int sidx= s->picture_structure&1;
|
||||
int ref1sidx= ref1->reference&1;
|
||||
if(cur->pict_type == FF_I_TYPE)
|
||||
cur->ref_count[sidx][0] = 0;
|
||||
if(cur->pict_type != FF_B_TYPE)
|
||||
@ -913,8 +914,8 @@ static inline void direct_ref_list_init(H264Context * const h){
|
||||
if(cur->pict_type != FF_B_TYPE || h->direct_spatial_mv_pred)
|
||||
return;
|
||||
for(list=0; list<2; list++){
|
||||
for(i=0; i<ref1->ref_count[sidx][list]; i++){
|
||||
const int poc = ref1->ref_poc[sidx][list][i];
|
||||
for(i=0; i<ref1->ref_count[ref1sidx][list]; i++){
|
||||
const int poc = ref1->ref_poc[ref1sidx][list][i];
|
||||
h->map_col_to_list0[list][i] = 0; /* bogus; fills in for missing frames */
|
||||
for(j=0; j<h->ref_count[list]; j++)
|
||||
if(h->ref_list[list][j].poc == poc){
|
||||
@ -925,7 +926,7 @@ static inline void direct_ref_list_init(H264Context * const h){
|
||||
}
|
||||
if(FRAME_MBAFF){
|
||||
for(list=0; list<2; list++){
|
||||
for(i=0; i<ref1->ref_count[sidx][list]; i++){
|
||||
for(i=0; i<ref1->ref_count[ref1sidx][list]; i++){
|
||||
j = h->map_col_to_list0[list][i];
|
||||
h->map_col_to_list0_field[list][2*i] = 2*j;
|
||||
h->map_col_to_list0_field[list][2*i+1] = 2*j+1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user