summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-10-15 15:26:04 +0100
committerCarl Hetherington <cth@carlh.net>2013-10-15 15:26:04 +0100
commit45f9912aa850546e319e32a4052517d67f4e3d8f (patch)
treef92b43f73e82cd09bf6a3bea29147aafa9c59d79 /src/lib/player.cc
parent708dacb8247c73c02b6192464325738203ca001a (diff)
Allow no-stretch scaling of video content.
Diffstat (limited to 'src/lib/player.cc')
-rw-r--r--src/lib/player.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 70d6fa877..03c5dc322 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -103,7 +103,7 @@ Player::Player (shared_ptr<const Film> f, shared_ptr<const Playlist> p)
_playlist_changed_connection = _playlist->Changed.connect (bind (&Player::playlist_changed, this));
_playlist_content_changed_connection = _playlist->ContentChanged.connect (bind (&Player::content_changed, this, _1, _2, _3));
_film_changed_connection = _film->Changed.connect (bind (&Player::film_changed, this, _1));
- set_video_container_size (_film->container()->size (_film->full_frame ()));
+ set_video_container_size (fit_ratio_within (_film->container()->ratio (), _film->full_frame ()));
}
void
@@ -256,7 +256,8 @@ Player::process_video (weak_ptr<Piece> weak_piece, shared_ptr<const Image> image
work_image = work_image->crop (content->crop(), true);
- libdcp::Size const image_size = content->ratio()->size (_video_container_size);
+ float const ratio = content->ratio() ? content->ratio()->ratio() : content->video_size_after_crop().ratio();
+ libdcp::Size image_size = fit_ratio_within (ratio, _video_container_size);
work_image = work_image->scale (image_size, _film->scaler(), PIX_FMT_RGB24, true);