summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-01-05 14:14:43 +0000
committerCarl Hetherington <cth@carlh.net>2015-01-05 14:14:43 +0000
commit4647b6190f0c6c3f048df4b4c44101f6eaef489b (patch)
treee1d82df9951d1c37feaa754f6daea80f01aefe4e /src/lib
parente0716fe268bea8a97dea440291dbf712e4a8539e (diff)
Fix incorrect use of FrameRateChange::factor(); if we are skipping, for
example, factor will be 0.5 and so to convert some frames in the DCP to frames in the content we must divide by factor (i.e. multiply by 2) to get the content frame.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/player.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 36b13d105..4c9042743 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -321,7 +321,7 @@ Player::get_video (DCPTime time, bool accurate)
if (!_have_valid_pieces) {
setup_pieces ();
}
-
+
list<shared_ptr<Piece> > ov = overlaps<VideoContent> (
time,
time + DCPTime::from_frames (1, _film->video_frame_rate ())
@@ -488,13 +488,13 @@ Player::dcp_to_content_video (shared_ptr<const Piece> piece, DCPTime t) const
s = DCPTime (min (piece->content->length_after_trim().get(), s.get()));
/* Convert this to the content frame */
- return DCPTime (s + piece->content->trim_start()).frames (_film->video_frame_rate()) * piece->frc.factor ();
+ return DCPTime (s + piece->content->trim_start()).frames (_film->video_frame_rate()) / piece->frc.factor ();
}
DCPTime
Player::content_video_to_dcp (shared_ptr<const Piece> piece, VideoFrame f) const
{
- DCPTime t = DCPTime::from_frames (f / piece->frc.factor (), _film->video_frame_rate()) - piece->content->trim_start () + piece->content->position ();
+ DCPTime t = DCPTime::from_frames (f * piece->frc.factor (), _film->video_frame_rate()) - piece->content->trim_start () + piece->content->position ();
if (t < DCPTime ()) {
t = DCPTime ();
}