| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -955,16 +955,19 @@ static int64_t http_seek(URLContext *h, int64_t off, int whence) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    else if ((s->filesize == -1 && whence == SEEK_END) || h->is_streamed) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return -1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* we save the old context in case the seek fails */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    old_buf_size = s->buf_end - s->buf_ptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    memcpy(old_buf, s->buf_ptr, old_buf_size); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    s->hd = NULL; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (whence == SEEK_CUR) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        off += s->off; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    else if (whence == SEEK_END) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        off += s->filesize; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (off < 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return AVERROR(EINVAL); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    s->off = off; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* we save the old context in case the seek fails */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    old_buf_size = s->buf_end - s->buf_ptr; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    memcpy(old_buf, s->buf_ptr, old_buf_size); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    s->hd = NULL; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* if it fails, continue on old connection */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    av_dict_copy(&options, s->chained_options, 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (http_open_cnx(h, &options) < 0) { | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |