From 6dc260fd3dd8423d2df9e32b874eaeea151c35a9 Mon Sep 17 00:00:00 2001 From: CaliforniaMountainSnake Date: Thu, 20 Feb 2020 14:34:21 +0300 Subject: [PATCH] Added ffmpeg version checking in the ComplexMediaTest::testXStackFilter(). --- src/FFMpeg/Filters/ComplexMedia/XStackFilter.php | 1 + tests/Functional/ComplexMediaTest.php | 8 ++++++++ tests/Functional/FunctionalTestCase.php | 12 ++++++++++++ 3 files changed, 21 insertions(+) diff --git a/src/FFMpeg/Filters/ComplexMedia/XStackFilter.php b/src/FFMpeg/Filters/ComplexMedia/XStackFilter.php index a17b285..199e052 100644 --- a/src/FFMpeg/Filters/ComplexMedia/XStackFilter.php +++ b/src/FFMpeg/Filters/ComplexMedia/XStackFilter.php @@ -12,6 +12,7 @@ use FFMpeg\Media\ComplexMedia; */ class XStackFilter extends AbstractComplexFilter { + const MINIMAL_FFMPEG_VERSION = '4.1'; const LAYOUT_2X2 = '0_0|0_h0|w0_0|w0_h0'; const LAYOUT_1X4 = '0_0|0_h0|0_h0+h1|0_h0+h1+h2'; const LAYOUT_3X3 = '0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1'; diff --git a/tests/Functional/ComplexMediaTest.php b/tests/Functional/ComplexMediaTest.php index 78cf080..bc8f5a7 100644 --- a/tests/Functional/ComplexMediaTest.php +++ b/tests/Functional/ComplexMediaTest.php @@ -156,6 +156,14 @@ class ComplexMediaTest extends FunctionalTestCase public function testXStackFilter() { $ffmpeg = $this->getFFMpeg(); + $ffmpegVersion = $this->getFFMpegVersion(); + if (version_compare($ffmpegVersion, XStackFilter::MINIMAL_FFMPEG_VERSION) === -1) { + $this->markTestSkipped('XStack filter is supported starting from ' + . XStackFilter::MINIMAL_FFMPEG_VERSION . ' ffmpeg version, your version is ' + . $ffmpegVersion); + return; + } + $inputs = array(realpath(__DIR__ . '/../files/Test.ogv')); $format = new X264('aac', 'libx264'); $output = __DIR__ . '/output/' . self::PATH_PREFIX . 'xstack_test.mp4'; diff --git a/tests/Functional/FunctionalTestCase.php b/tests/Functional/FunctionalTestCase.php index a7eac42..7f97a12 100644 --- a/tests/Functional/FunctionalTestCase.php +++ b/tests/Functional/FunctionalTestCase.php @@ -14,4 +14,16 @@ abstract class FunctionalTestCase extends TestCase { return FFMpeg::create(array('timeout' => 300)); } + + /** + * Get ffmpeg version. + * + * @return string + */ + public function getFFMpegVersion() + { + preg_match('#version\s(\S+)#', + $this->getFFMpeg()->getFFMpegDriver()->command('-version'), $version); + return $version[1]; + } }