summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-04-23 23:20:04 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-07 09:29:58 +0200
commit7a5aa3912705bf7713da068e1143e4ca0b3d37a5 (patch)
tree410b0c0036a70eb38bf9299d6f48b1f3adba4326
parent2204881b04976114626b20cf646d89c12edebcbb (diff)
Add Piece::player_video().
-rw-r--r--src/lib/piece.cc21
-rw-r--r--src/lib/piece.h4
-rw-r--r--src/lib/player.cc15
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) {