Skip to content

Commit 7ade401

Browse files
committed
fix(previews): ffprobe hangs
Signed-off-by: Andrey Dyakov <adduxa@gmail.com>
1 parent 1bcc80b commit 7ade401

1 file changed

Lines changed: 2 additions & 32 deletions

File tree

lib/private/Preview/Movie.php

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -289,39 +289,9 @@ private function useHdr(string $absPath): bool {
289289
if ($test_hdr_proc === false) {
290290
return false;
291291
}
292-
293-
stream_set_blocking($test_hdr_pipes[1], false);
294-
stream_set_blocking($test_hdr_pipes[2], false);
295-
296-
$test_hdr_stdout = '';
297-
$test_hdr_stderr = '';
298-
299-
while (!feof($test_hdr_pipes[1]) || !feof($test_hdr_pipes[2])) {
300-
$read = array_filter([
301-
!feof($test_hdr_pipes[1]) ? $test_hdr_pipes[1] : null,
302-
!feof($test_hdr_pipes[2]) ? $test_hdr_pipes[2] : null,
303-
]);
304-
$write = $except = [];
305-
if (stream_select($read, $write, $except, 5) === false) {
306-
break;
307-
}
308-
foreach ($read as $pipe) {
309-
$chunk = fread($pipe, 8192);
310-
if ($chunk === false) continue;
311-
if ($pipe === $test_hdr_pipes[1]) {
312-
$test_hdr_stdout .= $chunk;
313-
} else {
314-
$test_hdr_stderr .= $chunk;
315-
}
316-
}
317-
}
318-
319-
fclose($test_hdr_pipes[1]);
320-
fclose($test_hdr_pipes[2]);
292+
$test_hdr_stderr = trim(stream_get_contents($test_hdr_pipes[2]));
293+
$test_hdr_stdout = trim(stream_get_contents($test_hdr_pipes[1]));
321294
proc_close($test_hdr_proc);
322-
323-
$test_hdr_stdout = trim($test_hdr_stdout);
324-
$test_hdr_stderr = trim($test_hdr_stderr);
325295
// search build options for libzimg (provides zscale filter)
326296
$ffmpeg_libzimg_installed = strpos($test_hdr_stderr, '--enable-libzimg');
327297
// Only values of "smpte2084" and "arib-std-b67" indicate an HDR video.

0 commit comments

Comments
 (0)