| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -524,16 +524,17 @@ int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			/*******************************************************/ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket *pkt){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVPacketList *pktl; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVPacketList **plast_pktl= packet_buffer; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    while(*plast_pktl) plast_pktl= &(*plast_pktl)->next; //FIXME maybe maintain pointer to the last? | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pktl = av_mallocz(sizeof(AVPacketList)); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket *pkt, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                               AVPacketList **plast_pktl){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVPacketList *pktl = av_mallocz(sizeof(AVPacketList)); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!pktl) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return NULL; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (*packet_buffer) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        (*plast_pktl)->next = pktl; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        *packet_buffer = pktl; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* add the packet in the buffered packet list */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    *plast_pktl = pktl; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    pktl->pkt= *pkt; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -578,7 +579,7 @@ int av_read_packet(AVFormatContext *s, AVPacket *pkt) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if(!pktl && st->codec->codec_id!=CODEC_ID_PROBE) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return ret; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        add_to_pktbuf(&s->raw_packet_buffer, pkt); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        add_to_pktbuf(&s->raw_packet_buffer, pkt, &s->raw_packet_buffer_end); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if(st->codec->codec_id == CODEC_ID_PROBE){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            AVProbeData *pd = &st->probe_data; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -1043,7 +1044,8 @@ int av_read_frame(AVFormatContext *s, AVPacket *pkt) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    return ret; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if(av_dup_packet(add_to_pktbuf(&s->packet_buffer, pkt)) < 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if(av_dup_packet(add_to_pktbuf(&s->packet_buffer, pkt, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                                           &s->packet_buffer_end)) < 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                return AVERROR(ENOMEM); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }else{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            assert(!s->packet_buffer); | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -2021,7 +2023,7 @@ int av_find_stream_info(AVFormatContext *ic) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        pkt= add_to_pktbuf(&ic->packet_buffer, &pkt1); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        pkt= add_to_pktbuf(&ic->packet_buffer, &pkt1, &ic->packet_buffer_end); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if(av_dup_packet(pkt) < 0) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            av_free(duration_error); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return AVERROR(ENOMEM); | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |