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