diff --git a/config/configuration.sample.yml b/config/configuration.sample.yml index 90e21be3df..9bbea0d4bc 100644 --- a/config/configuration.sample.yml +++ b/config/configuration.sample.yml @@ -103,6 +103,7 @@ main: mp4box_timeout: 60 swftools_timeout: 60 unoconv_timeout: 60 + exiftool_timeout: 60 storage: subdefs: null cache: null diff --git a/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php b/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php index 5092c6c77f..cc55894313 100644 --- a/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php +++ b/lib/Alchemy/Phrasea/Core/MetaProvider/MediaUtilitiesMetaServiceProvider.php @@ -9,6 +9,8 @@ use MediaVorus\MediaVorusServiceProvider; use MP4Box\MP4BoxServiceProvider; use Neutron\Silex\Provider\ImagineServiceProvider; use PHPExiftool\PHPExiftoolServiceProvider; +use PHPExiftool\Reader; +use PHPExiftool\Writer; use Silex\Application; use Silex\ServiceProviderInterface; @@ -48,6 +50,21 @@ class MediaUtilitiesMetaServiceProvider implements ServiceProviderInterface public function boot(Application $app) { - // no-op + if(isset($app['exiftool.reader']) && isset($app['conf'])) { + try { + $timeout = $app['conf']->get(['main', 'binaries', 'exiftool_timeout'], 60); + + /** @var Reader $exiftoolReader */ + $exiftoolReader = $app['exiftool.reader']; + $exiftoolReader->setTimeout($timeout); + + /** @var Writer $exiftoolWriter */ + $exiftoolWriter = $app['exiftool.writer']; + $exiftoolWriter->setTimeout($timeout); + } + catch(\Exception $e) { + // no-nop + } + } } } diff --git a/lib/conf.d/configuration.yml b/lib/conf.d/configuration.yml index a733c5f937..f237b8318f 100644 --- a/lib/conf.d/configuration.yml +++ b/lib/conf.d/configuration.yml @@ -103,6 +103,7 @@ main: mp4box_timeout: 60 swftools_timeout: 60 unoconv_timeout: 60 + exiftool_timeout: 60 storage: subdefs: null cache: null