| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -61,6 +61,7 @@ typedef struct H264ParseContext { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int parse_history_count; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int parse_last_mb; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int64_t reference_dts; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int last_frame_num, last_picture_structure; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} H264ParseContext; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -528,7 +529,19 @@ static inline int parse_nal_units(AVCodecParserContext *s, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    s->picture_structure = AV_PICTURE_STRUCTURE_TOP_FIELD; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    s->picture_structure = AV_PICTURE_STRUCTURE_BOTTOM_FIELD; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                s->field_order = AV_FIELD_UNKNOWN; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (p->poc.frame_num == p->last_frame_num && | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    p->last_picture_structure != AV_PICTURE_STRUCTURE_UNKNOWN && | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    p->last_picture_structure != AV_PICTURE_STRUCTURE_FRAME && | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    p->last_picture_structure != s->picture_structure) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (p->last_picture_structure == AV_PICTURE_STRUCTURE_TOP_FIELD) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        s->field_order = AV_FIELD_TT; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        s->field_order = AV_FIELD_BB; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } else { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    s->field_order = AV_FIELD_UNKNOWN; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                p->last_picture_structure = s->picture_structure; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                p->last_frame_num = p->poc.frame_num; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            av_freep(&nal.rbsp_buffer); | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -677,6 +690,7 @@ static av_cold int init(AVCodecParserContext *s) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    H264ParseContext *p = s->priv_data; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    p->reference_dts = AV_NOPTS_VALUE; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    p->last_frame_num = INT_MAX; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ff_h264dsp_init(&p->h264dsp, 8, 1); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |