Skip to content

Commit 22ed3c3

Browse files
authored
Merge pull request #60916 from adduxa/fix/previews/ffprobe-hangs
fix(previews): ffprobe hangs
2 parents 0a10ad4 + 136b881 commit 22ed3c3

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
- Andreas Pflug <dev@admin4.org>
3333
- Andrew Brown <andrew@casabrown.com>
3434
- Andrey Borysenko <andrey.borysenko@nextcloud.com>
35+
- Andrey Dyakov <adduxa@gmail.com>
3536
- André Gaul <gaul@web-yard.de>
3637
- Andy Xheli <axheli@axtsolutions.com>
3738
- Anna Larch <anna@nextcloud.com>

lib/private/Preview/Movie.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,10 @@ private function useHdr(string $absPath): bool {
289289
if ($test_hdr_proc === false) {
290290
return false;
291291
}
292-
$test_hdr_stdout = trim(stream_get_contents($test_hdr_pipes[1]));
292+
// Read stderr before stdout: ffprobe's stderr can exceed 64KB (OS pipe buffer) for certain
293+
// files, causing a deadlock if stdout is read first. stdout is always a short string.
293294
$test_hdr_stderr = trim(stream_get_contents($test_hdr_pipes[2]));
295+
$test_hdr_stdout = trim(stream_get_contents($test_hdr_pipes[1]));
294296
proc_close($test_hdr_proc);
295297
// search build options for libzimg (provides zscale filter)
296298
$ffmpeg_libzimg_installed = strpos($test_hdr_stderr, '--enable-libzimg');
@@ -341,6 +343,8 @@ private function generateThumbNail(int $maxX, int $maxY, string $absPath, int $s
341343
$returnCode = -1;
342344
$output = '';
343345
if (is_resource($proc)) {
346+
// Read stderr before stdout: ffmpeg's stderr can exceed 64KB (OS pipe buffer) for certain
347+
// files, causing a deadlock if stdout is read first. stdout is always empty.
344348
$stderr = trim(stream_get_contents($pipes[2]));
345349
$stdout = trim(stream_get_contents($pipes[1]));
346350
$returnCode = proc_close($proc);

0 commit comments

Comments
 (0)