Fix colocated map.
Originally committed as revision 21664 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									d88ea35463
								
							
						
					
					
						commit
						488dba7000
					
				@ -71,7 +71,7 @@ static void fill_colmap(H264Context *h, int map[2][16+32], int list, int field,
 | 
			
		||||
    Picture * const ref1 = &h->ref_list[1][0];
 | 
			
		||||
    int j, old_ref, rfield;
 | 
			
		||||
    int start= mbafi ? 16                      : 0;
 | 
			
		||||
    int end  = mbafi ? 16+2*h->ref_count[list] : h->ref_count[list];
 | 
			
		||||
    int end  = mbafi ? 16+2*h->ref_count[0]    : h->ref_count[0];
 | 
			
		||||
    int interl= mbafi || s->picture_structure != PICT_FRAME;
 | 
			
		||||
 | 
			
		||||
    /* bogus; fills in for missing frames */
 | 
			
		||||
@ -87,10 +87,10 @@ static void fill_colmap(H264Context *h, int map[2][16+32], int list, int field,
 | 
			
		||||
                poc= (poc&~3) + rfield + 1;
 | 
			
		||||
 | 
			
		||||
            for(j=start; j<end; j++){
 | 
			
		||||
                if(4*h->ref_list[list][j].frame_num + (h->ref_list[list][j].reference&3) == poc){
 | 
			
		||||
                if(4*h->ref_list[0][j].frame_num + (h->ref_list[0][j].reference&3) == poc){
 | 
			
		||||
                    int cur_ref= mbafi ? (j-16)^field : j;
 | 
			
		||||
                    map[list][2*old_ref + (rfield^field) + 16] = cur_ref;
 | 
			
		||||
                    if(rfield == field)
 | 
			
		||||
                    if(rfield == field || !interl)
 | 
			
		||||
                        map[list][old_ref] = cur_ref;
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user