Merge pull request #81 from alchemy-fr/fix-dimensions

Fix dimensions
This commit is contained in:
Romain Neutron 2013-12-17 08:54:46 -08:00
commit 8dfaf18158
3 changed files with 14 additions and 2 deletions

View file

@ -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)

View file

@ -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);

View file

@ -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'));