summaryrefslogtreecommitdiff
path: root/src/lib/player.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-07-10 16:46:08 +0100
committerCarl Hetherington <cth@carlh.net>2013-07-10 16:46:08 +0100
commitf0d79f2ee79becbcb7bc9065155eaa0963a6aa99 (patch)
tree1820ffa94cd39d2c60382fbc66dc0f1a202a6f13 /src/lib/player.cc
parent611f2241c6732c2c38d87e129e51cf9d8d7a08b8 (diff)
Add SubtitleContent.
Diffstat (limited to 'src/lib/player.cc')
-rw-r--r--src/lib/player.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 2bafbdcd5..c615f0a89 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -26,6 +26,7 @@
#include "imagemagick_content.h"
#include "sndfile_decoder.h"
#include "sndfile_content.h"
+#include "subtitle_content.h"
#include "playlist.h"
#include "job.h"
#include "image.h"
@@ -226,7 +227,7 @@ Player::process_video (weak_ptr<Piece> weak_piece, shared_ptr<const Image> image
if (_film->with_subtitles ()) {
shared_ptr<Subtitle> sub;
- if (_subtitle && _subtitle->displayed_at (time - _subtitle_offset)) {
+ if (_subtitle && _subtitle->displayed_at (time - _subtitle_content_time)) {
sub = _subtitle->subtitle ();
}
@@ -234,7 +235,7 @@ Player::process_video (weak_ptr<Piece> weak_piece, shared_ptr<const Image> image
dcpomatic::Rect const tx = subtitle_transformed_area (
float (image_size.width) / content->video_size().width,
float (image_size.height) / content->video_size().height,
- sub->area(), _film->subtitle_offset(), _film->subtitle_scale()
+ sub->area(), _subtitle_offset, _subtitle_scale
);
shared_ptr<Image> im = sub->image()->scale (tx.size(), _film->scaler(), true);
@@ -505,12 +506,7 @@ Player::film_changed (Film::Property p)
last time we were run.
*/
- if (
- p == Film::SCALER || p == Film::WITH_SUBTITLES ||
- p == Film::SUBTITLE_SCALE || p == Film::SUBTITLE_OFFSET ||
- p == Film::CONTAINER
- ) {
-
+ if (p == Film::SCALER || p == Film::WITH_SUBTITLES || p == Film::CONTAINER) {
Changed ();
}
}
@@ -523,6 +519,11 @@ Player::process_subtitle (weak_ptr<Piece> weak_piece, shared_ptr<TimedSubtitle>
return;
}
+ shared_ptr<SubtitleContent> sc = dynamic_pointer_cast<SubtitleContent> (piece->content);
+ assert (sc);
+
_subtitle = sub;
- _subtitle_offset = piece->content->start ();
+ _subtitle_content_time = piece->content->start ();
+ _subtitle_offset = sc->subtitle_offset ();
+ _subtitle_scale = sc->subtitle_scale ();
}