diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-04-23 23:20:04 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-07 09:29:58 +0200 |
| commit | 7a5aa3912705bf7713da068e1143e4ca0b3d37a5 (patch) | |
| tree | 410b0c0036a70eb38bf9299d6f48b1f3adba4326 | |
| parent | 2204881b04976114626b20cf646d89c12edebcbb (diff) | |
Add Piece::player_video().
| -rw-r--r-- | src/lib/piece.cc | 21 | ||||
| -rw-r--r-- | src/lib/piece.h | 4 | ||||
| -rw-r--r-- | src/lib/player.cc | 15 |
3 files changed, 26 insertions, 14 deletions
diff --git a/src/lib/piece.cc b/src/lib/piece.cc index fb9289dbb..dd6a8ff23 100644 --- a/src/lib/piece.cc +++ b/src/lib/piece.cc @@ -23,10 +23,12 @@ #include "content.h" #include "film.h" #include "piece.h" +#include "player_video.h" #include "video_content.h" using std::shared_ptr; +using std::make_shared; using namespace dcpomatic; @@ -126,3 +128,22 @@ Piece::end (shared_ptr<const Film> film) const return content->end (film); } + +shared_ptr<PlayerVideo> +Piece::player_video (ContentVideo video, shared_ptr<const Film> film, dcp::Size container_size) const +{ + return std::make_shared<PlayerVideo>( + video.image, + content->video->crop (), + content->video->fade (film, video.frame), + scale_for_display(content->video->scaled_size(film->frame_size()), container_size, film->frame_size()), + container_size, + video.eyes, + video.part, + content->video->colour_conversion(), + content->video->range(), + content, + video.frame, + false + ); +} diff --git a/src/lib/piece.h b/src/lib/piece.h index 34d8d30c9..5997e0fd6 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -24,6 +24,7 @@ #include "audio_stream.h" +#include "content_video.h" #include "dcpomatic_time.h" #include "frame_rate_change.h" #include "types.h" @@ -32,6 +33,7 @@ class Content; class Decoder; +class PlayerVideo; class Piece @@ -56,6 +58,8 @@ public: dcpomatic::DCPTime position () const; dcpomatic::DCPTime end (std::shared_ptr<const Film> film) const; + std::shared_ptr<PlayerVideo> player_video (ContentVideo video, std::shared_ptr<const Film> film, dcp::Size container_size) const; + std::shared_ptr<Content> content; std::shared_ptr<Decoder> decoder; boost::optional<dcpomatic::DCPTimePeriod> ignore_video; diff --git a/src/lib/player.cc b/src/lib/player.cc index 8501c3e70..e1a86e227 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -847,20 +847,7 @@ Player::video (weak_ptr<Piece> wp, ContentVideo video) } } - _last_video[wp] = std::make_shared<PlayerVideo>( - video.image, - piece->content->video->crop (), - piece->content->video->fade (_film, video.frame), - scale_for_display(piece->content->video->scaled_size(_film->frame_size()), _video_container_size, _film->frame_size()), - _video_container_size, - video.eyes, - video.part, - piece->content->video->colour_conversion(), - piece->content->video->range(), - piece->content, - video.frame, - false - ); + _last_video[wp] = piece->player_video (video, _film, _video_container_size); DCPTime t = time; for (int i = 0; i < frc.repeat; ++i) { |
