More precise progress indication
This fix solves divison by 0 and incorrect percentage report when extractImage is used
This commit is contained in:
		
					parent
					
						
							
								f95004f417
							
						
					
				
			
			
				commit
				
					
						98ea16f21b
					
				
			
		
					 1 changed files with 9 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -152,15 +152,20 @@ abstract class ProgressHelper implements HelperInterface
 | 
			
		|||
        $currentDuration = $this->convertDuration($matches[2]);
 | 
			
		||||
        $currentTime = $this->microtimeFloat();
 | 
			
		||||
        $currentSize = trim(str_replace('kb', '', strtolower(($matches[1]))));
 | 
			
		||||
        $percent = $currentDuration/ $this->duration;
 | 
			
		||||
        $percent = max(0, min(1, $currentDuration / $this->duration));
 | 
			
		||||
 | 
			
		||||
        if ($this->lastOutput !== null) {
 | 
			
		||||
            $delta = $currentTime - $this->lastOutput;
 | 
			
		||||
            $deltaSize = $currentSize - $this->currentSize;
 | 
			
		||||
            $rate = $deltaSize * $delta;
 | 
			
		||||
            $totalDuration = $this->totalSize / $rate;
 | 
			
		||||
            $this->remaining = floor($totalDuration - ($totalDuration * $percent));
 | 
			
		||||
            $this->rate = floor($rate);
 | 
			
		||||
            if ($rate > 0) {
 | 
			
		||||
                $totalDuration = $this->totalSize / $rate;
 | 
			
		||||
                $this->remaining = floor($totalDuration - ($totalDuration * $percent));
 | 
			
		||||
                $this->rate = floor($rate);
 | 
			
		||||
            } else {
 | 
			
		||||
                $this->remaining = 0;
 | 
			
		||||
                $this->rate = 0;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->percent = floor($percent * 100);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue