Fixed a buffer overflow error when converting videos when the video is more than 2 hours long.

This commit is contained in:
Leonid Nikitin 2024-02-10 20:13:17 +06:00
parent ee0a305972
commit 48f8c577c0
Signed by: kor-elf
GPG Key ID: 7DE8F80C5CEC2C0D

View File

@ -178,19 +178,30 @@ func (p Progress) Run(stdOut io.ReadCloser, stdErr io.ReadCloser) error {
progress := 0.0
go func() {
scannerErr := bufio.NewScanner(stdErr)
for scannerErr.Scan() {
errorText = scannerErr.Text()
scannerErr := bufio.NewReader(stdErr)
for {
line, _, err := scannerErr.ReadLine()
if err != nil {
if err == io.EOF {
break
}
if err := scannerErr.Err(); err != nil {
errorText = err.Error()
continue
}
data := strings.TrimSpace(string(line))
errorText = data
}
}()
scannerOut := bufio.NewScanner(stdOut)
for scannerOut.Scan() {
data := scannerOut.Text()
scannerOut := bufio.NewReader(stdOut)
for {
line, _, err := scannerOut.ReadLine()
if err != nil {
if err == io.EOF {
break
}
continue
}
data := strings.TrimSpace(string(line))
if strings.Contains(data, "progress=end") {
p.progressbar.Value = p.totalDuration
p.progressbar.Refresh()