Merge branch '0.4'
This commit is contained in:
commit
580421ab5f
13 changed files with 29 additions and 21 deletions
|
|
@ -1,6 +1,10 @@
|
|||
CHANGELOG
|
||||
---------
|
||||
|
||||
* 0.4.4 (12-17-2013)
|
||||
|
||||
* Fix width / height dimensions extraction.
|
||||
|
||||
* 0.4.3 (12-02-2013)
|
||||
|
||||
* Fix using rotate and resize filters at the same time (#78)
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ class FFMpegServiceProvider implements ServiceProviderInterface
|
|||
return array_replace($app['ffmpeg.default.configuration'], $app['ffmpeg.configuration']);
|
||||
});
|
||||
|
||||
$app['ffmpeg'] = $app['ffmpeg.ffmpeg'] = $app->share(function(Application $app) {
|
||||
$app['ffmpeg'] = $app['ffmpeg.ffmpeg'] = $app->share(function (Application $app) {
|
||||
$configuration = $app['ffmpeg.configuration.build'];
|
||||
|
||||
if (isset($configuration['ffmpeg.timeout'])) {
|
||||
|
|
@ -49,7 +49,7 @@ class FFMpegServiceProvider implements ServiceProviderInterface
|
|||
return new ArrayCache();
|
||||
});
|
||||
|
||||
$app['ffmpeg.ffprobe'] = $app->share(function(Application $app) {
|
||||
$app['ffmpeg.ffprobe'] = $app->share(function (Application $app) {
|
||||
$configuration = $app['ffmpeg.configuration.build'];
|
||||
|
||||
if (isset($configuration['ffmpeg.timeout'])) {
|
||||
|
|
|
|||
|
|
@ -53,8 +53,8 @@ abstract class AbstractData implements \Countable
|
|||
/**
|
||||
* Sets the property value given its name.
|
||||
*
|
||||
* @param string $property
|
||||
* @param mixed $value
|
||||
* @param string $property
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return AbstractData
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -71,7 +71,9 @@ class Stream extends AbstractData
|
|||
}
|
||||
|
||||
if (null !== $displayRatio && null !== $sampleRatio) {
|
||||
$width = round($width / $sampleRatio[0] * $sampleRatio[1] * $displayRatio[0] / $displayRatio[1]);
|
||||
if ($sampleRatio[0] !== 1 && $sampleRatio[1] !== 1) {
|
||||
$width = round($width / $sampleRatio[0] * $sampleRatio[1] * $displayRatio[0] / $displayRatio[1]);
|
||||
}
|
||||
}
|
||||
|
||||
return new Dimension($width, $height);
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@ class FrameFilters
|
|||
|
||||
/**
|
||||
* Fixes the display ratio of the output frame.
|
||||
*
|
||||
*
|
||||
* In case the sample ratio and display ratio are different, image may be
|
||||
* anamorphozed. This filter fixes this by specifying the output size.
|
||||
*
|
||||
*
|
||||
* @return FrameFilters
|
||||
*/
|
||||
public function fixDisplayRatio()
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ namespace FFMpeg\Filters\Video;
|
|||
|
||||
use FFMpeg\Coordinate\Dimension;
|
||||
use FFMpeg\Exception\InvalidArgumentException;
|
||||
use FFMpeg\Exception\RuntimeException;
|
||||
use FFMpeg\Media\Video;
|
||||
use FFMpeg\Format\VideoInterface;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@
|
|||
namespace FFMpeg\Media;
|
||||
|
||||
use FFMpeg\Driver\FFMpegDriver;
|
||||
use FFMpeg\Exception\InvalidArgumentException;
|
||||
use FFMpeg\FFProbe;
|
||||
use FFMpeg\Filters\FiltersCollection;
|
||||
use FFMpeg\Media\MediaTypeInterface;
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ class Frame extends AbstractMediaType
|
|||
foreach ($this->filters as $filter) {
|
||||
$commands = array_merge($commands, $filter->apply($this));
|
||||
}
|
||||
|
||||
|
||||
$commands = array_merge($commands, array($pathfile));
|
||||
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use FFMpeg\Format\Video\X264;
|
|||
use FFMpeg\Media\Video;
|
||||
|
||||
class VideoTranscodeTest extends FunctionalTestCase
|
||||
{
|
||||
{
|
||||
public function testSimpleTranscodeX264()
|
||||
{
|
||||
$filename = __DIR__ . '/output/output-x264.mp4';
|
||||
|
|
@ -65,7 +65,7 @@ class VideoTranscodeTest extends FunctionalTestCase
|
|||
if ($info['name'] === 'avconv' && version_compare($info['version'], '0.9', '<')) {
|
||||
$this->markTestSkipped('This version of avconv is buggy and does not support this test.');
|
||||
}
|
||||
|
||||
|
||||
$filename = __DIR__ . '/output/output-x264.mp4';
|
||||
if (is_file($filename)) {
|
||||
unlink(__DIR__ . '/output/output-x264.mp4');
|
||||
|
|
@ -91,7 +91,7 @@ class VideoTranscodeTest extends FunctionalTestCase
|
|||
$this->assertFileExists($filename);
|
||||
unlink($filename);
|
||||
}
|
||||
|
||||
|
||||
private function getNameAndVersion()
|
||||
{
|
||||
$binary = $this
|
||||
|
|
@ -99,20 +99,20 @@ class VideoTranscodeTest extends FunctionalTestCase
|
|||
->getFFMpegDriver()
|
||||
->getProcessBuilderFactory()
|
||||
->getBinary();
|
||||
|
||||
|
||||
$output = $matches = null;
|
||||
exec($binary . ' -version 2>&1', $output);
|
||||
|
||||
if (!isset($output[0])) {
|
||||
return array('name' => null, 'version' => null);
|
||||
}
|
||||
|
||||
|
||||
preg_match('/^([a-z]+)\s+version\s+([0-9\.]+)/i', $output[0], $matches);
|
||||
|
||||
if (count($matches) > 0) {
|
||||
return array('name' => $matches[1], 'version' => $matches[2]);
|
||||
}
|
||||
|
||||
|
||||
return array('name' => null, 'version' => null);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -83,6 +83,12 @@ class StreamTest extends TestCase
|
|||
$this->assertEquals(new Dimension(1280, 720), $stream->getDimensions());
|
||||
}
|
||||
|
||||
public function testGetDimensionsFromVideoWith11SampleRatio()
|
||||
{
|
||||
$stream = new Stream(array('codec_type' => 'video', 'width' => 1920, 'height' => 1080, 'sample_aspect_ratio' => '1:1', 'display_aspect_ratio' => '16:9'));
|
||||
$this->assertEquals(new Dimension(1920, 1080), $stream->getDimensions());
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideInvalidRatios
|
||||
*/
|
||||
|
|
@ -91,7 +97,7 @@ class StreamTest extends TestCase
|
|||
$stream = new Stream(array('codec_type' => 'video', 'width' => 960, 'height' => 720, 'sample_aspect_ratio' => $invalidRatio, 'display_aspect_ratio' => '16:9'));
|
||||
$this->assertEquals(new Dimension(960, 720), $stream->getDimensions());
|
||||
}
|
||||
|
||||
|
||||
public function provideInvalidRatios()
|
||||
{
|
||||
return array(array('0:1'), array('2:1:3'));
|
||||
|
|
|
|||
|
|
@ -15,12 +15,12 @@ class DisplayRatioFixerFilterTest extends TestCase
|
|||
{
|
||||
$stream = new Stream(array('codec_type' => 'video', 'width' => 960, 'height' => 720));
|
||||
$streams = new StreamCollection(array($stream));
|
||||
|
||||
|
||||
$video = $this->getVideoMock(__FILE__);
|
||||
$video->expects($this->once())
|
||||
->method('getStreams')
|
||||
->will($this->returnValue($streams));
|
||||
|
||||
|
||||
$frame = new Frame($video, $this->getFFMpegDriverMock(), $this->getFFProbeMock(), new TimeCode(0, 0, 0, 0));
|
||||
$filter = new DisplayRatioFixerFilter();
|
||||
$this->assertEquals(array('-s', '960x720'), $filter->apply($frame));
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace FFMpeg\Tests\Media;
|
|||
|
||||
use FFMpeg\Media\Audio;
|
||||
use Alchemy\BinaryDriver\Exception\ExecutionFailureException;
|
||||
use FFMpeg\Format\ProgressableInterface;
|
||||
use FFMpeg\Format\AudioInterface;
|
||||
|
||||
class AudioTest extends AbstractStreamableTestCase
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace FFMpeg\Tests\Media;
|
|||
|
||||
use FFMpeg\Media\Video;
|
||||
use Alchemy\BinaryDriver\Exception\ExecutionFailureException;
|
||||
use FFMpeg\Format\ProgressableInterface;
|
||||
use FFMpeg\Format\VideoInterface;
|
||||
|
||||
class VideoTest extends AbstractStreamableTestCase
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue