Skip to content

Commit e6f93d8

Browse files
committed
Don't resolve driver until needed.
1 parent 6bdeb5c commit e6f93d8

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
All Notable changes to `pbmedia/laravel-ffmpeg` will be documented in this file
44

5+
## 8.1.2 - 2022-05-23
6+
7+
- Don't resolve driver until needed.
8+
59
## 8.1.1 - 2022-05-13
610

711
- Bugfix for parsing the average frame rate.

src/Support/MediaOpenerFactory.php

+17-4
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,29 @@ class MediaOpenerFactory
1313

1414
private $defaultDisk;
1515
private $driver;
16+
private $driverResolver;
1617

17-
public function __construct(string $defaultDisk, PHPFFMpeg $driver)
18+
public function __construct(string $defaultDisk, PHPFFMpeg $driver = null, callable $driverResolver = null)
1819
{
19-
$this->defaultDisk = $defaultDisk;
20-
$this->driver = $driver;
20+
$this->defaultDisk = $defaultDisk;
21+
$this->driver = $driver;
22+
$this->driverResolver = $driverResolver;
23+
}
24+
25+
private function driver(): PHPFFMpeg
26+
{
27+
if ($this->driver) {
28+
return $this->driver;
29+
}
30+
31+
$resolver = $this->driverResolver;
32+
33+
return $this->driver = $resolver();
2134
}
2235

2336
public function new(): MediaOpener
2437
{
25-
return new MediaOpener($this->defaultDisk, $this->driver);
38+
return new MediaOpener($this->defaultDisk, $this->driver());
2639
}
2740

2841
public function dynamicHLSPlaylist(): DynamicHLSPlaylist

src/Support/ServiceProvider.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ public function register()
9898
$this->app->singleton('laravel-ffmpeg', function () {
9999
return new MediaOpenerFactory(
100100
$this->app['config']->get('filesystems.default'),
101-
$this->app->make(PHPFFMpeg::class)
101+
null,
102+
fn () => $this->app->make(PHPFFMpeg::class)
102103
);
103104
});
104105
}

0 commit comments

Comments
 (0)