diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-01-05 14:14:43 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-01-05 14:14:43 +0000 |
| commit | 4647b6190f0c6c3f048df4b4c44101f6eaef489b (patch) | |
| tree | e1d82df9951d1c37feaa754f6daea80f01aefe4e /src | |
| parent | e0716fe268bea8a97dea440291dbf712e4a8539e (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')
| -rw-r--r-- | src/lib/player.cc | 6 |
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 (); } |
